jiristepanovsky.cz

Return to Index


USB LED Cube - 2014

125 red LEDs arranged in a cube, thats my 5x5x5 LED Cube. It connects to a computer using USB and has 2kB of internal EEPROM memory, where it stores visual sequences. If powered alone, it plays the sequence stored in the internal memory. If connected to a pc, you can play a sequence directly (through a USB) and optionally store it into the cube's memory. Each 18-byte frame in the sequence consists of 125 bits of data information (125 led states) and a 16 bits of delay. The 2kB internal memory can therefore hold a maximum of 113 frames.

USB LED Cube

The main part is an Atmega162 microcontroller and 2kB I2C EEPROM - 24LC16B. Atmega162 doesn't have a hardware I2C interface, so it uses software I2C from www.eXtremeElectronics.co.in to communicate with the EEPROM. For a USB communication with pc it uses CDC-232 and V-USB library and a custom made (simple) protocol.

USB LED Cube

LEDs are connected in a matrix of 5 layers an 25 columns, so just 30 I/O pins of Atmega162 are used for driving the 125 leds of the cube. Remaining pins are used for USB and I2C communication.

USB LED Cube

Host software is written in Qt Creator. For communication with the cube it uses qextserialport library. In the application you create video sequences by typing specific commands, it's a simple scripting language similar to the one in plotter project. You can play them directly or store them into the internal EEPROM memory.

USB LED Cube

Firmware for Atmega162, schematics and source code of the host application are here.