Linux Embedded Intro: Raspberry PI

Nelson Neves

nelson.s.neves no gmail ponto com

11-Aug-2012 @CoworkinFAO

Raspberry Pi - Intro. into Linux embedded systems:

What is a Raspberry Pi?

Broadcom BCM2835 system on a chip (SoC)

ARM1176JZF-S 700 MHz processor (ARM 6 with support to hardware floating point calculation)

Videocore GPU with HDMI video output (support to FULL HD 1080p - MPEG-4 video) - 3D OpenGL ES 2.0


2 USB Host

Analog video output

Analog audio output

Digital audio output via HDMI

GPIO (Serial Port, general I/O, I2C, SPI)

Additional expansion ports for future connections (HD Camera, etc)

Linux OS

Boot from SD card (optinal from USB pendrive/harddrive)

What can it be used for?

NAS file server (Samba)

Bittorrent client (Transmission)

Light WebServer (Lighttp/Nginx + php5)

Node.js geek projects

Light Database server (mysql, PostgreSQL, sqlite)

SSH server (excellent for proxy)

OpenVPN server

4 Kids and wife to play arcade games (advance MAME, Quake3) or surf the web

Thin client to a windows machine (via FreeRDP)

MediaCenter with raspbmc (XBMC) or OpenElec

To connect to an Arduino (or other microcontroller) to fetch sensor data, or to send commands to the micro, etc …

WebCam interface to stream video over ethernet/wifi/3G (cheap ip camera)

Remote data acquisition system (weather station), powered by a solar panel + battery, sending data from a 3G usb modem or Wifi (if in reach of the network signal)

Car WarDriving (map GPS coords + wifi signals) - google already uses this ‘technique’!

Robots (real time OS/kernel)

CNCs/Repraps 3d printer (real time OS/kernel)

RC / Quadcopter controller (real time OS/kernel)

… I’ll stop here …

Initial SD Card preparation

Insert sd card on a Linux Pc

$ sudo gparted

select card and unmount partitions + Exit Gparted

download image from rPi site

$ sudo dd bs=1M if=rpi.img of=/dev/sdb

Booting the recommended Linux image (Raspbian "Wheezy" - Armhf)

The raspi-config configuration utility

Explore the LXDE Graphical Environment

Operating System Updates

Install rpi-update for firmware/kernel updates (future stable release of rPi Debian will not require this)

Updates commands:

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo rpi-config

Explore package installer (add some Linux Applications)

// install git-core and builde-essential packages

$ sudo apt-get install git-core build-essential

// search for a package

$ sudo apt-cache search libssl | more

Demo of games written in Python

$ cd /home/pi/python_games

Demo of Scratch (kid's graphical programming environment)

Demo of AdvMame

Demo of Quake3

Demo of 1080p HD video playback

Demo rPI2: XMBC media center for Raspberry Pi

Raspberry Pi resources:

Debian resources:

Development resources:

Electronic resources:

Cool Projects:

tons of interesting things, just look into my delicious:

GeekSession workbench projects