How To Setup The Pi-Lite LED Matrix Board


Pi-Lite LED Matrix BoardBack in 2013 I purchased a Pi-Lite at the Cambridge Raspberry Pi Jam.This is a 14×9 matrix of red LEDs mounted on a PCB that can be attached to the Pi and controlled via the GPIO header. The 126 LEDs can be turned on individually or used to display scrolling text.

Although there was plenty of help material available from the site (no longer available) I found it a little bit confusing. Information was spread over a mixture of pages and it was easy to get lost in the more advanced detail while looking for a gentle introduction.

So here is my simplified version. My objective was to configure the SD card, connect my Pi-Lite and get some of the example Python scripts working. Nothing fancy just a quick setup before deciding how to move onto something more complicated.

UPDATE : This article was updated to work with the latest Raspbian release. The site no longer exists but I still got my device to work and the Github libraries are still available.

Pi-Lite LED Matrix Board

Step 1 – Prepare SD Card and Configure Operating System

To start the setup I always use the latest version of the Raspbian SD card image which is available from the download page.

Boot the Pi using this fresh SD card without the Pi-Lite attached

Step 2  – Disable Serial Port Login

By default the Raspbian operating system allows input and output on the serial port (header pins 8 & 10). This would interfere with the Pi-Lite which uses the serial port to receive its data so we need to disable this functionality.

This can be done using the “raspi-config” utility either from the Pixel desktop or the command line.

sudo raspi-config

Then :

  • Select “Advanced Options”
  • Select “Serial”
  • Select “No” to disable the login shell over serial
  • Select “OK” when it says the serial interface has been disabled

When you exit raspi-config decline the offer to reboot.

Step 3 – Enable UART

Edit the config.txt file using :

sudo nano /boot/config.txt

At the bottom of this file there is a line containing “enable_uart=0”. Change this to “enable_uart=1”.

Then press “CTRL-X”, then “Y” and finally “Enter” or “Return” to save. You should be returned to the command line. Now we’ve made the configuration changes it’s time to shut-down..

Step 4 – Shutdown and attach hardware

Shutdown the Pi using :

sudo halt

Wait for the Pi to shut-down completely. Disconnect the power and attach the Pi-Lite to the GPIO header making sure the connector is correctly aligned.

Connect the power and allow the Pi to boot.

Step 5 – Install Minicom and Test

To test the Pi-Lite we can install a small utility called Minicom which will allow us to send data across the serial port to the Pi-Lite. This data should be displayed on the Pi-Lite.

To install Minicom use the following command :

sudo apt-get install minicom

Press “Y” when asked if you want to continue.

Once installed you can use Minicom to send data to the Pi-Lite using the following command :

minicom -b 9600 -o -D /dev/serial0

Pressing keys on your keyboard should result in them appearing on the Pi-Lite!

To exit Minicom press “CTRL-A”, then “X” and finally press “Return” to select “Yes” from the prompt.

Step 6 – Download Example Python Scripts

Since Ciseco are no longer in business I added the original Python example scripts to my BitBucket repository. This was so I could update the serial port reference to “/dev/serial0”. This enables them to work with all Raspberry Pi devices including the Pi 3.

First we need to install the Python serial package :

sudo apt-get install python-serial

Install “git” if it isn’t already installed using :

sudo apt-get install git

Now we can download the examples from BitBucket :

cd ~
git clone

This will download the files into a folder called “rpispy-pi-lite”.

Step 7 – Download Official Files (optional)

The original official files are held in a Git repository on I’ve left this section here in case you want to look at them but you don’t need them.

Install “git” if it isn’t already installed using :

sudo apt-get install git

Now create a directory which Git can use to store data we pull from :

cd ~
mkdir git
cd git

Now we can pull the examples from Github into our new directory :

git clone git://

Next we need to install the Python serial package :

sudo apt-get install python-serial

Typing the following command will browse to the Python examples folder :

cd PiLite/Python_Examples/

Typing “ls” will list the available files in this directory.

Step 8 – Run Basic Python Example Scripts

To find the scripts navigate to /home/pi/rpispy-pi-lite/Ciseco_Examples/

cd ~
cd rpispy-pi-lite
cd Ciseco_Examples

The following Python examples should now run without any other additional installations or tweaks :    - displays a Pacman image complete with munching mouth - scrolls a bar graph - grows a set of bars then reduces the size of them  - an example VU meter

Pi-Lite LED Matrix Board

Run them using the following command as an example :


This script displays an animated Pacman symbol.

Some scripts will end after a few seconds but you may need to use “CTRL-C” to exit the examples that run in a continuous loop.

Step 9 – More Python Examples

