Embedded Computing, With a Side of Pi
Dec 1, 2014 9:00 AM, Alex Hartman
Embedded computing is not a new thing. Such devices have been around for years in industrial applications controlling heavy machinery that required full-blown PCs to perform the tasks required of it.
However, a few terms have come into common use when referring to embedded computing; �Hackerspace� and �Maker� are just a couple.
Embedded computers have become popular with the �kids these days.� They''re inexpensive; hobbyists have flocked to them. The Raspberry Pi Foundation in the U.K. created the Raspberry Pi to fill a need in the classroom and provide inexpensive lab classes. They never in their wildest imagination thought the platform would be as popular as it is.
You can use the credit card-sized Pi as a media device attached to a television or a whole house �smart home� controller. You can even hook it up to the coffee pot (yes, someone has done that). As a matter of fact, the Pi has created an embedded computing �movement.� Tiny computing devices similar to the Pi include popular platforms such as Arduino, Beaglebone, Cubieboard and the Intel Galileo. The list of embedded computing platforms goes on.
These became so popular in part because they offer a gateway to the real world through GPIO pins and digital I/O. Each board has suitable purposes and uses, but ARM-based ones seem to be more �general purpose.� The Arduino for instance is a �building block� platform for specific tasks, using components such as Atmel CPUs and other MCUs. They aren''t powerhouses but can drive flip-flop relays, light controllers or any number of projects. These boards are popular for robotics projects and drones, for example.
For the scope of this article however we will focus on the Raspberry Pi.
Raspberry Pi B+
What does this mean to the broadcast engineer? The Raspberry Pi interfaces well with Python, but can be used with almost any language that knows how to do hardware interrupts (C, C++, J++, COBOL, Assembly, etc.). This is why the Pi has become so successful�if you know the basics of any programming language, you can learn to program the Pi to do what you want. The embedded computing platforms of today are handy little problem-solvers. A weekend of coding, a trip to the parts drawer, an order to Element14 or any vendor on the Internet and before you know it, you''ve got a device telling you when the coffee pot is running and a status input telling you that the fan failed at the transmitter site. These devices can even show the information on a little website for you or send you an email, with some assembly required, of course.
What can I do with them? As mentioned, these tiny little systems are problem-solvers of the digital age. I have designed an SNMP aggregation server using the Pi as a �systems management� device. One Raspberry Pi is collecting all of the SNMP data on my network from various devices such as server disk space, temperature probes, satellite signal strength, audio level loss, Arbitron encoder relays, EAS, status and everything else in the plant. It''s a lot of work for the small box that hides in the ceiling of my office. I have this particular machine attached to an LCD TV in my office that displays the information at a glance and alerts me if something is wrong and requires attention.
Another project that has piqued interest in the broadcast community is called OpenOB. Developed by James Harrison at the BBC research facility for remote broadcast, it runs in Linux and streams Opus encoded audio (currently only unidirectional) with very little latency. For $35, a Raspberry Pi can be deployed to a remote studio as an STL bridging the gap in place of more expensive codec hardware.
Raspberry Pi with Wolfson DAC audio card
Does your facility need a security system? Yep, it can do that too � inexpensive IP webcams streaming H.264 back to the Pi as the network video recorder, door lock controller, RFID scanner, all in one box.
Ever wanted to remotely locate the studio PC because of space, heat or noise concerns? Perhaps a virtual PC might be another solution. The Pi is VMware-friendly and works well as a �smart-dumb terminal� back to a VMware server.
Let''s talk about a few not-so-traditional, not-so-broadcast uses including hobby stuff around the house. The world of �smart� and �connected� devices has been coined �The Internet of Things.� There is a website called BrewPi. You guessed it, a home beer brewing controller. Add a few temp probes, some relays, a mini fridge and the Pi will e-mail you when your beer is ready!
Have you heard about these little RTL SDR USB sticks available all over the Internet? Plug one into a Pi and run the �dump1090� app. Soon it will start listening to all the ADS-B air traffic data around you and send it to your Windows workstation to be rendered on Google Earth. For those who like to listen to police scanners but want something that can decode P25 without paying the price for one of the fancy models, GNURadio offers a block-diagram system for encoding/decoding radio signals in Linux. With the RTL SDR, you can listen to anything from 60 MHz to 1900 MHz. This approach is even broadcast-friendly, as the Pi has an analog audio output. You could, for example, write a little �scanner� diagram in GNURadio to decode the local emergency frequencies and make it available to the station''s newsroom. The whole system can run without a monitor with a few extra lines of code to turn on at startup.
Raspberry Pi with USB SDR and LCD touchscreen as a simple spectrum analyzer
Are you a ham? How about building a repeater controller? D-Star hotspot controller? Echolink node? Yep, it''s all been done.
The Raspberry Pi is so versatile that the possibilities for projects are virtually limitless. If you can dream it up, this little device probably can handle it. Video rendering and encoding is possible as well. Not quite as fast as a quad-core Xeon, but it will certainly do the job.
If you have a need, a bit of basic electronic and programming knowledge and some time to tinker, this is a good platform to get to know. Pretty soon you will have a small network of Raspberry Pi systems at your command doing little housekeeping chores around the facility for you.