For those not familiar, the Raspberry Pi is an ultra small, ultra cheap computer. It boasts 1080p graphics capability, an ARM processor, 256 MB of RAM, ethernet port and supports Linux. The Raspberry Pi organization wants to the Raspberry Pi to be an ultra low-cost alternative to commercially available computers with an ultimate goal of stimulating interest in computer experimentation. For those of us that grew up in the 70′s and 80′s, the goal is an admirable one. Although computers were not generally low-cost, the simple act of owning a computer forced one to get their hands dirty and experiment. As a 9 year old beneficiary of a free hand-me-down TRS-80 computer in 1984, I am unable to emphasize the importance of the experience that followed. In my case, the computer came without a functioning data-store, so I was hopelessly limited to watching the cursor blink until discovering a TRS-80 book on BASIC programming. This discovery is akin to finding the Rosetta Stone and instantly being able to unraveling the mysteries Egypt. Ultimately this experimentation led me through a long relationship with an Apple IIe computer and ultimately ended in a career in technology. As you are dry your eyes after hearing my trip down memory lane, I ask, where does child get this experience today?
From an educational perspective, at first glance the Raspberry Pi offers a neat place to run Linux, but overall it accomplishes litte more than can be accomplished via a dual boot computer. The Raspberry Pi exceeds this limitation by offering unbuffered access to a set of GPIO pins that can be utilized for whatever someone can dream of. Whats more, because of the robust architecture and Linux support, these pins can easily be controlled via higher level languages like C or Python. The end results is a perfect engine for engineering control systems; especially control systems that integrate with traditional computer systems.
There is no doubt that Raspberry Pi is a useful tool, neat plaything and awesome educational tool; however, from a design perspective the device issues. For starters, the arrangement of ports on the Raspberry Pi seems a bit erratic. Ports extend from every flat face of the system board.
It seems like a small thing, but when you actually wire it up, it becomes difficult to manage. Part of the problem is that the board itself is so light, it bends to the mercy of the cables attached to it. Thick internet and ethernet cables lift the board into the air. Furthermore, the arrangement of ports can be a real bear when using the device for a permanent and useful purpose. That fact that these ports are likely arranged to address engineering constraints in the small form factor is not lost on me. I get that. I simply found myself wondering if I would have found it more useful if it were say 5″ x 5″ with sane port configuration rather than the 3″ x 4.5″ form-factor it is in today. The first project I worked on was a Raspberry Pi XBMC server. I (more importantly, my wife) found the mess of cables unsightly and decided to take it down.
Speaking of ports, the power port can be a bot of an enigma as well. The Raspberry Pi requires a 5 volt power supply that can sustain 750mA of power to the device. The plugin is of the micro USB variety. I found that locating a power supply of this type in the brick and mortar stores to be difficult, so be sure to plan you Internet purchases accordingly. Considering the low cost of the device, I took my chances with a 6 volt supply that I found at Radio Shack that is pumping 1A. So far so good, but do so at your own risk. There may be an extra benefit to 6 volts when over-clocking, but again, do so at your own risk.
Since we are talking about required accessories, make sure that you have a USB keyboard and a monitor that accepts either HDMI or RCA video in. I would also go the extra step to enable SSH on whatever Linux distro you choose and then replicate that system image. Furthermore, hard-bind a DHCP address for the MAC of the card so that a predictable IP address comes up. It is far easier to deal with this device if you need only to plug into power and network to access. See paragraph 2.
From a performance perspective, I was pleasantly surprised by this tiny devices ability to churn out 1080p video. I easily streamed media across the internet to my TV. The inclusion of audio over HDMI was also welcome considering the contents of my last paragraph. At this point, I have not identified the cause, but by turning on OpenVPN to anonymize the Internet traffic had a significant impact on the overall performance of the device. While this impact to performances makes sense, I do consider the use-case to be practical.