Table of Contents
IKEA DIODER Hack
23 February 2013
Ikea DIODER hack is a simple circuit able to control up to two different DIODER light strip sold by IKEA using an arduino or a linux embedded device like RaspberryPi.
The small circuit is based on the TLC59108 integrated chip that is a 8 LEDs controller driver with PWM ability that work at 97kHz.
The facto this circuit can be also used as TLC59108 breakout board.
Here some of the features of the Texs chip used 1):
- Eight LED Drivers (Each Output Programmable At Off, On, Programmable LED Brightness, Programmable Group Dimming/Blinking Mixed With Individual LED Brightness
- Eight Constant-Current Open-Drain Output Channels 256-Step (8-Bit) Linear Programmable Brightness Per LED Output Varying From Fully Off (Default) to Maximum Brightness Using a 97-kHz PWM Signal
- Four Hardware Address Pins Allow 14 TLC59108 Devices to be Connected to the Same I2C Bus Four Software-Programmable I2C Bus Addresses
- Constant Output Current Range: 10 mA to 120 mA
- Maximum Output Voltage: 17 V
- 25-MHz Internal Oscillator Requires No External Components
- No Glitch on Power Up
- 3.3-V or 5-V Supply Voltage
click to zoom
The schematics is pretty clear, an NCP1117 is used to reduce the input voltage to 5Volt or 3V3Volt, this choice allow you to use this board with both 5V TTL device as well as with 3,3V TTL level.
All the TLC59108 output are available on external connectors and R4/R5 can be used to select the I2C address of the single chip, this choice allow you to use up to 4 different board on the same I2c bus.
To debug LEDs are connected to Out4 and Out5,
Follow some images of the PCB realization.
Mount the circuit
NOTE: This part should still be written, (I'm ordering components) news will follow soon!!
|Designator||Package||Quantity||Designation||Supplier and ref|
How to use
The circuit can be power with 7 to 18 Volt and, as yet say, you can use it with TTL level value of 3,3V or 5V.
To avoid damage to circuits ensure to use the correct TTL level voltage!!!
Here I will assume that both R4/R5 are mounted (i2c address: 0x40h) and that we want to test the out4/out5.
The I2C commands that we will be to use are:
STILL UNTESTED, wainting components
Use with ARDUINO
To use this board to ARDUINO Uno you should use 5V TTL, while with ARDUINO Due you should use 3,3 TTL.
The follow table show connections:
|Signal||ADUINO Uno||ARDUINO Due|
Here follow a .ino file that can be used to thest functionality:
/* Need to be written! If you like this projet propose your implemetantion! */
Use with Linux/RaspberryPi
On the RaspberryPi are available some GPIOs pins as well as the I2C bus on GPIO0 (SDA) and GPIO1 (SCL), you should also connect GNDs together (see next).
To control the chip from Linux you can install and use the i2c-tools3).
Here some example using bash script:
#I should mount the pcb before test the code. # # Any code is welcome!
Crontab can be used to automatically act at fixed time. The example below automatically operate over the day.
I hope that this article can be useful to someone and I like to hear your experience with this circuit or derivate. Any comment is welcome.