Visitar URL original
Release FastLED 3.10.2 · FastLED/FastLED · GitHub
Skip to content

FastLED 3.10.2

Choose a tag to compare

@zackees zackees released this 22 Aug 20:58
· 5987 commits to master since this release
Fastled.3.10.2-1.mp4

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!
  • 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.
  • 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
    • ESP32-C5 is now supported.
    • ESP32 WS2812 SPI driver has a fix for it's async draw routine.
    • Blend2d will now replace a subfx XYMap (when necessary) to prevent double mapping. A warning will be issued.
    • Seeed XIAO nRF52840 Sense: Fixed incorrect pin mappings that were copied from Adafruit Feather board
    • APA102HD Gamma Correction Algorithm: Completely rewritten with closed-form mathematical solution
    • STM32F1 pin mapping fixes (blue pill)
  • 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

Color Boost Demo
image (3)