Some of the other scripts require a few more Python libraries to be installed.

sudo apt-get install python-setuptools
sudo easy_install pip
sudo apt-get install python-requests
sudo pip install arrow

When that has finished installing you should be able to run the “” example. This should give you the time in various capital cities including London, Cairo and Paris.

For some reason I was getting an “Error:’dict’ object is not callable” error when trying to run “” and “”. To solve this I ran :

sudo pip install requests --upgrade

which seemed to solve the problem by re-installing the requests package.

Here are some photos.

It isn’t very easy taking photos of bright LEDs!

Additional Information

The official website no longer exists but here is the last available user guide :

Pi-Lite User Guide (April 2014)

My Pi-Lite BitBucket Repository is here :

The Ciseco Github Repository is here :



  1. Although, what I would have hoped OpenMicros would have produced is a very very simple Python example showing you how to write scrolling text to the Pi-Lite. So the Python Pi-Lite equivalent of “Hello World”.

  2. Hi!

    Thanks for your site and your guides, you rock!

    I am new to Linux and Python so I would be very grateful if you could tell me how to change the displayed times in the world clock example.



  3. Thanks for making the setup so pain free. All working properly in 35 minutes – great.
    I’ll try the next post tomorrow.

  4. When I try running the example Python scripts I get erratic results. The pacman example displays lots of BBBBBBBsss !!!!(((( ????

    Anyone else got this. I am running the lastest version of Raspian, updated, upgraded and distro-upgrade.


    I tried running the ‘sudo pip install requests –upgrade’ command, it didn’t make any difference! 🙁

  5. when i tried the first steps then when i tried too reboot it all went wrong and i cant reboot. got the pi lite for my birthday yesterday and i have been wanting to use it for ages 🙁

    • Unplug the pi-lite. Rewrite your SD card with latest Raspbian image and get the Pi to boot normally. Then try the tutorial again and see how you get on.

  6. Nice add-on for my PI, use it to display the statistics of my Solar Panel system.
    is there a maximum characters because, it stops displaying in the middle of the last s.write.
    i read a bunch of text files and display the text inside on the pi-lite. the last one does not complete. just stops, if i shorten the text in the files before, i shows some more characters. Seems like i bump into a maximum character value

    script look like:

    s.write( file1)
    s.write(” descr2:\r”)
    s.write( file2)
    s.write(” descrip3:\r”)
    s.write( file3)
    s.write(” descrip4:\r”)
    s.write( file4)
    s.write(” descrip5:\r”)
    s.write( file5)

  7. maybe someone can test this. when is send this string, it stops after about 65 charaters.
    normal behavior ?


  8. Hi

    I have found these instructions no longer work with Jessie, something to do with the serial tree being changed??? (I am not a programmer). I have a version of NOOBS 1.4.1 so I tried that instead and it worked fine. Maplins are still selling these but all the official links are down as the manufacture is no longer in business.

  9. Thanks for this guide. Hugely useful when my son and I tried out his Pi-Lite yesterday on his new Raspberry Pi 3.

    We discovered the Pi 3 addresses the GPIO header differently to previous versions.
    You must use /dev/ttyS0 rather than /dev/ttyAMA0 as described above.

    All of the sample scripts needed editing in a python editor to ‘fix’ the above issue – but after that, they all worked perfectly for us.

    Also the our GPIO header has 40 pins, rather than 26. But we found that the first 26 pins of the set are exactly equivalent to the older format.

    • Well spotted! It seems in the newer Raspbian you can use “/dev/serial0” and it works for all Pi variants. I’m going to add the Ciseco examples to my BitBucket repository and update the serial port reference. Thanks for the feedback. Hopefully we can keep those Pi-Lites working!

    • I just create a symlink if I need to use the example code: sudo ln -s /dev/ttyAMA0 /dev/serial0
      This negates the need to edit any of the code examples as serial0 now points to ttyAMA0. The only caveat is that /dev/ is a virtual directory, so anything you put there is lost as soon as you power down the Pi.

  10. Thanks for this, it’s been invaluable! I was bought a Pi-Lite and had no idea how to get it working with Ciseco gone. So grateful. You may have covered this but are there any tutorials on programming my own text to scroll along the matrix – a sentence, for example?

  11. Hi,
    I know these boards are a little long in the tooth but picked up a load at a CPC clearance sale so finding these guides were a godsend. I did, however, find that I was getting unpredictable results. It looked a lot like there was something wrong with the baud rate getting odd characters etc. After much head-scratching and googling I found this link which solved my problem.–4-and-zero-w-serial-port-usage
    I thought I would post it here in case someone has a similar issue.
    I’m running on some old PI3 Model A’s

Leave A Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.