How the Raspberry Pi Works


The Raspberry Pi pictured here with an SD memory card.
The Raspberry Pi pictured here with an SD memory card.
Image courtesy www.sotechdesign.com.au

In the mid-2000s, several members of the Computer Laboratory at the University of Cambridge noticed two disturbing trends: Fewer students were seeking enrollment in the computer science (CS) program, and the ones who did apply had scant programming knowledge compared to prospective students of the previous decade. At best, these new applicants might have done some Web development, but programming experience was becoming rare.

What was the difference between the aspiring CS majors of the 2000s versus those of the 1990s? The Cambridge academics recognized several possible causes, including societal issues involving education and the economy that would take massive efforts to correct. One of the culprits, however, was something they thought a handful of people could tackle. Children and adolescents in earlier generations had access to easily programmable home computers that the newer applicants they were seeing did not.

This programming deficiency is beginning to affect both the scholarly and the working worlds. Students are coming in with little or no exposure to programming, requiring remedial teaching efforts [sources: Stross, Tucker]. The U.K., the U.S. and other countries have reported declining numbers of CS graduates over the 2000s, and shortages of qualified IT workers are occurring globally [sources: Africa News, Devaney, Devlin]. The U.K., once a major contender in the gaming industry, is already falling behind in this sector, and the fear is that a continuing shortage will hurt the country's competitiveness and future innovation. This trend will doubtless hold true for other countries, too.

Despite a struggling world economy, demand for IT workers remains strong, and even greater demand is likely as our appetite for technology increases. Imagine a future with fewer of the digital services and ever-improving, computer-driven conveniences that we've come to expect. Who will make the cutting-edge video games, self-driving cars and housecleaning robots of the coming years?

In an effort to reverse the situation, Eben Upton (then a member of the Cambridge Computer Science department); Rob Mullins, Jack Lang and Alan Mycroft of Cambridge; Pete Lomas of Norcott Technologies; and David Braben, co-author of the famous BBC Micro game Elite, teamed up in 2006 to found the Raspberry Pi Foundation. This charitable organization's primary goal is to create low-cost, programmable computers and to get them into as many hands as possible, particularly those of children. Their price goal was $25 per device (around the cost of a textbook), with the choice of a slightly more expensive and enhanced model.

In 2012, the foundation's work came to fruition with the creation of the Raspberry Pi, a credit card-sized, low-cost but fully functional and programmable computer with modern high-definition multimedia capabilities. It may be the device that gets us back to computing basics.

The Short and Sweet History of Home Computing

The earliest computers took up entire rooms, but in the 1970s, small microprocessors, like the MOS 6502 microprocessor by MOS Technology, became available, allowing computers to be manufactured for home use. The most popular home computer during much of the '80s was the Commodore 64, which sold for $595 upon initial release.

Some models, such as the Apple II and Tandy TRS-80, came with monitors, but most, including the Ataris, the Sinclairs and the Commodore 64s, were keyboards that attached directly to your television. Many had no internal storage, necessitating the purchase of external devices such as tape and floppy disk drives to allow you to save your work magnetically. Their RAM ranged from 1 KB to 64 KB (a scant amount by modern standards), but the devices allowed us to create and play graphical games, perform word processing and do complex calculations via computer, things the average person hadn't been able to do before.

The computers that doubled as gaming consoles, such as the Ataris and Commodores, allowed you to insert game cartridges. But they also allowed users to write programs in various flavors of BASIC (a more user-friendly programming language than most others of the era). At a time when there was little software available for purchase, you could buy books and magazines containing prewritten programs to retype and run on your home system, or you could write your own. Whichever you chose, you were learning at least a little programming along the way.

The devices allowed you to work on a command line, boot into programming environments and otherwise become familiar with the back-end operating system out of necessity. The Commodore 64 had a rudimentary graphical menu system, the predecessor to modern graphical user interfaces (GUIs), but you still had to know more about the computer than you do nowadays. Several of these systems attracted kids and adults alike via the games, but they also encouraged learning to program in order to get the most out of the machines.

