Gas station without pumps

2012 March 7

Raspberry Pi

Filed under: Raspberry Pi — gasstationwithoutpumps @ 12:28
Tags: , ,

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!


  1. I’m also very interested in playing with Raspberry Pi.

    Not sure what you mean by “Linux makes getting access to the I/O ports much harder than it needs to be” — at the most basic level, reading/writing offsets to /dev/port from any language on the system seems easier than having to interpolate assembly instructions in arbitrary languages. What’s hard about that? (I know that if you want high performance, you can use UIO — — but for just reading values from I/O ports I’d make /dev/port my first port of call…)

    Regarding SD card size, LMGTFY: says 2GB or larger. So, cheap! ☺

    Comment by Michael K Johnson — 2012 March 7 @ 14:19 | Reply

    • I haven’t had time to read the Raspberry Pi Wiki yet (I’ve bookmarked it to read later), so I was guessing on the SD card size (the only size they mentioned on the FAQ page was 32 Gbyte). Even a large SD card is pretty cheap now, though I’m surprised they chose SD rather than the microSD cards, which would have taken less board real estate and been cheaper.

      Reading and writing single bits with Linux is not as easy as on the Arduino. I don’t know whether Raspberry PI supports pulse-width modulation (either the high frequency PWM needed for motor control or the much slower pulse width encoding used for servo motors), both of which are built into the hardware and easily accessible in the Arduino libraries. Measuring input pulse duration (again a hardware built-in on the Arduino) may also be difficult in Linux I/O.

      I think that the Raspberry PI will be a great tool for teaching computer science and will allow some compute-intensive applications that aren’t feasible with the Arduino, but the lower-power Arduino may still be a preferred tool for teaching computer engineering and doing low-level real-time control.

      Comment by gasstationwithoutpumps — 2012 March 7 @ 14:28 | Reply

  2. […] background-position: 50% 0px; background-color:#a23452; background-repeat : no-repeat; } – Today, 2:07 […]

    Pingback by Raspberry Pi | Raspberry Pi | — 2012 March 8 @ 12:07 | Reply

  3. […] Raspberry Pi […]

    Pingback by Second Blogoversary « Gas station without pumps — 2012 June 2 @ 18:15 | Reply

  4. […] club members came up with some very ambitious plans for the Nerf gun (which included getting a Raspberry Pi and doing image processing to have a self-aiming gun), but I’m making them build […]

    Pingback by Nerf gun prototype 1 « Gas station without pumps — 2012 July 3 @ 21:12 | Reply

  5. […] Raspberry Pi […]

    Pingback by 2012 in review « Gas station without pumps — 2012 December 31 @ 11:17 | Reply

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: