Wall Light

An ambient, full colored, Arduino based Wall Light. The case is based on a cheap IKEA ceiling lamp. The color of the light can be changed through a simple serial bluetooth protocol.

Open Source Hardware This Project is fully open source and publicly released on github under the MIT License. Any further contribution to this project is highly appreciated

I started this project 2 days before we went to France for a 2 week holiday but since this is a really quick project the lamp worked fine after 2 days. Now when we came back I gave it the last touches and finished some bugs in the software.

Initially this lamp should be a replacement for a lamp in our living room but I was way too greedy with the WS2812B LEDs. Eventually, the lamp wasn’t bright enough so I’m going to mount it now in the sleeping room as one of those morning, sun imitating lamps. As a controller I’m going to use a Raspberry PI with a node script that will also control some other devices in my house like my Wall Clock.

The case of this lamp is based on a really cheap (around 2€) IKEA ceiling lamp that I had lying around for a while. After cleaning off the dust and remove the high voltage socket I was really happy with the space that I had left and the diffusion of the glass.

The board is quite simple and was constructed in eagle. I still had an old board lying around with an ATMega 8 so I chose it as the main processor.

PCB schematic

To reduce costs and complexity I’ve tried to only use one Layer and as less jumper wires as possible. I fitted the boards outline and drill holes to match the case of the IKEA lamp.

PCB Layout

After several optimizations and double checking the pinout (would not be the first time that I accidentally Placed an IC upside Down on the board) the board was ready to be manufactured. Thanks to my CNC machine this process only took 20 Minutes.

milling in process

Surprisingly everything went right the first time while milling and I was really happy with the outcome. Until now I always had to run the GCode a second time with a lower Z Axis.

the milled PCB

I like to spray my boards with Bungard Green Coat. It gives the board a professional look, protects from corrosion and works as an excellent flux.

the coated PCB

Unfortunately you have to let it dry quite a long time and im not really that patient. So I got green Fingers and you can see some stamps on the board.

The board itself was assembled real quickly but I didn’t had the Bluetooth Modules yet. When they arrived I noticed that my Dealer didn’t ship the right model and this one had a different Pinout. At first I tried to fix this by cutting the traces on the board and resolder them. This soon became a mess so instead I soldered some dupont wires to the traces and connected them to the module.

the bluetooth fix

To keep the board away from the case I cut 5 spacers out of aluminum.

aluminum spacers

assembled light

I wanted to use the Arduino IDE and the WS2812 Library from Adafruit, so I had to burn the Bootloader. This worked perfectly fine but I couldn’t program the chip over the Serial Connection afterwards. After a long research I discovered, that I need to manually reset the Chip or use a 10pF Capacitor connected to the RTS line of the adapter and the reset Pin of the Chip. DUH! A first test of the LEDs worked perfectly.

first LED test

At this time also my first DSO arrived and immediately became helpful. As it turned out one of the Bluetooth Modules wasn’t working correctly and couldn’t receive anything. Luckily I ordered 3 of them so I could replace it quickly.


The sketch is also really simple and just runs a rainbow pattern on the LEDs until it gets a color over the Serial Bluetooth Connection. Colors can be send in a hex scheme (e.g. #ffffff). This color is displayed until a new color command or the command r arrives wich puts the light back into the rainbow mode

ready product