FancyLED is a CircuitPython library to assist in creating buttery smooth LED animation. It’s loosely inspired by the FastLED library for Arduino, and in fact we have a “helper” library using similar function names to assist with porting of existing Arduino FastLED projects to CircuitPython.
Things to Know about FancyLED (vs FastLED):
- FancyLED does not “speak” any LED protocols on its own; it needs to work in conjunction with another library that handles the device specifics, such as NeoPixels or DotStars.
- FancyLED implements only a subset of FastLED features; those we had an immediate need for. This might expand over time, but will probably never be fully equivalent.
- FancyLED is not especially fast. Whereas FastLED relies on a lot of bit-level numerical tricks for performance, we don’t really have that luxury in Python. Some design choices were made with an eye to the future, when more microcontrollers will have floating-point math capability, so certain operations will be a bit pokey on current-day hardware.
- FancyLED has different function names and arguments. With the helper library, function names are kept the same as FastLED where possible, though they don't always follow preferred Python style, and the arguments and return values may be changed somewhat. Keeping it as close as we can though.
Basically, if you need really hardcore performance LED stuff, and are comfortable in the Arduino environment, stick with FastLED! If you want something similar for CircuitPython, FancyLED is a start.