As computers became increasingly complex over the '90s, and gobs of prewritten software became available, computers morphed into fully functional and indecipherable black boxes. Most modern GUIs hide the back-end processes of the operating system. Games and other software are impenetrable, and you have to install special software to write and compile programs. Unless you work in or study IT, you never have to go to the command line or write your own software.

This evolution has helped bring us to the current crisis. There's less need for people to tinker with the inner workings of computers, and the focus has shifted to more mundane uses (like using office software, sending e-mail and surfing the Internet). Since PCs have become as central as television to many of our daily lives, many parents aren't likely to let their kids needlessly tamper with their expensive family computers. The Raspberry Pi could bring us out of this predicament by providing a programmable device that anyone can play with, including children.

The Raspberry Pi Components

Diagram of the Raspberry Pi
Diagram of the Raspberry Pi
Image courtesy Paul Beech @ Guru/Raspberry Pi Foundation

The Raspberry Pi device looks like a motherboard, with the mounted chips and ports exposed (something you'd expect to see only if you opened up your computer and looked at its internal boards), but it has all the components you need to connect input, output, and storage devices and start computing.

You'll encounter two models of the device: Model A and Model B. The only real differences are the addition of Ethernet and an extra USB port on the more expensive Model B.

Here are the various components on the Raspberry Pi board:

  • ARM CPU/GPU -- This is a Broadcom BCM2835 System on a Chip (SoC) that's made up of an ARM central processing unit (CPU) and a Videocore 4 graphics processing unit (GPU). The CPU handles all the computations that make a computer work (taking input, doing calculations and producing output), and the GPU handles graphics output.
  • GPIO -- These are exposed general-purpose input/output connection points that will allow the real hardware hobbyists the opportunity to tinker.
  • RCA -- An RCA jack allows connection of analog TVs and other similar output devices.
  • Audio out -- This is a standard 3.55-millimeter jack for connection of audio output devices such as headphones or speakers. There is no audio in.
  • LEDs -- Light-emitting diodes, for all of your indicator light needs.
  • USB -- This is a common connection port for peripheral devices of all types (including your mouse and keyboard). Model A has one, and Model B has two. You can use a USB hub to expand the number of ports or plug your mouse into your keyboard if it has its own USB port.
  • HDMI -- This connector allows you to hook up a high-definition television or other compatible device using an HDMI cable.
  • Power -- This is a 5v Micro USB power connector into which you can plug your compatible power supply.
  • SD cardslot -- This is a full-sized SD card slot. An SD card with an operating system (OS) installed is required for booting the device. They are available for purchase from the manufacturers, but you can also download an OS and save it to the card yourself if you have a Linux machine and the wherewithal.
  • Ethernet -- This connector allows for wired network access and is only available on the Model B.

Many of the features that are missing, such as WiFi and audio in, can be added using the USB port(s) or a USB hub as needed. Next: More details on the device itself and its compatible operating systems.

More Raspberry Pi Device Details

The Raspberry Pi measures roughly 3.4 inches by 2.1 inches (8.6 centimeters by 5.3 centimeters), but it is pretty powerful for such a small device. This was made possible by the ready availability of inexpensive and tiny processors for mobile devices, which need to pack a decent amount of processing and multimedia capability into a small shell with the ability to stay relatively cool and not suck power too quickly.

The foundation picked a chip with ARM architecture for this reason (a processor architecture commonly used for mobile phones and similar devices). The chip has 256 MB of RAM, runs at 700 MHz and includes a 1080p-capable GPU. Although there are other ARM chips available, the group chose a Broadcom chip in part because of Eben Upton's relationship with the company (he works for them). Broadcom's willingness to give a bulk rate for small orders allows the foundation to get a much better price on this chip than on any comparable competitor's processor.

Like many of the earliest home computers, the device comes without peripherals or internal storage space, and the user will have to attach input, output and storage peripherals. At a minimum, you'll need a television or monitor for output, a keyboard (and possibly a mouse) for input, an SD card on which to house the OS and store data, a power supply and any necessary cables. You can add an external hard drive for additional storage, but the SD card will still be necessary, as the OS will boot from SD by default.

The compatible operating systems for the device are all Linux distributions. Linux was chosen at least partially for its low memory overhead, making it possible to run a fully functional OS on such a simple device that's devoid of built-in permanent storage. Linux is also generally free and has great potential as a CS learning tool, since its distributions often come with some programming languages already installed.

The open-source nature of Linux will aid in the proliferation of software as developers jump on the bandwagon to provide content. The Raspberry Pi Foundation's initial intention was to create both the device and the learning curriculum around it, but the group decided to scale back its scope, concentrate on creating the computer and let an eager, willing open-source programming community create software.

The Raspberry Pi's programmability and simplicity make it very like the computers of yore that spawned so many programmers and system hobbyists. But unlike those computers, this device can be used for Web surfing. The Internet will make finding things you can do with the device much easier than back in the day. There's a user forum on the Raspberry Pi site, and tutorials and other materials are readily available online. Of course, either the Ethernet connector of Model B or an external WiFi device attached via USB will be necessary to allow for network connectivity.

Why Choose the Raspberry Pi and Not Something Else?

The Raspberry Pi has a few competitors, although the foundation encourages people to clone its idea, so competitor might not be the right word. They include BeagleBoard and PandaBoard (which are both the names of the companies and their main devices). Both are nonprofit organizations but with slightly different goals than the Raspberry Pi Foundation. BeagleBoard is geared toward adult hardware tinkerers, and PandaBoard aims to make a mobile software-programming platform available at a reasonable price.

Like Raspberry Pi, they're both exposed boards with ARM processors and are HD video capable. But BeagleBoards and PandaBoards have more connectors and connection headers (bits of the board that can be used by soldering additional hardware) than the Raspberry Pi, and both devices are a bit larger. The following aren't exhaustive lists of components, but here are some features that differ from the Pi:

BeagleBoardandBeagleBoard-xM

  • Cortex A8-based processor made by Texas Instruments, running from 600 MHz to 720 MHz on the BeagleBoard (depending upon version) and 1 GHz on the xM.
  • 128 MB RAM on the original BeagleBoard, but 256 MB and 512 MB RAM on the newer boards, respectively.
  • DVI-D monitor connector
  • S-video connector
  • Audio in and out (not just audio out)
  • One USB port on BeagleBoard and four USB ports on the xM
  • USB and DC power
  • No RCA or HDMI connector

PandaBoard and PandaBoard ES

  • Dual-core ARM Cortex A9 MPCore processor, also manufactured by Texas Instruments, running at 1GHz on the PandaBoard and 1.2 GHz on the ES
  • 1 GB RAM
  • DVI-D monitor connector
  • LCD expansion header
  • Audio in and out
  • One USB on-the-go port and two standard USB ports
  • WiFi and Bluetooth connectivity
  • USB and DC power
  • No RCA connector

For its intended educational purposes, the Raspberry Pi has two major advantages over the others. First, it was conceived to be a complete working computer. You simply need to insert an SD card containing the OS, connect the peripherals and power, and it's ready to go. BeagleBoards and PandaBoards require hookup to a host computer for initial setup, and though they have similar processing capabilities, they take a little more know-how to get them fully functional.

Second, the other devices are much more expensive than the Raspberry Pi. For example, in April 2012, the pricing was $125 to $149 for the two main BeagleBoard models, and $174 to $182 each for the two PandaBoard models. These prices are a far cry from the $25 and $35 base prices of the Raspberry Pi. This doesn't mean that the other devices aren't for you. You just have to examine the specs and determine which machine best suits your needs. Given its functionality and price, the Raspberry Pi seems better poised to get computing power to the masses.

Hardware aside, software-based educational resources are available for anyone wishing to learn programming on current computers.

How Will the Pi Help Kids to Program?

A split screen of the sort that kids encounter when they're programming on KidsRuby
A split screen of the sort that kids encounter when they're programming on KidsRuby
Screenshot by HowStuffWorks.com

Students can take computer programming classes in school, but these courses aren't required for everyone in most places, and they often start in high school, whereas Upton and others would like kids to start earlier. The bulk of the focus of computer education is on operation rather than programming, as with the British Information and Communication Technology (ICT) program that's being touted as one of the things causing a shortage of advanced skills in the U.K.

But just as in the '80s, an interest in games and other multimedia material can be a gateway into programming for a lot of children and young adults. Software-based learning tools are available that take advantage of this fact, and they're being used to teach programming fundamentals. One is the Scratch language created at MIT.

Scratch is a graphically based drag-and-drop language that kids can use to create interactive multimedia projects without having to learn difficult language syntax. Although designed for elementary and middle school students, it's even being employed in college courses on introductory computing.

Another drag-and-drop tool is Alice, developed at Carnegie Mellon University to teach object-oriented programming, again by having students build animations and games. And there's also an Xbox 360-based visual language called Kodu that allows you to build games with your game controller as an input device. Children or adults can use these environments to learn programming concepts without having to type and debug code.

One tool that teaches real code is Kids Ruby, which, as the name implies, teaches kids the Ruby programming language. Once you've read a few short pages into the first lesson, it has you write a few simple lines of code on one side of the program window, hit a run button and see the results on the other side. You slowly learn to code as the lessons become more complex. The Kids Ruby team has even gotten it working on the Raspberry Pi, so it might be a great start for any kids curious about programming on the new device.

The Raspberry Pi team is banking on the development of such education-based software to help make the device more accessible to kids. One way this device is likely to interest more children in programming is simply by making a programming platform available to them. They might once again have the opportunity to own their own computers on which to code and tinker. A price tag of $25 to $35 is a more palatable replacement cost than any repair work to the expensive family computer. At that price, it may also be accessible to disadvantaged children whose families currently don't own computers. Schools have already shown interest, so even kids who can't buy one might get exposure and practice in the classroom.

Want to grab a Raspberry Pi of your own?

Where Can I Buy a Raspberry Pi?

Shot of the Arduino Uno R3 for sale on Amazon, another board operating in a similar space to the Raspberry Pi
Shot of the Arduino Uno R3 for sale on Amazon, another board operating in a similar space to the Raspberry Pi
Image courtesy Amazon.com

The foundation originally intended to bring the device out in November 2011, but there were design and development delays, unexpected issues sourcing some of the required parts and a couple of manufacturing and distribution glitches. Manufacture of the initial batch was handled overseas, but two U.K.-based companies were picked to distribute the existing devices and to manufacture and sell future orders of the Raspberry Pi: RS Electronics and Element 14/Farnell.

A limited run of 10,000 Model B devices was made available for sale in late February 2012 (before manufacturing ultimately completed). They sold out immediately, and the heavy traffic brought down the retailer Web sites. These first devices were shipped from China to England by the end of March 2012, and shipping to the lucky buyers began on April 14, 2012.

One issue that caused a gap between device completion and shipping was a controversy over whether the Raspberry Pi needed the Conformité Européenne (CE) mark. This stamp is required on various products to allow legal sale within the European Union (EU). The foundation didn't think the certification was required because the group considered it an unfinished product like the BeagleBoard, the early version of which did not receive the CE mark, but the two distributors did. In any case, the device passed Electromagnetic Compatibility (EMC) testing and received the CE mark.

If you weren't fortunate enough to get in on the first batch, you can get on a waiting list with either of the manufacturers. The foundation is also considering implementing a give one, get one charity option like that of the One Laptop Per Child organization. There is no bulk discount planned, as the devices are already incredibly inexpensive.

When we wrote this, the retail cost really was $35 for the Model B and $25 for the Model A. But there are some other costs that bring the true price of the computer up, including potential customs fees, sales taxes, shipping, and the prices of peripherals and connection cables. But given the higher cost of all comparable devices, the fact that they also require similar peripherals, and the even higher cost of complete in-box home computer systems, the Raspberry Pi is still cheaper than the alternatives.

Raspberry Pi Reviews and Future Potential

The popularity and demand for the device far outstripped what the creators were expecting, as is evidenced by the sellout on initial order day and the subsequent site crashes. The Raspberry Pi Foundation received lots of inquiries and requests outside the groups they expected would be interested in the device (not just schools and hobbyists but hospitals and other organizations).

The reviews from the first lucky few to use the device were mostly positive, praising its speed, video quality and educational potential, among other things [sources: Gibbs, Williams, DesignSpark]. A group of school children even got to try it out and were loath to give the device back [source: Greenwell].

People are already striving to get useful or just darned cool software working on the Raspberry Pi. Videos of applications running on the device can be found at RaspberryPi.org, including OpenELEC's XBMC media center application, VNC remote desktop software, Quake 3 and even an emulator for the old ZX Spectrum computer. And there are rumblings on the Raspberry Pi forum of using the Pi to create other retro computer emulators, robotic vehicle controllers, kitchen computers, new online multiplayer games, home servers and a host of other high-tech software and hardware.

The Raspberry Pi is also piquing the interest of institutions and people in developing nations due to its low cost and power requirements, combined with relatively powerful computing and multimedia functionality. In such places, computer equipment isn't as readily available as it is in more industrialized nations, and electricity is expensive. Cheap computing for everyone could not only get more people into computer science worldwide, but also result in useful innovations and increased access to technological advances in areas where resources are scarce.

The device certainly isn't just for kids. If you can think of a use for it, you can buy one and, with a little work, implement your idea.

Let there be robots.

Author's Note

I grew up in the 1980s programming on one of those early gaming machines. My brother and I received an Atari 800XL as a gift when he was 12 and I was 13, after several relatives chipped in for it. Both of us started programming in BASIC almost immediately (when we weren't fighting over Dig Dug or Karateka). I mostly wrote very simple text adventures (like the choose-your-own-way books, or my favorite Infocom text-based games), and my brother programmed graphics and 8-bit music.

Computers got way more expensive for a while there, and I couldn't afford my own until the mid-'90s. But despite a nearly 10-year gap between computers, my early experience with them kindled my interest in programming, and now that's what I do for a living. I really hope the Raspberry Pi catches on and gives lots of kids the same sort of incredible educational tool that I had in my formative years.

Related Articles

Sources

  • Arduino. "What is Arduino?" (April 11, 2012) http://arduino.cc/en/Guide/Introduction
  • BeagleBoard.org. Web site, assorted sections. (April 12, 2012) http://beagleboard.org
  • Carnegie Mellon University. "What Is Alice?" (April 12, 2012) http://www.alice.org/index.php?page=what_is_alice/what_is_alice
  • Celano, Donna and Neuman, Susan B. "A Matter of Computer Time." Kappan Magazine. Pages 68-71. October 2010. (April 12, 2012) http://www.kappanmagazine.org/content/92/2/68.abstract
  • Devaney, Tim. "In Tech World, Job Seekers Call the Shots; Companies Have 75,000 Openings and a 'Shortage' of Talent." The Washington Times. May 30, 2011. (Aug. 23, 2012) http://www.washingtontimes.com/news/2011/may/29/in-tech-world-job-seekers-call-the-shots/
  • Devlin, Hannah. "Science Matters; It's Not Enough to Gaze Longingly at the Next iPad. We Need To Be a Nation of Programmers." The Times (London). March 1, 2012.
  • Dillon, Roberto. "Golden Age of Video Games: The Birth of a Multibillion Dollar Industry." CRC Press. April 2011.
  • European Commission. "CE marking - Basics." (April 13, 2012) http://ec.europa.eu/enterprise/policies/single-market-goods/cemarking/about-ce-marking/index_en.htm
  • FXI Technologies. "Cotton Candy." (August 29, 2012) http://www.fxitech.com/products/
  • Gibbs, Sam. "Hands-On With the Only Raspberry Pi Left in London." Gizmodo. March 8, 2012. (April 5, 2012) http://www.gizmodo.co.uk/2012/03/hands-on-with-the-only-raspberry-pi-left-in-london/
  • Greenwell, Daisy. "Berry Cool." The Times (London). March 7, 2012.
  • Hope, Alex. "In Britain We Are Going Backwards." The Daily Telegraph. Dec. 3, 2011.
  • Houghton, Stuart. "Five Things You Can Do With the New Raspberry Pi." Gizmodo. Feb. 29, 2012 (April 13, 2012) http://gizmodo.com/5889245/five-things-you-can-do-with-the-new-raspberry-pi
  • The Hybrid Group. Kids Ruby. (April 7, 2012) http://kidsruby.com
  • MacSweeney, Greg. "Wall Street IT Pros In Strong Demand." Wall Street & Technology. Feb. 1, 2012.
  • Marsden, Rhodri. "The Flight of the Commodore: How the Iconic Computer Led to a Golden Age of Geeks." The Independent (London). Jan. 26, 2012.
  • Massachusetts Institute of Technology, Lifelong Kindergarten Group at MIT Media Lab. Scratch. (April 12, 2012) http://info.scratch.mit.edu/About_Scratch.
  • Mather, Joanna. "Disconnect on Computer Studies." Australian Financial Review. Feb. 29, 2012.
  • Meyer, David. "Raspberry Pi Hits New Snag Over CE Certification." ZDNet. March 29, 2012. (April 5, 2012)
  • Michaels, Adrian. "My Childhood as a Pioneering Programmer." The Daily Telegraph. Dec. 3, 2011.
  • Microsoft Research. Kodu. (April 12, 2012) http://research.microsoft.com/en-us/projects/kodu/
  • Nebenzahl, Donna. "IT Experts Don't Grow on Trees; Interest in Information Technology is Dwindling, Now Well-Paying Jobs Are Being Shipped Overseas." The Toronto Star. Aug. 29, 2009.
  • Netburn, Deborah. "Will $35 PC Get Kids Into Creating Code?" Los Angeles Times. March 6, 2012.
  • One Laptop Per Child. "About the Project - Frequently Asked Questions." (April 12, 2012) http://one.laptop.org/about/faq
  • One Laptop Per Child. "Hardware Specifications." (April 12, 2012) http://one.laptop.org/about/specs
  • PandaBoard.org. Web site, assorted sections." (April 10, 2012) http://pandaboard.org
  • Qt Project Hosting. "Qt 5." (Aug. 29, 2012) http://qt-project.org/wiki/Qt_5.0
  • Qt Project Hosting. "Qt Raspberry Pi." (Aug. 29, 2012) http://qt-project.org/wiki/Qt-RaspberryPi
  • Raspberry Pi Foundation. "Downloads." (Aug. 29, 2012) http://www.raspberrypi.org/downloads
  • Raspberry Pi Foundation. Web site, assorted sections. (April 2, 2012) http://www.raspberrypi.org
  • Raspbian.org. "Raspbian FAQ." (August 29, 2012) http://www.raspbian.org/RaspbianFAQ
  • Schmidt, Eric. "Britain's Economy Will Thrive If Computing Becomes Child's Play: The Executive Chairman of Google Endorses the Observer's Campaign to Bring Coding to the Classroom." The Observer (England). April 8, 2012.
  • "South Africa: Skills Gap Has IT Firms Worried Over Survival." Africa News. May 28, 2010.
  • Stross, Randall. "Computer Science for the Rest of Us." The New York Times. April 1, 2012. (Aug. 23, 2012) http://www.nytimes.com/2012/04/01/business/computer-science-for-non-majors-takes-many-forms.html
  • Swaminathan, Nikhil. "Digging Into Technology's Past." Archaeology. Volume 64, Issue 64. Pages 30-33. July/August 2011.
  • Tucker, Ian. "Review: Discover: Get Programming; Eben Upton, Director of the Raspberry Pi Foundation." The Observer (England). Aug. 28, 2011.
  • Upton, Eben. "Video: Eben at the Bletchley Park Educating Programmers Summit." Raspberry Pi Foundation. (April 5, 2012) http://www.raspberrypi.org/archives/112
  • Wainewright, Phil. "Software is Child's Play." Microscope. May 28, 2007.
  • Waugh, Rob. "The £100 Cotton Candy 'computer stick' that turns any flatscreen TV into an Android computer." Daily Mail. May 15, 2012. (Aug. 29, 2012) http://www.dailymail.co.uk/sciencetech/article-2144734/Cotton-Candy-USB-stick-turns-flatscreen-television-working-computer.html
  • Williams, Alun. "Raspberry Pi: Electronics Weekly Mini Review." Electronics Weekly. March 9, 2012. (April 5, 2012) http://www.electronicsweekly.com/blogs/electronics-weekly-blog/2012/03/raspberry-pi-electronics-weekly-mini-review.html
  • "Young Coders: What's Happening in the Rest of the World." The Guardian. March 31, 2012. (April 5, 2012) http://www.guardian.co.uk/education/2012/mar/31/young-coders-rest-of-world?