~ / blog / Raspberry Pi Powered LED Lamp
With a Raspberry Pi, you can control a RGB addressable LED strip. The
instructions are very simple [1] and the results are
pretty cool. I decided to make a desk lamp with a web
interfaceaside: . This post
will go through the steps to build your own Pi powered desk lamp.
# Requirements
- Raspberry Pi
- Memory card (greater than 4 GB recommended)
- Power Adapter
- LED Strip (LPD8806)
- Wires
- Lamp shade
# Instructions
Any model of the Raspberry Pi should work for this project. First we need to set up the Raspberry Pi.
## Hardware
To use SPI on the Raspberry Pi, you need to connect 4 pins. Adafruit has an excellent image in their tutorial that shows how you can do this, which I’ve also linked below.

I’ve used the same power source to the LED strip to power the Raspberry Pi as well.
I found the lamp shades on Amazon. I purchased them in white, since the LEDs are RGB.
I purchased the LED strip from Adafruit.
## Software
Download the latest Raspbian from the official source. I used the image
2016-03-18-raspbian-jessie.img
. Flash the operating system
onto a memory card.
When using dd
on OSX, I’ve found that rdisk
is much faster than
disk
Both rdisk
and disk
will work
fine, but if you are using disk
be prepared to wait longer
- it took about an hour in my case..
(Optional) Expand the file system to use all the available space on the memory card.
To control this particular LED strip, we are going to use the SPI bus on the Raspberry Pi. We need to set up the Pi to use SPI.
Next, we need to install some packages to use the SPI bus. First, let’s update the Raspberry Pi.
Then we need to install python-dev
, pyspidev
and BiblioPixel. These are all required to control the
LED strip.
Instead of installing spidev and BiblioPixel, you can also clone the
repositories and add them to your PYTHONPATH
. I found that
sudo pip install <package-name>
is easier, however I
had to browse through the source code of BiblioPixel
and
found having a local copy accessible was helpful.
Finally, we need Flask
to set up a server on the
Raspberry Pi.
I’ve used sudo
for all the pip
installations. It is definitely required for spidev
, but
may not be for the others. You will need to use sudo
to run
the application, since root access is required to control GPIO pins on
the Raspberry Pi.
### BiblioPixel
The tutorial on Adafruit’s page links to a library for their LED strip, which the author has deprecated in favour of the excellent BiblioPixel [2]. I recommend using BiblioPixel as well — if you want to use a different LED strip in the future this will make it very easy to use the same code base.
At this point, you should be able to run a few examples, and see animations on your LED strip.
### Flask
I’ve set up a simple Flask server and am using a Javascript library called colorwheel to send a user selected color to the Raspberry Pi. The code for the Flask server is available on GitHub under MIT License.
If you want more information, feel free to ask me any questions in the comments section below!