Dedicated LED Animation Framework For ESP32

[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.

https://www.youtube.com/watch?v=-CXQz1x2k9o

8 thoughts on “Dedicated LED Animation Framework For ESP32

    1. 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!

Leave a Reply to spamhelperCancel reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.