Borg16 is a circuit designed to drive 16×16 LEDs. It was designed by Suschman of Das Labor and consists mainly of 256 LEDs, an Atmel ATmega32, UDN2981AN drivers, 74HCT164 shift registers and a few additional components.

They provide their own software, but I wanted to learn more about programming microcontrollers. I wrote a program to display pictures streamed over a RS-232 connection to the device with 16 brightness levels. It could be used to watch videos (like mplayer with aalib output), visualize music or just play simple games actually running on the computer (which has more resources than the Atmel µC).

At a serial speed of 57600 Baud, I was able to display about 22 frames per second, but it also depends on the host’s serial driver.

The software was written to be compiled using GCC/avr-libc and to be uploaded using foodloader, but adapting it to other compilers should be pretty straightforward. You will likely have to adapt it to your use anyway.