We use Amazon Christmas lists in our family, but I’m not very good at keeping them up to date or remembering to put stuff I want on the list. This year I remembered to put something on my list I had been interested in experimenting with for a few years; A Raspberry Pi. What is a Raspberry Pi, you ask? The Raspberry Pi is a credit-card-sized single board computer that plugs into your TV or monitor and can accommodate a keyboard and mouse, and a lot more. This is a little computer that can be used for many of the things that a desktop PC does. The design is based on Broadcom BCM2836 system on a chip with a 900MHz ARM Cortex-A7 quad core processor, Dual Core VideoCore IV Multimedia coprocessor and 1GB RAM. This board is powered from a 5V micro-USB adapter and runs various operating systems such as Raspbian, RaspBMC, Arch Linux, RISC OS, OpenELEC, Pidora and Microsoft Windows 10(!).
Megan and Dan bought me the Raspberry Pi 2 Model B starter kit for Christmas. It came with a credit-card-sized motherboard, a clear plastic case, and a micro-USB power supply (the same kind of power supply you use to charge an Android phone). With the motherboard in the case, it slips easily into a shirt pocket. In addition to all the circuitry for the computer (CPU chip, 1GB memory, audio, graphics, etc.), this tiny motherboard has a power connector port, four USB2 ports, an RJ-45 Ethernet port, an audio-out port, an HDMI graphics out port, a CSI (Camera Serial Interface) in port, a DSI (Display Serial Interface) in/out port (for use with touch-screens), a long bar of places to connect various other controllers and sensors, and a micro-SD port for memory/data storage.
I made the silly assumption that there was a “BIOS” on the board, but when I hooked up a keyboard, a mouse, a 32-inch Hi-Def HDMI TV, an Ethernet cable, and powered it up… nothing! So I did a little more research. It turns out you need to hard-format a micro-SD card (I had a spare 4GB card, the bare minimum required) and pre-load the NOOBS (“New Out Of Box Software”) bootstrap loader on the card, then run NOOBS and use it to install any one of a number of graphical OSes onto the card. A 4 GB micro-SD card only had room for the Spartan RISC OS for Pi. A bigger card will give me more options (Raspian, Linux – a bunch of flavors, even Windows 10!) so I may pick up a few cards and try more than one OS.
Once the micro-SD card was prepped, it booted up into NOOBS, presented a list of possible graphical OSes available over the internet, and let me choose any of the OSes that would fit on the installed micro-SD card (of which there was only one; RISC OS for Pi). I installed RISC OS for Pi by downloading it directly over the internet to the micro-SD card in the Raspberry Pi.
Next step will be to pick up a few more micro-SD cards to try other OSes, and then experiment with adding components that can sense conditions (cameras, touch-screens, RFID proximity, accelerometer, temperature, clocks, etc.) and write some code that will respond to sensor inputs. Fun!
UPDATE 1 (30 DEC 2015)
I went out and bought a couple of 32GB micro-SD cards, loaded the full-featured Raspbian OS on one of them. Raspbian (a version of Linux based on Debian) is the Raspberry Pi Foundation’s official supported operating system, and comes pre-installed with plenty of software for education, programming and general use. It has Python, Scratch, Sonic Pi, Java, Mathematica and more.
On the other card I loaded Windows 10 IoT Core For Raspberry Pi 2. The “IoT” stands for “Internet of Things,” where little limited-function gadgets are connected to the Internet and can be monitored and controlled by dedicated small computers (like a Raspberry Pi!). THAT is the real reason I wanted to experiment with a Raspberry Pi; to build my own controllers for dedicated devices (a weather station, or a temperature alert system, or a synchronized lights-and-music controller, or…).