If I set it as 3600 pixels WS2812, I get 10fps which sounds like the limit of what pixels can do for a single chain, so that’s fine.
however, if I go in settings, and set no leds, I get 16fps only for the simplest “intro to PB code” that does almost nothing.
My mapper had
function (pixelCount) {
width = 60
var map = []
for (i = 0; i < pixelCount; i++) {
y = Math.floor(i / width)
x = i % width
map.push([x, y])
}
return map
}
First, I’m a bit dismayed that the default mapper uses floating point math which has to be slow. Isn’t there an integer divide that goes faster?
But even if I remove the mapper, I still only get 16fps
Switching to a PB output expander with 6 channels gives me 11.25fps instead of 10fps. how disappointing
Not even worth wiring that expander I bought.
When I did this myself for 4096 on a single ESP32 and 16 channels, I was getting 110fps with complex math on top and that was a limit of the LEDs and output driver, not the code or ESP32. Hell Yves Bazin even wrote a crazy shift register output that was capable of 80 different output channels in parallel on a single ESP32 (each at full speed)
So is PB so slow because of unfixable javascript and basically I should go back to making my own in C++, or is there a big slowdown I’m missing and that is fixable.
I did upgrade to versoin 3.66 @wizard just posted. I do love the online pattern browser by the way, but it’s still unbearably slow.




