From RevSpace
Revision as of 18:34, 21 July 2014 by Bertrik Sikken (Talk | contribs) (Add audio visualisation text)

Jump to: navigation, search
Project LedBanner
Status Completed
Contact User:Juerd
Last Update 2014-07-21


The LED banner is an active RGB LED display, consisting of 8 rows of 80 pixels each fixed on a flexible banner. A Raspberry Pi drives it.

The following can be displayed:

  • scrolling fixed images, horizontal or vertical
  • scrolling text in various colours
  • animated GIFs
  • real-time generated images, e.g. game-of-life
  • etc.

The use of a flexible banner makes it easy to transport and easy to put up.

Youtube video


The hardware consists of the following parts:

Raspberry Pi

A Raspberry Pi is used because it can be controlled over the network, can run perl scripts and has a fast SPI port to drive the LEDs.

Power supply

The power supply has been chosen to supply sufficient current for the LEDs. When the space is closed, the Raspberry Pi stays powered from the "standby 5V" output, while the LEDs are powered down.

LED strips

The display consists of 8 pieces of LED strip of 80 LEDs each. They are arranged in a left-to-right zig-zag manner for ease of connecting them in series.

The LED strip consists of pairs of RGB LEDs, where each pair is controlled by an LPD8806. See [1] for more information on driving these chips.

Flexible banner

The banner itself is custom made, with metal eyelets in each corner for fixation.


The software runs on the Pi and is mostly written in Perl.

Display server

To drive the LEDs, a display server written in C does the low-level driving of the LEDs over the SPI port. It also takes care of the white balance and gamma correction.

There is a simple SDL simulator of the display server that can be run stand-alone on a PC to preview led banner animations, effects, etc. The code can be found in the 'sim' subdirectory of the ledbanner repo.

Audio visualisation (in progress)

A number of audio visualisation applications can be found on github in the bannervis project.

The way this works is that a squeezelite audio player runs on the raspi, using option '-v' to make the currently playing audio available in a mmap-ed file in /dev/shm. On the audio server, the audio sent to the ledbanner can be synchronised to the klusbunker. The audio visualisation tools read this file and produce image frame corresponding to the audio.