Easy-to-Use ARM System on a Board
May 04, 2012
If you haven't heard of the open platform-friendly, inexpensive Linux-powered computing platform known as Raspberry Pi by now, you will be for years to come. Just as the Altair hailed the era of the personal computer, the Raspberry Pi is ushering in a new era of powerful, stunningly low-cost PCs on a board not much larger than an Arduino Uno. Think of a traditional PC motherboard with integrated graphics, network, and keyboard/mouse (USB) IO shrunken down to the size and slightly higher cost of an Arduino, and you'll get the idea of what the Raspberry Pi is all about.
Driven by an ARM11 processor, the Raspberry Pi has 256 megabytes of on-board RAM and a hardware-accelerated OpenVG GPU capable of pushing 24 gigaflops of 1080p 30 frame per second goodness. One of the many demos that shipped with the unit I received was an HD video file of the well-known Blender-generated Big Buck Bunny computer animated short. The full-screen video playback of the cartoon was breathtaking. Every detail of every object in every scene was vibrant, sharply focused, and not a hint of aliasing, lag, frame tearing, or artifacts. Each time I showed this portion of the Raspberry Pi demo to family, friends, and tech associates, they couldn't believe such amazing performance was coming from a hardware board that cost less than most.
The Raspberry Pi's only significant omission when compared to a traditional PC motherboard is a real time clock (RTC) or for that matter, a BIOS. But in today's networked world, pulling accurate time off a time server is easy enough to do. Plus, the addition of a clock crystal and a battery to drive it would have inched the cost higher and made the board's footprint unnecessarily larger.
Development Experience
Cold booting the Raspberry Pi using the ARM version of the Debian "squeeze" distribution was fairly peppy. Launching GUI applications does take noticeably longer than a traditional PC, but not unbearably so. Desktop apps are also slower on movement redraw, akin to running the latest release of Ubuntu on a first-generation Pentium PC. Fortunately, if you prefer interacting with the terminal, programs like vi and even the Python interpreter are satisfyingly quick. However, compiling apps with GCC takes quite a long time. One of the first environments I installed after getting oriented to the Raspberry Pi was the Ruby Version Manager (well, I had to "sudo apt-get install git" first), followed by Ruby v1.9.3 compiled from source, followed by the Rails v3.2.3 web framework. It took almost an hour to get to the point of typing "rails –v" to confirm that all went well. But once I had the Rails development environment running, I found the rails app construction experience to be just fine.
And because Python is already installed on the platform, running "sudo apt-get install python-pip" followed by "sudo pip django" installed the latest Django v1.4 web framework much faster than Ruby on Rails, taking under 2 minutes to launch the Python interpreter and type "import django; django.VERSION" to confirm that installation.
Naturally, the RAM constraints restrict Rails and Django apps deployed on the Raspberry Pi from becoming too resource intensive, but I found the hardware excellent for my prototyping and testing needs. Storage wasn't an issue either, thanks to the ability to connect external capacity via the USB port (or if you prefer, an NFS or Samba mount). If you're already comfortable working with Linux, you will have no trouble at all working with the Raspberry Pi.
Future Potential
Electronics enthusiast retailers like
Adafruit Industries
are already working on hardware extensions to the Raspberry Pi platform that will hook into the board's expansion pins akin to the way PCI boards expand a PC motherboard's capabilities. One of Adafruit's first products along this line is its
Prototyping Pi Plate Kit
that makes it much easier to wire up DIP chips, LEDs, and sensors to the Raspberry Pi board. As more people leverage these expansion kits, the similarly priced Arduino board and accompanying shields will likely be replaced by the Raspberry Pi ecosystem. I can tell you that after using the Raspberry Pi for over a week, I probably won't buy another Arduino board, unless Arduino raises the bar and produces a board even more powerful with more IO and functionality at an even lower price than the Raspberry Pi. I don't see that happening any time soon.
Recommendation
If you're still reading this review and haven't already ordered your own Raspberry Pi board from an electronics retailer like
Element 14
, then I recommend you do so now. The delivery waiting list is growing by the day, and the Raspberry Pi community is growing exponentially as a result. The number of exciting uses we'll be seeing over the next few months will be stunning, going far beyond what other embedded electronics products have been able to previously deliver in a such a potent price/performance ratio. Even if your hardware budget is constrained, the Raspberry Pi is a must have for any computing enthusiast. It will blow you away.