Raspberry Pi

Thanks to Mark Guzdial’s Computing Education blog, specifically this post, I recently found out about the Raspberry Pi, a Linux board that is retailing for $35, with 256Mb RAM, 2 USB ports, an Ethernet port, and both RCA and HDMI video output (no VGA though an adapter can be had for ).  The system on a chip they are using

is a Broadcom BCM2835. This contains an ARM1176JZFS, with floating point, running at 700Mhz, and a Videocore 4 GPU. The GPU is capable of BluRay quality playback, using H.264 at 40MBits/s. It has a fast 3D core accessed using the supplied OpenGL ES2.0 and OpenVG libraries.

The GPU provides Open GL ES 2.0, hardware-accelerated OpenVG, and 1080p30 H.264 high-profile decode.

The GPU is capable of 1Gpixel/s, 1.5Gtexel/s or 24 GFLOPs of general purpose compute and features a bunch of texture filtering and DMA infrastructure.

That is, graphics capabilities are roughly equivalent to Xbox 1 level of performance. Overall real world performance is something like a 300MHz Pentium 2, only with much, much swankier graphics.

This board seems to be at least 50 times as much processing and 8000 times as much memory as an Arduino for a similar price.  You need to add an SD card to boot off of (I presume with a Linux system on the card), which raises the price by another $15–35 depending on how big a flash card you get (I’m assuming that 16gB or 32gB is about the right size—a smaller drive would be much cheaper).

There appear to be 26 general-purpose I/O pins, so I can see this processor becoming quite popular for higher-end robotics.  With the ethernet connection, it may become popular for providing small LAMP (Linux-Apache-MySQL-PhP) servers, as long as everything can fit on the SD drive.  It has an audio-out port, but you’d have to use a USB microphone to get audio in.  The board can be powered over the USB line, or through a separate power port.

The default Linux is Fedora, but Debian and ArchLinux will also be supported.  The Linux can be downloaded and put on an SD, or the SD flash cards can be bought preloaded.

This looks like a potentially very useful educational toy—cheap enough to mess around with and easy to start over from scratch (just write a new copy of the Linux onto an SD card).  The only problem I can see is that Linux makes getting access to the I/O ports much harder than it needs to be, but I suspect that the developers have already written drivers and Python modules for accessing the I/O pins, so this may not be a problem.  They plan to make Python the main development language for the Raspberry Pi (Python is slow, but even with interpreter overhead the chip would still be faster than an Arduino), but any language that has a compiler for the ARMv6 should work.  I assume that Pyrex would be available for speeding up inner loops.

I may have to look into designing a motor shield for the Raspberry Pi, so that we can do robotics with Python programming!

Related articles

Tagged: Arduino, Linux, Raspberry Pi

[original story: Gas station without pumps]