Monday, March 14, 2016

Driving the #Bolt at #ilightsmarinabay using I2C protocol

All my projects are posted to my facebook page at

#Bolt #SVTMaker

#Bolt #SVTmaker

In this article, I would like to share my experience in planning, testing, making, building, and driving the #Bolt at #ilightsmarinabay that happened on 4th March 2016 at Marina Bay, Singapore iLights festival.

A local artists that built a massive LED star in Butterworth, Penang called Jun Hao engaged two local makers, WeMaker and SVTmaker to do another project in Singapore called the Bolt, simulating lightning bolt when a button was pressed. The below images was taken from his proposal to the festival.

Bolt idea and concept

After understanding the requirements from the artists, we started exploring various way to drive the LED strips, from simple relays with delays to wireless options. After a few weeks of searches, I finally found an ideal method to drive so many LEDs using Inter-Integrated Circuit (I2C) protocol with 1 I2C master driving 8 I2C slaves. The idea was to use the delay() to turn on and off the LED strips.

The idea was to have eight passive I2C slaves just receiving commands from the I2C master and all my coding would be centralized in the I2C master. This makes controlling the code version easily and any changes does not need to re-flash all the 8 I2C slaves. This was my first time writing my own protocols on top of I2C and I probably would exceed the maximum length of the I2C wiring distance.

MOSFET on breadboard
Driving 2 Arduino via I2C 

The next task was finding a way to drive the 1 meter 12V LED strips and we decided on using MOSFET for this purpose. This was my first time using MOSFET and lots of it, around 80 pieces of MOSFET to drive around 80 pieces of 1m LED strips.

Bolt PCB circuit

Once this test was done, the next step was making a custom PCB for this purpose as soldering 12 LED strips to 8 I2C slaves on a prefboard is not fun at all. With my very limited skills in EagleCAD, I started drawing up the schematic diagram and board drawing  using 12 MOSFET driven by 12 pins on the Arduino Nano.

I usually take weeks and many many revisions to correct many errors before I make them into an actual PCB but this time around, time was not on my side and after 3 revisions within 2 days, I send it to Uncle Chow, 9M2CF to get the PCB done. Just in case the I2C does not work, I added a circuit to use nRF wireless options into the circuit as a backup plan. Always have backup plans.

Film of PCB drawing 
Bolt PCB done in 2 days
 To improve the quality of the PCB traces, uncle Chow 9M2CF, made a film instead of printing the drawing on tracing paper with laser printer.

Meanwhile doing the PCB, the architecture students from Taylors quickly did a model of the structure using lollipop sticks and lots of hot glue. A lot of work was put into making the frosted tubes while cut and soldered long wires to the 1 meter LED strips.

Driving the Led with Eduboard

After fixing many circuit errors on the PCB, it was time to hook it up to the model structure to test the lightning patterns. Referring to the first picture of the actual structure, the model accurately show how it will actually going to look like at night with the LED turned on.

I find that we actually did this project twice, once on the model and again on the actual structure as we had mini 3 LED strips hook up to the 8 I2C slaves.

8 I2C slaves fully soldered

8 I2C slaves hook up to the model structure

Part 2 was posted on with videos :-

Summary Links :-


Related Posts Plugin for WordPress, Blogger...