[Eric Arcana] has been creating animated holiday decorations for several years, which involved a lot of custom code to make things light up the way he wanted, pulling the microcontroller to make changes. Using ESP32s with remote software updates is easier, but [Eric] also wanted to make the code simpler. To achieve this he created Fade, a custom programming language/framework for controlling LED animations from the ESP32.
Fade is written for addressable RGB LEDs like the Neopixel/WS2812. It keeps track of the current color of every LED in the system and allows the user to define what color it should be at a specified time in the future. Time is specified using 10 ms clock cycles. The LEDs will smoothly change from one color to the other in the specified number of clock cycles, without needing to specify what the intermediate colors should be.
Code is written in simple IDE, running on a web server on the ESP32 itself, or on a remote Windows PC. The language is very simple, but still powerful enough to create complex LED animations. A key part of it is the ability to specify multiple concurrent state changes in just a few lines of code. [Eric] also included optioning to take touch button inputs and use them to update the animations. Another nice feature is a simulation window on the desktop IDE. It allows you to create custom LED layouts on PC, and test your code without needing to send it to the ESP32.
Addressable LEDs have made creating large LED installations a lot simpler, like this 6 foot LED ball or a LED Video Wall.
Creator here.
Code is available if you want to try it out yourself.
Nice to see there is a possible alternative to pixelblaze popping-up. the closed-sourceness and price shipping costs of it always pissed me off.
Thanks.
I’ve programmed some basic animations directly from code and used ESP32 with pixel strips as ArtNet devices with DMX control for more complex designs – your frameworks looks like it would be a great way do program designs, I look forward to trying it out! Great work!
Fade is now available on https://github.com/ericgu/Fade
Perfect timing ! I needed something like that to play around with my new project. Its based on the zach freedman Chromance project!
Fade is now available on https://github.com/ericgu/Fade
You can convert your ESP32 into a PixelStick which turns it into a DMX receiver for controlling ws2811 lights over wifi. Then you can use the free xLights.org program for animations.
https://forkineye.com/espixelstick-v3/