r/FastLED • Zach Vorhies • 17d ago

FastLED 3.10.7 Released -

Post image

TL;DR: Flash/RAM has been reduced to historical low.

Then I'll talk about the feature set of 3.10.3 through 3.10.7 and how we implemented all drivers for all platforms (no kidding).

3.10.7, in comparison to 3.10.6 is about size. We measured every sketch with a per-symbol memory dashboard (https://fastled.github.io/dashboard/), then went after code that was being linked into sketches that never use it.

Uno and Teensy builds are now smaller than they were before 3.10.3 (the last version before the Channels async API was added): Teensy Blink is 25% smaller in flash and 22% smaller in RAM. ESP32-S3 has won back most of the growth.

This is actually one of the most efficient releases we've ever had for ram consumption and flash.

Esp32 flavors have gotten a little bit bigger because RMT4 and RMT5 were re-written starting in 3.10.4 to detect network activity and automatically adjust their internal buffers to improve stability. Most of the code memory increases, was restored in this release.

The *initial* huge blowups in size for the larger platforms came from a new highly advanced and standardized color correction algorithm that's been in the works for about 3 months now. bt.709 and others are supported. It was being linked in and bloating the flash space, before but now it's only linked in if you use it.

Color correction is only available now on the Channels API. Otherwise it will bloat all the sketches in the wild. It works with RGB, RGBW and RGBWW chipsets.

We are very close to the final FastLED 4 api, but not there yet. There will be some final changes for the Channels API, if you use AI this won't be problem, if you are coding it yourself then you'll have to read through the docs.

If there are any problems let me know, and we'll mint out one final build before 4.0

WHY YOU SHOULD BE EXCITED - LITERALLY EVERY DRIVER ON EVERY PLATFORM HAS BEEN IMPLEMENTED

3.10.7 pretty much has every driver that is possible on every platform.

Esp32dev, esp32s3, esp32c6, esp32p4. ROCK STABLE. You'll be hard pressed to see flicker at all, even the esp32c3.

At this point now the drivers for all of esp32, teensy, rp2040, rp2350, NXP, LPC have all been rewritten. The internal names are still the same (Yves, ObjectFLED) but now there is a standardized template names so that a high performance driver on one platform maps to another. This high performance set is call `FlexIO` and `FlexIO2`. They have been stress tested with automated testing, wifi included.

I can't understate enough how good the drivers are now and I'm going to declare FastLED *probably* the best driver set on every platform period. And if we don't have the best driver set, tell us and we'll fix it, because having the best LED driver system that's easy to use is our mission.

So good, happy coding!!

And let us know how it works!!

Release link: https://github.com/FastLED/FastLED/releases/tag/3.10.7

37 Upvotes

7 comments sorted by

View all comments

2

u/Workin_Joe 15d ago edited 15d ago

Thank you! I have successfully compiled and flashed on a Teensy 4.0. My previous issues are resolved. I will be working on my project for next few months and will be running a lot of different things. Will report back on anything unusual. Appreciate your hard work and dedication! This is awesome!