In an earlier post I talked about what I wanted to use as a media streamer. The Raspberry Pi came to the forefront. As the title states the RPi (Raspberry Pi for short) with a change of memory card can be all kinds of computing devices. XMBC was originally developed for the original Microsoft Xbox. Later it was developed for other platforms Including Linux. As the RPi came along as an SBC (Single Board Computer), it was ripe for being added as an XMBC derivative. Installation is quick and easy.

Not only does the RPi have HDMI (the new Video interface), it also has composite out for being compatible with legacy systems. In our case we are able to interface the RPi to a DVD player. Since the Rpi a little bit larger than credit card size, that makes it perfectly able to become a portable system with the DVD player.   Just for being a media player makes it worth its thirty five dollars (plus shipping).

The RPI has other uses. The first as a desktop computer.  You can do light business applications and even a few games. Featuring the LXDE interface, traditional MSWindows users should feel right at home using the gui  environment. You probably want something better than a DVD player as a monitor, but it is definitely usable. The Debian Linux operating system has thousands of programs (depending on space) that you can easily download and install for free! So there is no shortage of software to start with like most new systems. You can even develop your own software.

The last feature I would like to discuss is that you can use the RPi as a variety of servers. Like most servers, the RPi will run headless (without a monitor). That means you can access the unit remotely from the computer you normally use, Saves electricity costs not having to use a monitor on the unit. Some people have said the Rpi only uses a few watts anyway!! One of the most popular uses is a web server. Setting up the web server is a easy as choosing an option from a menu instead of typing in lots of cryptic commands. Another words, you can have your own mini-web on your own network. What kinds of things can you do?  See:

The Rpi could also be used as a low cost hub of a home automation system. There are so many possibilities, I can not even touch all or even a portion of them in this short article. What else can you do with the other media streamers on the market?

Also see:

We have taught the Raspberry Pi to speak. Awesome for some Halloween animatronics. We also have since added web server software for a sort of a family blog. A replacement for the refrigerator magnets and all the notes. See:



Raspbmc. More information coming.
The Raspberry Pi is a wonderful little single board computer that is based on the arm architecture. You can use it for everything from a media streamer, as a server, and all kinds of computer applications. It has one shortcoming at least for now that is a small challenge. It does not use a standard power supply input. You can dissect a walwart and make a special adapter. What I would like to do is to make a generic interface that can be reused if the walwart ever goes bad.Notice: This instructable requires knowledge of electricity and the ability to solder. We are not responsible  for any and or all issues. Do this at your own risk to any life and or equipment. Get a professional to help even if you are the least bit unsure.

Step 1 What is needed:

