This time I’m making a Billy Bookcase light with Home Assistant Integration. Check how I made it.

These are the Ikea Billy Bookcase that I use for displays some of my LEGO.

Billy Bookcase light before installation

And these are the bookcases after installing the lighting.

Billy Bookcase light after installation

And this is what it looks like with all other lighting turned off.

Billy Bookcase light with external lights off

This project is supported by Seeed Studio. More about this support later.

Seeed Studio

Something i’ve what to implement for some time is the Billy Bookcase light system. With the support of Seeed Studio we’ll create this project.

Material Needed

  • Led Strips
  • UTP Cable
  • PLA
  • Header Pin
  • 1 x Wemos D1 Mini
  • 2 x SRD-03VDC-SL-C Relay
  • 1 x L293DD
  • 2 x 470uF Capacitor
  • 1 x AMS1117-5.0
  • 2 x S8050 Transistor
  • 10K Resistor4 x 
  • 1 x S07K230 Varistor
  • 1 x 1812L010 Fuse
  • 2 x G3MB202PDC12 Relay
  • 1 x HLK1-PM12
  • 5 x Screw Terminal 3.5MM 2 Connectors


This project will be based on a Wemos D1 Mini for control. This will be able to control 4 LED strips. Two 12V and two 220V strips. In my case i’ll use the 12V ones. The entire circuit is powered by 220v which will be converted to the necessary voltages. 12v for the led strips and 5v for the Wemos D1 Mini.

Billy Bookcase light fritzing schema

As usual, the first step is to prepare a prototype and test it in practice, also testing the integration in Homeassistant. It connect’s to a MQTT server where will publish it’s status and receive instructions to turn on and off each LED strip.

You an check all the code on my Github.

PCB Production

The next step is to prepare the PCB for production in Autodesk Eagle. After placing the components and making the connections, it is necessary to validate them as well as the distances between tracks. For this, Autodesk Eagle has the Design Rules (DRC) function.

Billy Bookcase light PCB production

Next, I need to prepare the files for production. To do this, I use the CAM processor function. This will allow to export all the layers I use in a format suitable for production.

Billy Bookcase light PCB production

Seeed Studio

To produce the PCBs I have the support of Seeed Studio. Seeed Studio has a PCB creation service that is extremely simple to use. Simply load the Gerber files exported from Autodesk Eagle and choose the PCB type, size and quantity. After being loaded, we can preview it to check if everything is as expected.

On the same page we can also request the component assembly service. To do this, we only need to upload the assembly instructions and the BOM (Bill of Materials) where we specify the components. In order to speed up the assembly process, Seeed Studio has a wide range of components in stock. If there is a component with a long delivery time or that is out of stock, Seeed Studio will provide us with alternatives if we want to change the component to speed up production.

After production and assembly, the PCBs arrive to us well protected and packaged. We can check the production quality of the PCB’s as well as the assembly quality of all components.


Once we have the PCB, it’s time to prepare the box that will house it. For this I use Autodesk Fusion 360. This allows you to create the different components as well as validate the interconnection of each of them.

Billy Bookcase light housing


After printing the box, it’s time to begin assembly. To do this, I glued the LED strips underneath some shelves. In my case I glued it to the back of the shelf, a decision that wasn’t the best as we will see later.

After placing the multiple cables, it’s time for the first test. As you can see, placing the led strips on the back of the shelf was not the best decision.

First version

To correct this situation, I removed the strips and created a support for them that allows to be placed at a 45º angle on the shelf.

You can download all the parts on my thingiverse.

Led angle support

After printing these they need to be assembled as they had to be printed in several parts. For this I use Super Glue.
To assemble the LED strips and since the adhesive is not strong enough and some had to be removed, I used contact cement. This allows them to be fixed securely.

Because the mounting location has changed, it is necessary to solder new cables as the old ones are not long enough. For these LED strips I use UTP cable because the voltage is quite low.

The process of fixing the supports to the shelves is then repeated, this time with hot glue and placing the multiple cables again.

In order to hide the cables, I created some angular profiles to place in front of them. These profiles were also fixed with hot glue so that they could be removed easily.

Angular profile covers

The last step is to prepare the box. I placed injection moulding brass insert nut on the box lid and prepared the controller with the necessary wiring to receive connections to the various LED strips.

Final Result

After assembly, to see the final result it was necessary to place all the LEGO on the Billy, a very satisfactory process.

Final Result

Finally, it was necessary to add the components to HomeAssistant, a very simple process.
As you can see the result was quite good. I was able to add the necessary lighting to the displays. If you want more intense lighting, you can use LED strips with more less or 230V led strips.

I have another projects that you may like. Don’t forget to check out.
I hope you like this project. Thanks for watching and we’ll on the next one.

Write A Comment

The reCAPTCHA verification period has expired. Please reload the page.