LED Strip Snowflake / Star Animations

A small guide on how I built a Christmas decoration with LEDs strips I had left over from another project. Plan, software and animations files are provided. This project was inspired by the following youtube video.

Step 1: Model the Snowflake / Star

First step was to plan a support structure for the LEDs this was done with Inkscape. The concept is to have a Snowflake with a Star inside. Width was chosen to be the width of two strips to be able to create everything with one strip going back on itself.

Step 2: Build Support

The support is built out of wood and assembled with hot glue.

Step 3: Soder LED Strips

LEDs strip are cut to the right length for each segment and then soldered together with prepared wires. This took a long time and I would recommend taking LEDs on a wire instead of cutting up strips.

Step 4: LEDs Driver

In this project the LEDs are not driven by an Arduino, but a NodeMCU board (ESP8266) with MicroPython on it.

The first step is top flash the micropython firmware following this guide: Getting started with MicroPython on the ESP8266. It is then possible to use it to drive the LEDs like shown in 11. Controlling NeoPixels.

On my board Machine.pin(4) is D2 (as can be seen on the picture). Do not forget to connect the gnd with the LEDs.

Step 5: Software and Animations

The software written in Python can be downloaded on my GitHub.

The main.py file handles animation playback. It can have a clock mode where time is displayed as percentage of number of LEDs. And there are also all the animations shown in the video which can be copied from the animations.txt file. The animations make us of the snowflake_esp.py module which has a Snowflake class to easily adresse entire parts of the structure. It is therefore possible to control all the LEDs together or only the star part, or tree, leaf or trunk of each arm, down to the individual LED.

For example:

from snowflake_esp import *sf = Snowflake(0)
off = Color(0, 0, 0)

def wait(ms):
    time.sleep(ms/1000.0)

--- big and small star with snowflake transition
y = Color(255, 220, 0)
sf.paint(off)
sf.star.color(y)
wait(1000)
sf.star.paint(off)
sf.trees.color(w)
wait(1000)
sf.trees.trunk.paint(off)
sf.trees.leaf.color(y)
wait(1000)

Share

    Recommendations

    • PCB Contest

      PCB Contest
    • Make it Glow Contest 2018

      Make it Glow Contest 2018
    • Big and Small Contest

      Big and Small Contest

    2 Discussions

    0
    None
    GeoffreyB6

    5 weeks ago on Step 5

    Hi....I am interested in building this amazing project! thanks for sharing. I am relatively new to python so here is my question......would it be possible to make an infinite loop of multiple animations classes? thanks in advance

    1 reply
    0
    None
    bfritscherGeoffreyB6

    Reply 5 weeks ago

    You can put one long animation composed of multiples animations inside the loop. Or any other application logique. The main limitation depends on your hardware. On the ESP memory is limited so a too big animation might fail.