Introduction: Magic LEDs Box. Entertainment Device

Hello ! This post is to explain the work done in recent months to a subject. The project has been designed and assembled by Eduardo Del Nogal, Pablo Pastor, Carlos Villagrasa, Jose Miguel Rios, Abraham Roldan and Javier Fuentes.

The idea of this work is an entertainment device which consists of RGB LEDs and push buttons which can store simple games.
The device has multi-mode. One of these, consist that when a button is pressed, the LED of the button pressed lights. The other mode is the programmer and allows lighting of any LED in any color RGB. The Project has been mostly focused to the development of the hardware shown in this post.

We attach the drawings done in Eagle. The software is just a simple control for hardware and implements a communication through the serial port to the PC so it can be controlled from another application developed in processing which also attached.

Therefore in this project provides the infrastructure for a more complete system, in terms of funcionality. It would be posible to créate games for this system from the infrastructure provided in this post.

The hardware used for this system is:

- 2 Plates Copper 16x16 cm.
-3 TLC5940 from Texas Instruments.
- 16 LEDs RGB.
- 1 Button pad from sparkfun.
- 3 Potentiometers 10k.
- 1 Potentiometer 1k.
- 3 Sockets with 28 pins.
- 1 Arduino Uno.
- Strip Pines.
- 1 Voltage Regulator LM350T.
- 1 Capacitor 100nF.
- 1 Capacitor 1uF.
- 1 Resistor 240 Ohmios.

On the software:
- Eagle Full Versión.
- Processing 2.0.3.
- Arduino IDE.
- TLCs Library (

It is desirable to have tools like multimeter for electronics particularly for the assembly.

It is also essential to have soldering tools (soldering iron, tin...).

The first step was to design hardware. For it we have used a sparkfun board and we have hacked for independent control of all LEDs. You can find the original plans here:

The hacked plans are attached in the post.

The second step was the development of a control board based on integrated circuits from Texas Instruments TLC5940. This board allows control many LEDs with various PWM signal from a few control signals connected to Arduino.

Also isolates the feed system by a separate voltage regulator.

You can also find them in this post the plate's planes.

After the design of these elements we made the design of the software. We used for this Processing and Arduino IDE.

The desired functionality in the software design was to allow the independent operation of the system functionality and alternately controlled from the PC, this latest in developer mode by modifying the software code.

To get the automatic functionality  we have done a game like "Simon Says", and other program that allow you to test multitouch of the device, this last program light in white color the buttons that you press. All the software for the device you can find it in this post.

On the other hand the developer mode allows the lighting of the LEDs in the desired color and also allows you to control the intensity.

Programmer mode functionality is achieved by sending some commands to Arduino. These commands are available in the code and correspond to the value taken by the variable "comando".

One of these commands alllows to ask Arduino what the buttons are pressed, and displays them in the Processing's console. 

We have attached two videos showing this functionality.


1. Record copper plates and plating the way according Eagle drawings.
2. Adjust the 10k potentiometers. Put them to 2k. Its function is to control the Iref of TLCs. The recommended value is 2k but can be changed.

1k potentiometer and capacitors are used to adjust the regulator at the point of suitable work. It is convenient to use potentiometers to have some control, once all componentes are soldered.

3. Soldering the components to the control board (potentiometers, sockets, pins, controller, condenser  and resistance) and the plate (LEDs, pin).

4. Download the library for TLC5940. ( and install. (copy to the directory "Libraries" on the Arduino installation folder).

5. Load the software on Arduino.

6. Assembly the plates and Arduino like you can see in the pictures.


The Arduino USB connector touch the plates if you assembly the system like pictures, you must put something non-conducting between this connector and plates. An easy way to solve this problem, it's using more large pins for connect the control board and Arduino Uno. This option affects the sturdiness.

You can do a wood box to introduce the system inside and improve stetic. 

We have attached to this post some videos of the device running and other videos showing some tests that we have done.