Update zu FastLED und meinen LED Effekten

Hi zusammen,

nur die kurze Info, dass sich FastLED massiv weiterentwickelt hat und vielleicht mal wieder einen Blick wert ist – es gibt viele neue Features zu entdecken.

New in 3.9.16: WaveFx / Multi-Layer Compositing / Time-based Animation Control

New in 3.9.13: HD107 "Turbo" 40 MHz LED Support

New in 3.9.12: WS2816 "HD" LED Support

New in 3.9.9: 16-way Yves I2S Parallel Driver for the ESP32-S3

New in 3.9.8: Massive Teensy 4.1 & 4.0 WS2812 LED Output

New in 3.9.2: Overclocking of WS2812

usw.

Mein Animartrix Renderer ist jetzt auch fester Bestandteil der Library.

Und ich arbeite gerade an einem Prototyp für eine neue modulare Rendering Engine (anstelle der statischen Pipeline von Animartrix).

...to be continued...

Beste Grüße in die Runde!

Das hier ist auch ein geiles Tool, um FastLED Effekte im Browser zu testen:
FastLED Wasm compiler

Dann "blicke" ich doch mal, was es Neues gibt :smiley:

Gruß zurück!

FastLED 3.10.0 wurde heute Nacht released.

Details of FastLED 3.10

3.10 represents a new phase of FastLED, while the 3.9.XX series focused on improving the driver and increasing the number of LEDs that can be painted at once, the 3.10.XX series will focus more on helping artists and sketch programmers realize their visions.

AnimARTrix is now out of beta.

FastLED 3.10.2

  • CORKSCREW MAPPING!

    • Want to create a light saber or festival stick? Before your options were to have vertical strips.

    • Now you can use a corkscrew mapping fl/corkscrew.h, see examples/FestivalStick

      • You input the number of LEDS + number of turns.

      • Corkscrew will provide a surface XY grid that you draw too.

        • then call Corkscrew::draw(), and the current surface will be mapped to the corkscrew.

        • Rendering is done via 2x2 bilinear sampling. Looks great!

  • Animartrix - 30% faster due to forced -O3 and fastmath compiler settings for this one file.

  • Ease Functions - lots and lots of ease functions! Great for animations!

    • see fl/ease.h and the demo examples/Ease/Ease.ino

    • Fast! Everything is done in integer space.

  • 3D Perlin noise (inoise8(x, y, z)) range utilization improved from 72.9% to 88.6%

    • Significantly better quality for volumetric LED effects (3D fire, clouds, particles)

    • Uses industry-standard 12 edge vectors of a cube for optimal gradient coverage

  • Adafruit NeoPixel Bridge: Optional Adafruit_NeoPixel clockless controller support

    • For some platforms Adafruits NeoPixel just works better.

    • Enable with #define FASTLED_USE_ADAFRUIT_NEOPIXEL before including FastLED

    • Now your WS2812 chipset will use the AdafruitNeopixel library (if installed)

  • New LED chipset: SM16824E

  • apollo3_red (stm variant): beta support.

  • HSV16 support

    • CRGB -> HSV -> CRGB is highly lossy

    • CRGB -> HSV16 -> CRGB is almost perfect.

    • Integer based so it's fast.

  • ColorBoost

    • CRGB::colorBoost()

    • Are you doing video on WS2812? Well then you probably are using gamma correction

    • Color Boost is an alternative for gamma correction for the WS2812 and other RGB8 chipsets.

      • It preserves luminosity but allows you to increase saturation.

      • HSV16 is used to preserve color resolution.

  • HSV -> CRGB default conversion function can now be overriden.

    • Thanks to https://github.com/ssilverman or this full spectrum HSV tweak.

    • If you just want to change it for your sketch you can use this:

      • #define FASTLED_HSV_CONVERSION_RAINBOW (default)

      • #define FASTLED_HSV_CONVERSION_SPECTRUM

      • #define FASTLED_HSV_CONVERSION_FULL_SPECTRUM

    • To change for the entire engine (recommended) then set these as build flags:

      • -DFASTLED_HSV_CONVERSION_RAINBOW

      • -DFASTLED_HSV_CONVERSION_SPECTRUM

      • -FASTLED_HSV_CONVERSION_FULL_SPECTRUM

  • fl/fetch.h

    • A non blocking http fetch library returning an fl/promise.h

    • You can then await the promise with fl::await or install a callback to be invoked. The latter is recommended.

  • fl/json.h rewrite

    • Much more ergonic library. Fast parsing for packed arrays of number

    • The underlying ArduinoJson library is only ergonomic if you allow std:string and std::sstream, which is missing on platforms like avr. So we had to write our own api to handle this.

  • Platforms

  • Internal stuff

    • FastLED is now way more strict in it's compiler settings. Warnings are treated as errors

      • Lots of fixes, some code required amnesty.
    • The examples now compile under clang and run for ./test

    • All examples now compile for ALL platforms.

      • this was a major undertaking.

      • required a rewrite of the testing infrastructure.

      • Teensy41 took ~ 1 hours to compile 40 examples, now it can do 80 examples in ~8 mins

Happy Coding!