Skip to content

RaspberryPi

Published On:
Mar 23, 2013
Last Updated:
Aug 10, 2019

The RaspberryPi is a family of cheap, fully-functional micro-computers.

Quick Setup

www.raspberrypi.com has released software called NOOBS (new out-of-the-box software), which makes it really easy to setup the RPi. Just download NOOBS (which was just over 1GB at v1.2.1), format (go here) then unpack NOOBS onto the SD card, and your good to plug the SD card into the RPi and power up (NOOBS will present you with various operating systems to install on start-up).

At the bare minimum, you’ll also need a USB keyboard, mouse (hard-outs may be able to forgo this) and either an HDMI or composite screen.

Default username:pi
Default password:raspberry

Longer Setups

You can also write images directly to the SD card. The recommended tool for this is the open source program Win32DiskImager.

Operating Systems

There are many operating systems that are compatible with the RPi.

A list of some of the supported operating systems and downloads for them can be found here.

Occidentalis

A port of the Raspian OS by Adafruit industries which makes the OS more hacker friendly. It provides hardware SPI and I2C support, Realtek RTL8188CUS WiFi support (a common chipset used in USB WiFi modules).

Pidora

URL: http://pidora.ca/

Pidora is a mod of Fedora for the RPi.

Raspian

URL: http://www.raspbian.org/

A Debian-based (Ubuntu-like) operating system optimised for running on the RPi. It is one of the most popular operating systems for the RPi. Provides a config menu the first time you boot, where you can change settings such as the password, enabling SSH, expanding the file system to use the entire SD card, and configuring the keyboard/mouse.

You can bring up the config menu at any time by typing the command sudo raspi-config.

To load up the GUI from the command-line, type startx.

To shutdown the GUI from the command-line, type sudo shutdown "now" (this also shuts down any other processes).

The nano text editor comes pre-installed, type nano to load it.

RISC OS

URL: https://www.riscosopen.org/wiki/documentation/show/Welcome%20to%20RISC%20OS%20Pi

A version of the RISC OS (a operating system dating back to 1987 for 32-bit ARM chips) for the RPi.

Music Orientated

Pi MusicBox

Supported Music Sources
  • Apple AirPlay
  • DLNA streaming from phone/tablet
  • Google Music
  • MP3/OGG/FLAC/AAC (on SD Card, USB or Network)
  • Spotify
  • Soma FM
  • SoundCloud
  • Subsonic
Supported PlatformsRaspberry Pi
StructureMopidy (which itself is MPD)
LicensingOpen Source

Volumio

Supported Music SourcesApple Airplay
Supported Platforms
  • Cubox
  • Beaglebone Black
  • Raspberry Pi
  • Udoo
LicensingOpen Source

Comments:

Volumio began as the RaspyFi project in December 2012. It then expanded to support many embedded platforms including the Udoo and BeagleBoard. IMO, Volumio looks more polished than the Pi MusicBox.

RPi Store

There is an official RPi store that offers applications and games (some cost, some are free) for the RPi.

Video Output

The RPi has two native video outputs, HDMI, and RCA/composite. **You cannot use both at the same time. **Converting any of these two to VGA is rather expensive.

DSI

The RaspberryPi also has a DSI output connector (the 15-pin connector that is not on the edge of the board), which is a high-speed, differential, serial point-to-point bus designed by the mobile industry to connect a host controller up to a graphics display device (normally an LCD screen). However, it is very difficult to use these on the RaspberryPi, as the pins are controller by the GPU, which is controlled by closed software written by Broadcom. I don’t know of anyone who has managed to connect anything to this 15-pin connector!

Controlling The GPIO

Understanding Outputs explains the GPIO pins on the RaspberryPi really well.

Check out the Quick2wire Python API repo, this allows to to control the RPi’s GPIO from a python script.

There is also the pi-gpio module for controlling GPIO with nodejs. Good for when you are wanting to control the RPi GPIO from across a network (remotely).

PWM

The RPi has one hardware PWM output (yes, only one, this isn’t a microcontroller). Unfortunately this is shared with the audio system, so you can’t use the PWM and listen to audio through the 3.5mm jack at the same time. Other GPIO can be bit-bashed with software PWM.

How To Change Keyboard Layout

The default keyboard layout is British, so you might find yourself getting a pound sign when you really want a dollar sign (and other quirky differences). To change the keyboard mapping, open the file etc/default/keyboard with a text editor like nano.

Updating

Assuming you have an internet connection, run:

Terminal window
sudo apt-get update
sudo apt-get upgrade

SSH

You can log into a RaspberryPi from another computer using SSH. Type the following command into a terminal:

Terminal window
ssh 192.168.1.100 -l pi

where you replace 192.168.1.100 with the IP address of the RaspberryPi (this is the RaspberryPi’s local address, which is only accessible via another computer on the intranet). The flag -l pi tells SSH to login with the username pi, not the default username of the calling terminal.

Useful Packages To Install

Terminal window
# GIT repo engine
sudo apt-get install git
## Advanced make-like compiler
sudo apt-get install scons
## GCC/G++ compilers and additional tools
sudo apt-get install build-essential
## C++ wrapper for the perl-compatible regex engine (PCRE)
sudo apt-get install libpcre++-dev
## API for XUL embedders and Gecko applications (the main engine for Mozilla
# programs such as Firefox)
sudo apt-get install xulrunner-dev
## The boost library
sudo apt-get install libboost-dev libboost-program-options-dev libboost-thread-dev libboost-filesystem-dev

Node.js

Node.js will work with the hard-float version of Raspian Wheezy. It takes aggggeeeesss to compile from the source code, but luckily, there is a pre-compiled binary available for the ARM processor which will work on the RaspberryPi.

You can install Node.js on Wheezy by just typing sudo apt-get install nodejs. See below for the harder way.

Terminal window
sudo mkdir /opt/node
wget http://nodejs.org/dist/v0.10.2/node-v0.10.2-linux-arm-pi.tar.gz
tar xvzf node-v0.10.2-linux-arm-pi.tar.gz
sudo cp -r node-v0.10.2-linux-arm-pi/* /opt/node

Then Node.js has to be added to your PATH variable, to do this, type

Terminal window
nano /etc/profile

And add the following lines before the export variable

Terminal window
...
NODE_JS_HOME="/opt/node"
PATH="$PATH:$NODE_JS_HOME/bin"
export PATH
...

This great tutorial on the Kitware blog easily explains how to remotely access the RPi using nodejs. Once you have installed Node.js, it also pays to install npm (node package manager), by typing:

Terminal window
sudo apt-get install npm

Playing An MP3 Through The Audio Jack

You can use the omxplayer program to play mp3’s from the RaspberryPi:

Terminal window
omxplayer -o local path_to_sound.mp3

If you want to loop a single sound file, you can add the option --loop:

Terminal window
omxplayer -o local --loop path_to_sound.mp3

Uses

Education

The RPi is great for educating people about computers, as it is cheap and readily available.

Home Automation

QW Home Automation

Website: http://qwhomeautomation.com/ Works with Insteon products.