Dynamic range and frame rate quantification?

Hi there, first-time poster here, love the project!

I’ve been playing around with WLED along with Pixelblaze, a non-open-source ESP32 controller that has been mentioned here a few times.

I’d prefer to work on an open-source platform of course. But before I spend more time on WLED firmware/software, I was wondering if information is available on what the typically acheivable performance is, compared to Pixelblaze firmware/software. Mostly I am wondering about frame rate (in terms of pixel updates per second or string updates per second for a given string length) and dynamic range (how many brightness levels are possible for each LED, especially for APA102 LEDs that are capable of high dynamic range).

Considering both WLED and Pixelblaze firmware run on ESP32, I would expect the technical capabilities to be in the same ballpark, given the same LED string and pattern.

So far though, I haven’t seen a demo pattern on WLED that visually appears comparable to many of the patterns on Pixelblaze, in terms of frame rate and dynamic range. I’m wondering if that suggests that there are low-level limitations in the way WLED firmware works that would prevent creation of patterns with similar smoothness / complexity / dynamic range, to patterns run on Pixelblaze. Or, instead, if this is simply a limitation of the existing demo patterns.

Here are some indicative specs claimed by Pixelblaze on frame rate: * “Pixelblaze can generate between 12,000-45,000 pixels per second, and can drive up to 5000 pixels. 100 LEDs: 120-400+ FPS (very fast animations, special effects, POV). 1000 LEDs: 12-40+ FPS (animations, backgrounds)”

I haven’t seen the Pixelblaze’s dynamic range quantified–in one place Pixelblaze simply states that it is designed to take advantage of APA102 LEDs and can produce “dynamic range well beyond 0-255.” I read somewhere that the APA102 controllers may offer about 13-bit (0-8000) dynamic range, and that may be further divisible using global brightness control settings–again, not sure exactly what Pixelblaze is doing or what is even possible with your typical APA102 knockoff (SK9822 etc.)

Any thoughts? Indicative data available to compare the two firmwares with the same pattern / LED string and see how they perform?

Cheers!

There are a few issues here to discuss. The frame rate the microcontroller can achieve and the frame rate the leds can achieve.

For ws2811/2812 you can run about 600 leds at 40fps. This is a limitation of both the esp chip and the leds. The esp chip does not have the horsepower to do much more than this.

In regards to dynamic range I am uncertain what you mean. On the brightness topic review the data sheet by if I remember correctly for 2811/12 the brightness is from 0-255 no changing this. It the protocol.

I am unfamiliar with the specs of the apa102.

I’m working on a lot of the things you want including adding APA102 “HDR” support to WLED, and generally improving the performance, making it easy to port FastLED (and maybe in the future Pixelblaze) patterns, support 2D patterns, etc. I’m currently working on a DMA-based SPI->APA102 driver, and after that’s integrated will work on using the GBC bits to implement HDR.

if this is simply a limitation of the existing demo patterns.

It’s mostly a limitation of the patterns. You can see some patterns and decoded Animated GIFs I’m able to display with a 64x64 matrix at >30FPS on the Discord.

It will always be easier to create, edit, and share custom patterns on Pixelblaze, it was designed for that use case. WLED will eventually have better FPS and pixelcount performance than Pixelblaze, as the WLED patterns (“effects”) are written in C++ not in an interpreted language.

Check updates here: Discord