RoadTest: PiFace Digital
Author: packetgeek
Creation date:
Evaluation Type: Independent Products
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?: DPL Design's DLP-IO8-DS-V15 USB data acquisition cable, which costs about the same but does much less.
What were the biggest problems encountered?: For the project, availability of peripheral parts (a minor geographic issue). For the PiFace, having to learn how to access the various inputs. I've dropped back to being a rank beginner at this, having not worked with hardware in a number of years. Also, the hardware no longer fits inside the cases that I have for the Raspberry Pi.
Detailed Review:
PiFace Review - 20 May 2013
Awhile ago, I'd purchased an inexpensive weather radio with an interesting feature: it had the ability to turn on an external flasher to draw the attention of hearing-challenged users. The flasher is nothing more that a simple circuit, accompanied by a battery, whose on/off switch is inside the radio. Simply, when a weather alert is issued, the radio closes that internal switch.
I had an idea to address a specific issue, one that I've thought about for awhile: during the summer months, a number of tornadic storms pass through the area where I live. In recent times, a F-3 tornado passed through, causing millions of dollars in damage and injuring hundreds. [1][2] Over the years, I've been near a number of small tornadoes and water spouts. In one case, only a few hundred feet away. Obviously, having a cell phone warning whenever a weather alert is issued would be quite valuable.
An earlier attempt at this project involved the use of a data acquisition cable (similar to the DLP-IO8-G [3]) purchased from DLP Design. It's main drawback to the design was that the only computer available required 300 Watts of electricity, running 24x7. Over a month's time, this can become expensive. With the Raspberry Pi and the PiFace, I'm now revisiting the project, because the same system can be run on much, much less power.
Experimenting with the PiFace has been quite a learning experience. Things I've noted include:
- It's caused me to realize that I've become quite rusty at system development and has forced me to relearn much (you tend to forget information that you don't use).
- I've started haunting the local Radio Shack for parts (something I've not done since my childhood).
- The warning from @drogon at wiringpi.com cannot be stressed enough: "Remember: The Raspberry Pi is a 3.3 volt device! Attempting to directly connect to any 5V logic system will very likely result in tears." In short, I'm on my second Raspberry Pi.
- I'd originally assumed that the PiFace could be used in another project: to position a physical pointer at passing amateur radio satellites (there's a community of people that like to communicate as far as possible, and as long as possible, using only handheld radios and antennas). This requires the use of servos and servo controllers, something that the PiFace does not have built in.
Some of the PiFace's sensors are similar to those in the previously-owned DLP cable (e.g., can sense when a switch has been closed). The PiFace even comes with four push switches built in. Coupled with some of the available software (e.g., the PiFace Emulator), it allows the user to develop code in steps, learning as they go.
Developing the box is taking a bit longer than I'd originally thought. Since the Raspberry Pi doesn't have built-in audio recording capabilities, I had to find a USB-based sound card that the Pi would recognize. This turned out to be more difficult than it should. The nearest Fry's is over 1000 miles away, CompUSA closed down, and Best Buy no longer carries them. In the end, I raided a friend's junk box for the dongle.
I also had to relearn a lot of what I'd learned about Linux. I attacked this in steps, starting by building and playing with the PiFace examples from WiringPi.com [4][7]. This is more or less a collection of examples that show off the various features of the PiFace. I also experimented with Thomas MacPherson's PiFace code [5] and the PiFace emulator [6].
I now have a working prototype but it's a bit of a kluge. My current efforts have the arecord binary producing a wave file, which is then scp'd onto an Asterisk server, which triggers a call (via a "call file"[9]) to my cell phone. I eventually want to install Asterisk on the Pi and perform the switch sensing part via Perl modules for the PiFace[8] or C, and have it interface directly with the AMI, vice using call files. This will keep me busy for a number of months. Once it's done, since it amounts to being just a scripted audio response to a switch closing, I'm thinking that it can easily be adapted to other applications (e.g., someone pushing a doorbell, or other button, triggers a phone call).
In short, the PiFace is worth the 30 or so dollars purchase price. It's well suited for applications like the above, where specific actions are to be performed following a trigger from an external sensor, or where a binary (on/off) control is needed (e.g., pumping applications, fan control, lighting controls, etc.). I have a friend that I imagine would find it valuable to use with his AMX lighting controls.
Notes:
[1] http://wtkr.com/2013/04/28/five-years-later-suffolk-tornado-victims-still-remember-storm-vividly/
[2] http://hamptonroads.com/2008/04/least-200-injured-no-deaths-suffolk-tornado
[3] http://www.ftdichip.com/Support/Documents/DataSheets/DLP/dlp-io8-ds-v15.pdf
[4] http://rpi.tnet.com/project/faqs/gpiocommand
[5] https://github.com/thomasmacpherson/piface
[6] http://www.farnell.com/datasheets/1684425.pdf
[7] http://wiringpi.com/about/
[8] http://raspberry.znix.com/
[9] http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out