This LED snowflake has animated colours provided by 7 APA102 LEDs, and controlled by an Arduino Nano microcontroller. The pieces are laser cut acrylic. You can create your own design following the concepts here, and laser cut them at your local maker lab. Or you can purchase the kit of pre-cut parts, at makerism.com. The parts of the kit are shown in one of the accompanying photos.
I have made this design in a couple of different sizes. The smaller ones are quite light and do not stand up as well as the larger ones. The USB cable provides power for the finished snowflake, and I find the lighter USB cables work best, as the heavier cables are not as flexible and tend to push the snowflake over. The small snowflake is light enough that it can be hung by the USB cable.
I prefer APA102 LED strips, though WS2812s would work just as well. My firmware however will not work with any other LED strips, just the APA102s.
I intend on providing the design files, though they are currently only in RDWorks format which is not a standard format. If you are interested please contact me.
Step 1: Cut Three 2-pin Jumpers
Start with an unsoldered Nano. These typically come with the pin headers required. Break or cut one of the headers into 2-pin sections. Three are required. If you use wire cutters, hold onto the two pieces as you cut, because they are bound to go flying, the small piece in particular.
I like to use a Nano socket as a holder while soldering the pins into the Nano. You might also use a solderless breadboard. Place the three 2-pin headers into the socket at the positions as shown. Lay the Nano over top. The pins we will be using at 5V, GND, D8, and D9. Solder one pin of each header, then look from the side to make sure the header is all the way down into the circuit board. If not, reheat the one soldered pin and push down. Then solder the other pin of each header.
There are two pins that we don't need, so these can be cut off. Put your finger over the pin as you cut it, as the pin is bound to go flying. Insert the Nano into the acrylic holder. Bend over each pin as shown. The pins should all angle up about 20 degrees.
Now its time to assemble the LED strip. There are two sections to the strip: one of 6 LEDs, the other of 1 LED with a sticky backing. If you use the same LEDs that I have used (APA102's with GND on the top), then 6 wires will be required. Start with 2" wires. I use wires cut from a Seeed Grove cable, but any wires of about 24 gauge will do. Strip each wire about 2mm from the end, and apply solder (this is called tinning).
Apply solder to the pads of the LED strips. The input pads are the 4 of which 2 are usually labelled DI and CI. For the 6 LED strip, only the input pads need to be tinned. For the single LED, both input and output pads need solder. The two strips need to be joined such that GND connects to GND, CO to CI, DO to DI, and 5V to 5V. In these photos all the wires are the same length, though it actually works better if the lengths vary as to create a 90 degree turn between the two strips.
Now it is time to connect the strip onto the Nano assembly. First tin the pins. Solder two wires to the pins D8 and D9. Remove the backing from the sticky, single LED strip, and stick it to the acrylic so that the LED is about in the middle. Solder the two wires to the strip. D9 will connect to CI, and D8 to DI. Solder the LED strip assembly to the LED strip assembly.
Add shrink tubing to both ends of the 6 LED strip. The strip will be formed into a circle, and these two ends will be touching. The shrink tubing will prevent short circuiting. Use a heat gun to cause the tubing to shrink.
Form the LED strip into a circle, adjusting wire positions as necessary. The screw holes must be on the outside of the circle. When bending the wires, be careful not to cause too much mechanical stressing of the solder joints.
Now its time to assemble the snowflake. Start with the back and build the sandwich upward. Put the screws through the back and lay the back on a surface. Put the Nano assembly over top.
Add the first clear spacer, pushing the strip through the hole in the middle. Next is the frost acrylic snowflake. Some adjustment of wires might be necessary. When the snowflake is in place, push each LED into the slot in the snowflake inner circle.
Add the top clear spacer. The top of the strip should be flush with the top of the clear piece. Put the diffuser on top.
The front frost acrylic piece needs countersinking, so that the flat head screws will be flush with the surface of the acrylic. Hold the acrylic with one hand, lay the bit over the hole, pull the trigger, and press down for a couple of seconds. You can test with a screw to see if it is flush, then repeat as many times as needed to get it right.
When done countersinking, lay the front piece over top of our snowflake sandwich.
BTW I purchased this countersinking bit at Home Depot.
Now the sandwich is complete, but the screws are the wrong way around. We need to pull out each screw and push it in from the back side. To help in maintaining hole alignment, put a standoff onto the end of one screw. Then holding the snowflake together, pull out the other screw and push it in from the back. You might need to use a screwdriver to get out or in. Add the standoff. Repeat for the other screw.
The sandwich is fully assembled now, but you may need to check for gaps. A wire often will find its way in between two pieces, and will need to be pushed back into the center using a sharp implement.
The snowflake is complete.
Programming can be performed with any Arduino-compatible software. I use my own Scridgets software for programming. I will be providing a HEX file with a suitable program ASAP.The file can be uploaded into the Nano using AvrDude, which ships with Arduino.