RoadTest: PiFace Control and Display
Evaluation Type: Evaluation Boards
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: I have used a small composite video display to show system status in the past, but for applications where I might leave the system in care of someone else, something more standalone works better. That's why I decided to test out the PiFaceCAD.
What were the biggest problems encountered?: The biggest issue was that the 3-way toggle/switch was loose upon arrival, with the front two solder pads not connected at all. The part quickly broke off, and since it doesn't have through-hole pins, it is very difficult to hand-solder without some skill and experience.
When I first opened the package with the PiFace CAD in it, immediately checked out the fit of the unit on the Raspberry Pi. The unit fits well, and even has a protruding section of unused PCB to help support the board on the Ethernet port of the Model B, which helps keep the unit level, since the GPIO connectors are on the cornet of the Pi, and this prevents any of the through-hole mounted components from accidentally touching any of the Pi components below.
On my unit, the 3-way toggle (left, right, push) was loose, and quickly broke off of the board. I had a hard time getting it soldered back on, since it is surface-mounted, and the pads are mostly underneath the board. This was disappointing, as the toggle is the most natural way to navigate menus in the example code. I did, however, test out a unit that a coworker uses, and his seems very solid. I therefore assume that this is not a design defect, but a single-unit problem that will not develop on its own over time. The rest of the buttons, components, and connections felt very solid, and it does not appear that there will be any issue with them in the near future.
Basic setup is very simple - simply plug the PiFace into the Raspberry Pi GPIO header pins, and power up. The Quick Start Guide on the element14 product page provided all of the setup instructions, including enabling SPI in raspi-config and installing the required Control and Display software that is included in the standard Raspian repositories. All dependencies are downloaded automatically, and the sample program ran without issue.
My test setup included a powered USB hub that is connected to the Pi for peripherals and the Pi to it for power. I didn't do any power tests for the CAD, as I am hoping to use it mostly for turning some of my dedicated Pis into appliances that I can use without even having to SSH into them during regular use.
A quick warning when adjusting the contrast of the display - first, it requires a very small philips-style bit, and it is therefore difficult to tell if it is actually turning. second, it is extremely sensitive, so if you accidentally turn it more than a tiny fraction of a rotation, you will quickly go totally green, or totally dark. Take your time and get it right the first time, then leave it alone.
The bundled examples include a system-information program, and in the same directory, a weather program, train information program, lirc example, and internet radio program. These programs were excellent as I have not used python previously, and since the code was well organized, I was quickly able to edit the weather program, pull F instead of C for temperature from the web feed, and change the locations to those closer to where I live.
The combination of command-line parsing, internet connectivity, display functions, and input processing in the examples greatly reduces the learning curve when working with the PiFace CAD for the first time, especially if you are not experienced in Python. The programs even include custom characters, and these are very useful when creating custom programs, as icons can provide great quick-look indicators to save time or screen real-estate when creating new programs.
To get full use of the PiFace CAD, however, look no further than the included documentation. use a browser starting at index.html, and almost everything you need to utilize all of the CAD's features are available in easy to browse format. The functions included provide everything needed to display text, symbols, custom icons, and detect button presses. Since everything is written in python, it is very easy to test each function from the interactive python console, and then develop static code at a later point.
The github page provides informaiton on how to unzip, run, and use each sample program, as well, which further speeds of the familiarizatin process.
Desigining with the CAD is straightforward, but I would have preferred that it was easier to find drawings of the board in case someone wanted to mount it away from the Pi itself while connected with a ribbon cable.
I was quickly able to get a basic Hamachi VPN control application created, which was really exciting, since I currently use an old Core2 Duo system, which runs 24x7 and has a throughput of about 1.25 MB/s with the SW VPN solution. With a RaspberryPi, I get closer to 1.0 MB/s, but at much lower power, and now I can use the other system for more productive uses.
At ~$34, the display costs almost at much as the Pi, but when considering the ~$75 total for a Pi, cheap SD card, and PiFace CAD, it can function as an extremely cheap, user-friendly appliance that can serve a myriad of uses. Get a simple case, and you can use and re-use the same setup for any standalone configuration for all of your low-power computing needs.
I am planning to use several SW VPN Pis, a home brew temperature control and datalogging server, and a webcam controller to stream and record prints from my 3D printer (if/when it ever arrives). I am excited to keep developing on the CAD and will probably have to pick up a few more so I don't have to keep swapping out SD cards and taking systems down.
Overall, the PiFace CAD met my expectations, with the lone exception of the bad solder on the 3-way toggle. In the future, this is the first thing I will test and will send back any units that have this issue.
Note: I did not test lirc as I was not going to use the PiFace with this feature, but the instructions provided help make sure the necessary modules are installed, configured, and loaded at each boot.