Power adapter via a barrel connector that outputs 5 volts DC with enough current as your Raspberry Pi requires.. (I used the one from my Nslu2 ( 2 amp output) for testing. (Do not use any other boltage (i.e. 12 volts) or you will damage your equipment.
Micro (not mini) usb cable.
Female power plug that will hold the male end of the power supply
We will use the packaging for the female power plug as a temporary case.Tools:
Wire strippers/cutters
Soldering iron

Step 2 Dissecting.

Screenshot from 2012-10-20 15:11:23.png
Screenshot from 2012-10-20 15:14:24.pngScreenshot from 2012-10-20 15:19:01.png
You will want to separate the usb cable while not connected to anything. Do not discard the non-microusb end as you may need to use it to check which wires are which.Once you have cut the cable, strip back the main outer covering.Strip the red and the black wire so they can be soldered to the barrel connector.If you do not have the standard color coding, you will have to test the cable manually. Be carefully not to touch any bare wires while doing this, as you could be electrocuted. If you are unsure, get a professional to help.

Step 3 Solder it.

Screenshot from 2012-10-20 15:31:30.png
Screenshot from 2012-10-20 15:35:15.png
Assuming you know how to solder… If not get a professional to help.Solder the +5 wire (maybe red) to the tab that goes to the inner tube.Solder the ground wire (maybe black) to the tab for the outer tube.Let cool.

Step 4 Wrap it up.

You can use electrical tape to wrap it up, Using some kind of small container is best. I just used the plastic cover from the package it came in for something quick, I will probably make something nicer later.

Step 5 Bonus: Gpio adapter.

You can use an old “AT” RS232 to motherboard adapter cable for the Raspberry pi. You may want to cut off the RS232 db25 end so you can tine the wire ends to use in some other adapter board. Actually I needed the DB25 end for a PC project, So, I killed two birds with one stone. One less thing in the storage box.Note: Looks better than using a disk drive cable.




Raspbmc. More information coming.
Raspberry Pi is a sort of jack of all trades when it comes to being a single board computer based on the Arm processor. It can be a desktop, media player/streamer, web server, forensics machine, and do most of what all linux based machines can is not a good idea to run the raspberry pi off another computers usb port.
If you need a power adapter, consider: Arm based install: monitor:

Note: if you ever want to get back to the first boot menu

$ sudo raspi-config

Step 1 Network setup.

Screenshot from 2012-10-22 02:14:35.png
You will want to go to the services tab on your router to make the IPaddress of the Raspberry Pi semi-permanent. Get the mac address of your Raspberry Pi and then decide what address you want to use. We used for whatever reason.later when you want to SSH into the unit it will make it easier. One thing to note is that you must use a username on the Raspberry Pi to log into it.$ ssh pi@ (use whatever name you set up for the raspberry pi in the router):

$ ssh pi@raspberrypi

Also see:

Note: By using ssh means you do not have to leave a keyboard attached tot he Raspberry Pi. Saves energy and less cables to deal with.

Step 2 Debian install hints.

Screenshot from 2012-10-21 11:40:32.png
Screenshot from 2012-10-21 11:38:43.pngScreenshot from 2012-10-21 12:54:46.png
If you are installing the Debian install for Raspberry Pi, there are a few hints and tips that can make things easier,With the opening menu that comes up when you first run the image, be sure to enable ssh, set your time zone and CHANGE YOUR PASSWORD.You want to get the system updated:$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade

It should take a while, but that is ok.

What kind of disk space do you have

$ df -h

What kind of memory do you have?

$ free

You may want to add some software package sets.

$ sudo apt-get update
$ sudo apt-get tasksel

With tasksel, you have to be careful, Any item unchecked will remove that item if it is already installed. (i.e gui environment. For a headless server that is no big deal.

To install the web server just choose that option and ssh. The apache and sqllite  will be installed. The sql is for postgresql for most debian versions and you may not need that for most things.

$ sudo tasksel

You will want to take advantage  of the full space of your memory card. Generally it only used 2 gigabytes leaving the rest free, if your card holds more than 2 gigabytes. Programs like Gparted and stretch out the free space to take full advantage of the card. You will have to run gparted pon another machine. Do not forget to shut down the raspberry pi
before removing the memory card(s).

Normally the Debian linux install starts up with the text or command line environment. If you want to start up the gui use:

$ startx

You can make the gui the default start up mode but I recommend against it.

You will also want to install screen so you can detach remote sessions.

$ sudo apt-get install screen

For details see:

$ screen

Other linux instructables that can be of assistance:

Step 3 Memory useage.

(Try this at your own risk and it is subject to change).Changing RaspberryPi RAM CPU:GPU RatioThe Raspberry Pi comes with 256MB of RAM, included in the Broadcom BCM2835 System on chip, which also contains the CPU, GPU and DSP in the same package.That 256MB of RAM is split between the CPU and GPU at boot time of the Pi, and by default is a 50:50 split, 128MB each. This works well for video decoding and 3D graphics, but if you know you won’t be using such graphically intensive applications, you can change this split to give the CPU a bit more.

To do so, you just need to copy the pre-made .elf files to the start.elf file in /boot, and reboot:

For 192MB for the CPU and 64MB for the GPU:

sudo cp /boot/arm192_start.elf /boot/start.elf

For 224MB for the CPU and 32MB for the GPU:

sudo cp /boot/arm224_start.elf /boot/start.elf

For the default equal split of 128MB for both CPU & GPU:

sudo cp /boot/arm128_start.elf /boot/start.elf

Step 4 Minimal web server hints:

Screenshot from 2012-10-22 02:57:19.png
Screenshot from 2012-10-22 03:01:37.pngScreenshot from 2012-10-22 03:05:35.pngScreenshot from 2012-10-22 08:30:38.png
The most simplest web server you can set up on the Raspberry Pi is to use python. Go to a directory that you want to sever out and use:$ python -m SimpleHTTPServerGo to your web browser and point it to the Raspberry Pi using port 8000Alternatively, you could add a simple web page called index.html:

Hello,  World!

Note This server is not secure so use carefully!

If you wanted something simple, but light you could also consider Nweb, Goto for the details.

You can also install a light apache web server and sqilite with

$ sudo tasksel install web-server

For a blog install see:

Do not forget to check out:

Step 5 Write your own programs!

Screenshot from 2012-10-22 09:16:01.png
Screenshot from 2012-10-22 09:22:28.pngScreenshot from 2012-10-22 09:25:21.png
Two popular languages are C (compiled) and Python (interpreted). You can use Nano to edit the source files. Here are two simple hello world examples. You can use nano to edit your files. I prefer vim, but it has to be installed$ sudo apt-get update
$ sudo apt-get install vimTo edit a file:$ nano filename.ext


<pre>#include <stdio.h>
int main ()
  printf ("Hello World!\n");

$ gcc helloworld.c -o hw


 print "Hello, World!";

$ python

You may want to keep all your executalbes in one place and not have to use the ./ prefix.
$ mkdir ~/bin
$ PATH=$PATH:~/bin

Move your programs to that directory.

$sudo mv hw ~/bin/.

Step 6 Teaching your Raspberry Pi to talk.

Screenshot from 2012-10-24 19:58:47.png
First you need to add some drivers:$ sudo apt-get update
$ sudo apt-get install alsa-utils
$ sudo modprobe snd_bcm2835
$ sudo aplay /usr/share/sounds/alsa/Front_Center.wav
You need to add some software:$ sudo apt-get install festival espeak

Plug in the speakers.

You need to check the sound out put level with alsa mixer. Mine was set way low. Use the up arrow to increase the volume.

$ alsamixer


$ echo now is the time for all good men | festival –tts

Read a file out loud.

$ festival -tts index.html

More Information at:

Step 7 LTSP – thin client.

You can use your Raspberry pi as a thin client for the ltsp server (see: it does not support etherwake though yet. I used an older version for testing and it connected to an Ubuntu 10.04 ltsp server.Go to and download the image zip$ wget
–2012-10-28 14:37:46–
Resolving (…
Connecting to (||:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 24450329 (23M) [application/zip]
Saving to: `’100%[======================================>] 24,450,329   622K/s   in 40s

2012-10-28 14:38:32 (592 KB/s) – `’ saved [24450329/24450329]

Unzip it.

$ unzip
inflating: berryterminal-20120602.img
extracting: berryterminal-20120602.img.md5
inflating: berryterminal-20120602.img.sha1

Copy it to your memory card (sudo dd if=berryterminal-20120602.img of=/dev/sd?)

In my case

$ sudo dd if=berryterminal-20120602.img of=/dev/sdb
Safely remove the card from your pc and insert it into the Raspberry Pi

Make sure your ltsp server is up and running. Connect the raspberry pi to the ltsp network and boot.

Bingo!! you have a thing client!

Step 8 Media player.


Installation Script on a took a while, but it completed without a hitch.  Everything is menu driven and for the most part pretty straight forward. Using an old B&W tv for testing purposes. If you use an hdni monitor, you have have to change some settings to work correctly. There is a menu to help with those settings. Weather detected the area of the isp and grabbed the weather info easily.   Streamed music from the web from a nearby radio station without a hitch. Even supports local media streaming from upnp and other protocols. Streamed video from the usb stick. When the Mythtv server is back up, I will give you an update.Somehow the memory card becamed foobarred, so I plan to reinstall raspbmc.See:

Step 9 All for now.


Gave you a bit much to chew so More instructables coming!!To power down, there are several ways, but I like:$ sudo poweroffCheck out:

Step 10 Gpio connector cable:

You can use an old “AT” RS232 to motherboard adapter cable for the Raspberry pi. You may want to cut off the RS232 db25 end so you can tine the wire ends to use in some other adapter board. Actually I needed the DB25 end for a PC project, So, I killed two birds with one stone. One less thing in the storage box.Note: Looks better than using a disk drive cable.———————————————————————

Screenshot from 2012-10-25 16:41:44.png
Hopefully you already have your basic Raspberry Pi already set up with the Debian Linux image. There are already many articles on how to do that. Here we will set up a simple blog that does not require MySQL You do need the Apache2 web server and PHP software.  The blog we will install is known as Flatpress it is great for the family intranet network, though, I would not allow to be on the web. Flatpress is good for starting web masters.Note: you need to have at least some knowledge of the linux command line to complete this instructable. Using putty or ssh from a gui environment to log into the RPi is extremely helpful. Makes it easy to just copy and paste commands.

Step 1 Name change to protect the innocent.

Screenshot from 2012-10-25 16:59:16.png
You will want to change the name of your Raspberry Pi or you might get another server from the web. Also I am sure you have already set up your router to set the raspberry pi address. See your router manual on how to do that.$ sudo hostname oeraspberrypiUse ifconfig to get your ipaddress of the RPi

$ ifconfig

eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
inet addr:  Bcast:  Mask:  < < < < <
RX packets:60188 errors:0 dropped:0 overruns:0 frame:0
TX packets:32615 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:80088549 (76.3 MiB)  TX bytes:3105057 (2.9 MiB)

lo        Link encap:Local Loopback
inet addr:  Mask:
RX packets:32 errors:0 dropped:0 overruns:0 frame:0
TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2540 (2.4 KiB)  TX bytes:2540 (2.4 KiB)

Then you will need to edit your host file to reflect that address.

Step 2 Web server software setup.

Screenshot from 2012-10-22 08:30:38.png
Screenshot from 2012-10-25 16:34:32.png
There are two basic programs we want to install. Apache2 the web server and PHP a programming language for use with the server.$ sudo apt-get install apache2 php5 libapache2-mod-php5That will take a little while to install. Be patient.

Then you need to do a fix for the server.

$ sudo nano /etc/apache2/conf.d/name

For example set add ServerName localhost or any other name:

ServerName localhost

or you could use

Servername yourservername

Save the file and restart Apache 2

$ sudo service apache2 restart

Test the server:

Point a browser to the RPi You should get the setup page.

Now we need to test the PHP install..

$ cd /var/www

You should already see index.html with the code that shows you the home page.

Now we need to create a new page

$ sudo nano index.php

Insert the following.
<title> PHP Test Script </title>
phpinfo( );

Save and exit. Now point your browser to yourhostname/index.php

You should get the PHP status page.

Now you should be ready to roll.

Step 3 Get the software.

Screenshot from 2012-10-25 17:18:51.png
Screenshot from 2012-10-25 17:25:16.png
You need to go to: and download the latest version to your pc
The you need to get the software to your Rpi. For windows you can use WinSCP, not a windows user so you will have to look at it’s instructions.On linux Send the file to your pi home directory$ cd downloads
$ scp flatpress-1.0-solenne.tar.bz2 oerapberrypi:~/.

Log into the Raspberry pi Go to your home directory to make sure the file is there: (ssh@rpiservername)

$ ssh pi@oeraspeberrypi
$ ls
Desktop  flatpress-1.0-solenne.tar.bz2  hw  hw.c  python_games

Step 4 Software install.

Screenshot from 2012-10-25 17:34:36.png
While at your home prompt, you need tp expand the archive of Flatpress since it comes in one big file and needs to be expanded into it’s full web directory. I like to do every thing in the home directory first so I do not mess up the base web directory.$ tar xvjf flatpress-1.0-solenne.tar.bz2if you do ls you should see the Flatpress directory now. On linux Apache to has a special place where all the web pages are stored. If we were only going to run one web program, you could store the files in /var/www. I prefer to to use the whole directory on it’s own. So lets move it.

$ sudo mv flatpress /var/www

You should see it now with the two other files we created in another instructable.

To the final step.

$ ls
flatpress  index.html  index.php

if you cd flatpress, you will see lots of files. but you really do not need to do that.

Step 5 Installing Flatpress.

Screenshot from 2012-10-25 16:37:01.png
Screenshot from 2012-10-25 16:39:19.pngScreenshot from 2012-10-25 16:41:44.png
Before we look at the blog, you will need to give right for use in the flatpress directory for Apache2$ cd /var/www
$ sudo chown -R www-data:www-data flatpress
$ sudo chmod -R 755 flatpressNow you point your browser to servername/flatpress and just follow the instructions.

Step 6 Access for the world.

Screenshot from 2012-10-27 13:04:21.png
Screenshot from 2012-10-27 12:49:08.pngScreenshot from 2012-10-27 12:56:41.png
If you really want to open your local website to the world, I recommend using two routers. Reason being that if your web server is breached, your main network is not as much risk as it would be directly connected to the main router.  To allow your web site to be open to the net you will need to either open a port (port-forwarding) or set up a DMZ on your router where all the ports to the Raspberry Pi are exposed. (not recommended).  So that people can easily find your site, you will need to set up an account with one of the Dynamic Dns hosts.  (DDNS). Most newer routers support this. There are two advantages, you do not have to run an DDNS IP client on the RPi and you can hook up other devices and still be able to use the same ipaddress via ddns.Port forwarding see: on DD-WRT:


Putting in your hosts file could speed up web browsing.


Steak dinner:

Good day.