In this project I am using a Wemos ESP8266 development board. This board supports micro python, C/C++ and the Arduino variant of C/C++ via ESP8266 core for Arduino. I decided to go with the ESP8266 core for Arduino because I was able to get it up and running quickly and I already had the tool chain set up for it.

Next I create a series of function for each type of pattern. The functions take a set of offsets, the transition speed, the color pallet as parameters. These parameters are randomized each time the function is called and should produce a different pattern each time the panel is started up. Theoretically there should be in the order of 65 million different patterns, but realistically there is only a few hundred visibly different patterns for each panel

All the panels share the same code base with a different series of sets. As I made more patterns all the panels should get more and more interesting.