Xmas revisited

2 years back I was approached to write a simple tutorial for a magazine that was due to be launched. That Magazine turned out to be HackSpace.

Due to the timing, I decided to do a simple Christmas lighting project. Despite being relatively simple, this turned out to have its own challenges.


The idea for the lights was that you could control them from your phone. This was done using a Bluetooth module which connected to the Arduino via a serial port. Whilst writing the code I had a WTF moment where lights were glowing very dimly and although they seemed to change with the changing of the input they were definitely not flashing on and off.

This turned out that I’d missed the command to turn the I/O pin into an output. This meant that rather than toggling the output on and off, I was instead changing the input mode, a side effect of the way that the Arduino’s hardware abstraction layer works. A useful lesson in how the internals work which came in handy when I was writing the bitbang I2C code for the Azure Sphere.

 pinMode(2, OUTPUT); 

The other software challenge was finding remote control apps for Android and IOS that were sufficiently similar. I did not have time to write my own portable app so I needed to find something off the shelf. The main issue was the sheer number of apps available. Luckily I had access to both types of devices so we eventually found something that would work.

Build issues

The biggest issue with the build was wiring the 40 LEDs. I had underestimated the amount of wire required for this and the number of joints. The volume of the wiring harness and getting heat shrink over those joints was tricky.

The woodwork also proved harder than expected. I had hoped that the plywood would have been flexible enough to do the curves of the S. However it just snapped whenever I bent it.

What would I do differently?

To simplify the problem of the client software, I think I’d use a similar approach to the recent Elephant project and have a Web UI.

On further research into materials, there is flexible plywood, although perhaps creating something using veneers and laminate would be an alternative approach.

The wiring challenge is tricky. The obvious choice is to design a printed circuit board onto which the LEDs can be soldered. However, this might be expensive due to the large size. Making boards for each letter would be one approach. Alternatively using something like NeoPixels instead of individual LEDs would also simplify the wiring but is also expensive.

What would you do differently on this project?

Leave a Reply

Your email address will not be published. Required fields are marked *

 characters available