This is a replacement controller for the IKEA Dioder RGB LEDs.


This Arduino based circuit is used for setting the RGB-channels of the IKEA Dioder LED list based on serial input.

The serial input is provided by a Python script that converts HSV colors to RGB to provide a nice loop-around-effect.

This is a replacement controller for the original IKEA Dioder RGB LEDs, and does not need modifications to the original PCB.

The LEDs on the PCB are just there to visualize the signal (PWM via a Darlington pair switch/LED driver) sent to one of the RGB channels.

Right now I am converting HSV colors to RGB in order to create the nice blends on the laptop before sending a homebrew packet over the serial interface to the Andruino. I plan to let a Raspberry Pi deal with the communication in the future and send commands from the laptop to the Raspberry via Wifi.

Some ideas for further development

  • Better serial protocol. This might go out of sync so that the Arduino has to be reset. There are some checks so it shouldn't but it hasn't been tested so well.
  • Use a PWM controller instead of the Arduino and connect it directly to the Raspberry Pi GPIO pins, or remove the Arduino and replace it with some compatible chip to reduce cost and size of the chip.
  • Use the Raspberry webcam to capture photos of the person sitting at the desk and setting the color differently depending on who is sitting there (and flash violently if there's an intruder).
  • Setting the color to match the color of the shirt of the person sitting at the desk.
  • Setting the color to match the average screen color on the laptop.
  • Sunrise simulation (not sure how to sync it with my alarm)


  • The second RGB channel shares Vin connection with the first. In the IKEA setup, Vin is shared through the little box.

  • The Arduino resets on serial connection, see