This project forms part of element 14's Ultimate Pi Roadtest portfolio and, as a month has passed since the Ultimate Pi bundle was received, a progress report is due. A lot has happened in that month so I'll detail my experiences under various broad topic headings in the hope that some aspects will be of interest to others, though their target applications may be very different.
1. Ultimate Pi bundle This package arrived.very promptly after despatch was notified. Individual components were well protected with the external packaging adding sufficient further protection to ensure survival against the rigours of transatlantic shipping. Unfortunately, one element of the bundle was missing (the Pi Camera) but an e-mail to element 14 quickly put that right.
2. Getting the bundle components up and running Fortunes here were very mixed and testing of all the components is, as yet, far from complete. More specifically:
(a) Raspberry Pi I had no problems setting up the RPi, connecting it to power, keyboard & mouse (wireless) and my HDMI monitor. Installing and configuring the SD card was similarly hassle-free (I had previous experience - but ample, accurate advice is available from the Internet).
(b) GertBoard Once again, commissioning was trouble-free and I quickly configured the board to 'read' my GPS chip and pass NMEA sentences through to the RPi via the RPi's serial pins. NMEA parsing was accomplished using RISC/BBC Basic from work completed prior to the arrival of the Ultimate Pi bundle, but I can see no reason why the same cannot be achieved using Raspbian/Python (or C) - but see below. Once again, I had some previous experience and the GertBoard User Manual (now in Version 2, I noticed!) was very helpful.
(c) Wi-Pi As software support for most RPi accessories currently comes from the Raspbian/Python/C community, which relies heavily on an internet connection for the installation and maintenance of that software, the next order of business had to be getting the Wi-Pi to talk to the rest of the world (I'm very averse to having wires trailing everywhere). Unusually, this item came with a set of printed instructions which - even more unusually - worked! Just two small points to watch: make sure your RPi is in range of your wireless hub and, if at first you don't succeed, make sure you delete any failed attempts at a connection before trying again.
(d) PiFace Control and Display This item worked 'straight-out-of-the-box', with no difficulties whatsoever. Ample, accurate advice was available on-line while additional documentation and examples were available in sub-directories of usr/share/doc/python3-pifacecad (- but only after installation).
(e) PiFace Digital In contrast, this item was a source of considerable frustration. The first problem was that the on-line installation 'recipe' promoted by Farnell/element 14 proved inaccurate. Recourse to on-line 'Technical Help' (via the e-mail chat facility) eventually resolved the problem and installation and testing was finally completed successfully. However, progressing beyond the initial test example seemed to be impossible as the necessary detailed hard- and software specifications appeared to be hidden beyond the ken of even the most enthusiastic amateur. After some time poking about, further documentation and additional software examples were 'discovered' in the sub-directories of usr/share/doc/python3-pifacedigitalio.
Further development of this option was curtailed, however, when it was realised that the PiFace Digital was simply a GPIO 'extender', with no on-board computational power of its own. For my purposes, it was much preferable to run the GPS chip and steering control software as 'slaves' under 'master' control from the RPi - an option which I had not previously considered and which held out the carrot of allowing me to retain my preferred (I.e., familiar) RISC as the OS of choice on the RPi. PiFace Digital was never going to fill this role but two other accessories included with the Ultimate Pi bundle held out more promise.
(f) ChipKit Pi This option looked very attractive to begin with: it sat neatly and securely on top of the RPi and, if the blurb were to be believed, effectively converted my RPi into an Arduino, with all the potential functionality that inheritance offered. But history was about to repeat itself: I had to have recourse to Technical Support (e-mail chat) again to get installed and start testing. However, the pre-loaded Arduino-type sketch worked satisfactorily and allowed me to confirm that I could set the ChipKit running and read the data downloaded through the serial port into the RPi with my existing RISC/BBC Basic software only slightly modified.
With that encouragement, I thought I was all set to start cooking on gas - but it was not to be. This time I could discover no helpful documentation and the 'examples' available via the ChipKit front-end proved totally opaque to me as a novice in embedded control technology (I suspect that my confusion was further compounded by incomplete conversion from what appeared to be Arduino originals to RPi format). I sought solace in the Community forums - but my experience did not appear to be unique and depression set in.
(g) Embedded Pi Now we're down to the wire: last chance to exploit embedded slave/master technology in my project. The Embedded Pi had not been my first choice as it did not connect too handily to the RPi (recall that prototype testing will have to be done at sea) but did offer the consolation that, of the two candidates available to me, it carried the more powerful MCU. This time, however, my efforts to install the necessary software and check board operation have met with no success. Two (slightly different) prescriptions are available on-line: both appear to work but the system still fails to run the LED_Blinky.bin or Test.bin files and corrective action, based on the diagnostic produced, is ineffective. Yet another approach to Technical Support suggested that I'd got somewhat ahead of the game while scouring the forums depressingly confirmed that others were experiencing similar problems. Until some 'breakthrough' is achieved, further development is stymied.
(h) Residue of the Ultimate Pi bundle As yet, unused - not even unpacked.
3. Comment Clearly, I've had very mixed experiences but the conclusions drawn from them may be of interest:
(1) The Good... Embedded computing technology was (and remains - in spite of element 14's best efforts!) completely new to me. I was therefore a little slow to realise the potential benefits to my project. However, I have no doubt that the 'slave/master' concept is just what's required to let me achieve expandable control of my boat (today a manually switched Auto PiPilot, tomorrow it will talk to me and the day after that....?!). I could get terribly enthusiastic......
(2) ...the Bad... The support provided to assist novices venturing into this area appears woefully inadequate - in stark contrast with the introductions to 'conventional' computing which supported the arrival of the RPi. Since an initial expectation of the RPi Foundation was that this small computer would be used by children to learn modern computing techniques, with its input/output functionality exploited to control external devices, the lack of support for this latter aim is particularly disappointing.
Among the improvements which, in my view, would help plug this gap are:
i. stable, accurate downloads and supporting documentation;
ii. an 'idiots guide' to distributed computing which makes clear the distinctions between 'general purpose' computers, such as the RPi, and the more specialised computers/chips used for this purpose and the impact of these differences on software and distributed system design;
iii. elementary, high level language support to assist learning and creative applications;
iv. simple, jargon-free descriptions of the capabilities of the various platforms on offer. (The literature on ChipKit Pi provided a classic example of the incomprehension that can be induced by a failure to 'state the obvious': its features were defined with reference to those of the Arduino! If you're a novice, how helpful is that?!)
(3) ...and the downright Ugly A particularly annoying feature of the ChipKit Pi and, especially, the Embedded Pi was the dearth of accompanying support for their use with RPi. Some months ago, Linux magazine drew attention to the lack of additional functionality afforded by the latter to RPi-based systems, compared with those based on Arduino or Windows. This, together with the complete opacity (to novices, at least) of the supporting literature and the clear evidence of a rushed/bodged conversion from Arduino to RPi formats, suggest that these devices are currently being marketed to cash in on the popularity of the RPi, without regard for the accuracy of the claims made for them and the ease with which these claims can be realised by customers.
In the case of the Embedded Pi, indeed, the application to RPi-based systems has proved so problematical that the use of the term 'Pi' in its title must be flying very close to the wind as judged from the perspective of the Trades' Description Act (from which it is no doubt saved by a cynical reference to the 'without warranty' terms of sale).
However, as I didn't 'buy' these devices, I can hardly emphasise that consideration. But I can draw attention to the inefficient diversion of effort away from the real technical difficulties associated with my project. Autopilot design for a high-speed powerboat requires extensive specialist knowledge in a number of fields; the additional burden required to master embedded system design, especially if the system of choice is claimed to be 'introductory' and/or 'elementary', appears, with the present level of supplier support, to be quite unsustainable.
4. Future programme If ChipKit Pi and/or Embedded Pi 'come good' before the start of the sailing season I shall modify my Auto PiPiLot design to take advantage of their embedded processing capabilities. Otherwise, I shall simply fall back on the RPi-GertBoard combination to pursue my aims. In this event, the major loss I would anticipate is the ability to build on from the present project since a worthwhile autopilot capability is likely to absorb completely the capacity of these devices, leaving any future development to be started again from scratch.