Introduction: XMas Tree

First of all we need to prepare wooden sticks of 12x12 mm

* 8 x 125cm
* 8 x 35 cm
* 4 x 50 cm

Well I found useful to buy 8 x 2 m long wooden sticks, that could be cut the way the remains are at minimum. The 2 m stick are typically a bit longer, therefore there is no issue with thickness of the cut, and btw there is no nanometer precision needed here.

As a second step it is necessary to 3D print the plastic parts to connect all the wooden stick to create the 8 side pyramid as a skeleton for our xMas tree.

All the necessary 3D files can be found here, such as *.stl files or *.gcode file, or in case you wish to play with the dimensions and prepare slightly different one, e.g. smaller or taller tree, the original *.skp file at the same folder can come handy.

Step 1: The Neopixel Lights

As a next step there is necessary to prepare the neopixel stripe (WS2812B, 5050, 5V) and separate the individual neopixel segments.

In our case there are 13 x 8 individual lights, which means 104 pieces to solder one by one.

I used an old ethernet cable, cut to "tons" of small segments (about 10 cm, each by 3 wires) and soldered them together. Always 13 neopixels in a line, that are later mounted on the pyramid edges (the wooden sticks) by a hot glue gun.

The stripes are connected from bottop to top and then from top to bottom and again till the last one, to minimize a need for extra cables. Therefore the stripes are joined once on top and then on bottom side as shown on the picture above. Mind the direction of the Neopixel segments follow the small arrows!

Then once all mounted I started to construct a controler using ESP8266, based on the schematic above.

The piece of code with 3 simple effects, and wifi connection with a feature of receiving the correct time can be found here. You might ask why wifi or time is needed, the code is prepared to trigger effects at a given time e.g. at full o'clock, or at midnight, any minute, based on you imagination. The code in this example switches the effect every minute keeping it for 30 second to demonstrate the time feature.

Either you can use Arduino IDE or any other IDE that suits you the best and play with the code or you can just easily upload the bin file located in the same github folder using ESP tools.

Step 2: The Light Balls

Since the light form the Neopixel diodes is relative sharp, althougt the brightens can be controlled via web setting (as previously mentioned the wifi connection is already part of the code), I decided to cover the Neopixel diodes by a noname pingping balls which I drilled and attached by a hot glue gun.

Well that is no rocket science and there could be a lot of things improved, however it can be a good kick starter for any further experiments.

The idea was to connect the stripes to a matrix, the only trick was the stipe goes up and down and up and down, so the software counts with that to change the direction for each row (pyramid edge), which follows the connection from the previous step.

Enjoy the fun, feel free to comment.