ESP32 288leds fps

Hey,

im usign an esp32 with my ws2815 leds. For the 5V interface im using a levelshifter.

Im Currently using a 2m 144leds strip (2*144 leds).

I read on github i believe, that an esp32 can easy handle ~750 leds
But I get only 41fps. Why is that? Its an 240mhz esp, so the fastet to get.

Its a bit annoying cause im used to 144hz monitor xD

How many LEDs do are configured in WLED? If it’s something like 1500, that might explain it.

Im using 288leds, so it should be way below the limit

There is a configuration option in WLED to tell it how many LEDs are connected. If the number entered does not match reality, it affects LEDs on the end do not get updated, or if it is too high, it is controlling ghost LEDs and slowing down update rate.


That’s my current setting

I just had a thought that turns out to be useless at the moment.
If there were a user-selectable usermod that you could simply enable or disable that would turn the strip into a 0-120 Hz display that showed current frame rate by turning on a percentage of led’s, you could see how fast or slow it was - even if wifi were not connected (in AP mode).

That would give you the theoretical maximum update rate for your LEDs and WLED setup.

Then you could enable wifi and see how much of an impact it has.

If E1.31 is controlling, then the frame rate is depending on xLights update rate, wifi 2.4GHz bandwidth and signal strength, # of LEDs, ESP8266 or ESP32, and which version controller is used (40MHz or some other clock speed?). Probably a few more things, but those are things you can change and then do the same exact % frame rate test.

Again, I wish this was available, but as far as I know, it is not.

It would not be difficult. Savvy usermod developers could easily force the percent effect, read the frame rate, and then set the % illumination. Heck, could even send it via MQTT automatically so you could see if frame rate is changing linearly with # of defined LEDs.

If you take it off your network, putting it into AP mode, and connect to it, what’s the frame rate then?

If it goes way up, you have some nosey or noisy wifi devices interfering with WLED.

If you are using xLights or jinx or other external protocol driving the led’s, try turning it off and see what the fps becomes.

Im just using the built in effects of WLED on the Controller, without LEDFX or something.

Or does it use in background these protocolls?

Try without the level shifter to see if you can raise the update rate.
There is a compile time build option that can adjust the minimum delay time. I do not know the default value, but it may be the time associated with ~41 fps.

I used my second strip without lvl shifter and it sadly is again 40fps. I tried to compile it with platform io, but I get compile errors because platformio cannot find the arduino.h :frowning:

If you really want to compile WLED, check out @Quindor’s YT channel. He shows how to install VS Code / Platform IO, get WLED, compile / build WLED, compile / build WLED (you have to do it 2 times after first installing Platform IO - he explains why in his video).

If you want faster than 40 fps, you need to reduce the # of LEDs. Configure WLED for 30 LEDs (as a test) and see what the frame rate goes to. That will be the maximum frame rate with the default build. If it is 40 fps, then you need a custom compile to change the minimum delay time between frames so it can go lower.

Hope this helps.

1 Like

Yes, default WLED FPs is locked to 42. Higher will require custom coding, but I’m not sure it will have the effect you are looking for. Still, you can try. :slight_smile:

I tried the Android effect and it gives me 60FPS on 300 Leds. Is this effect different? I would like to get 60fps because it seems much smoother

In WLED\fx.h:
#define WLED_FPS 42
#define FRAMETIME (1000/WLED_FPS)

Frame rate is default @ 42 fps. If you change WLED_FPS at build time to another value, you can modify FPS. You can experiment with your 288 LEDs to see what FPS you like best. 60 seems quite reasonable, especially for ESP32.

hi there
i have heard that the ws281x has a maximum working frequency of 800khz
now we have 288 24bit data packets to be dsttributed in serial through the strip @ max 800 Kilohertz
some one can do the math
that means the slowest part in the chain is the led strip
as shorter the strip as less data needs to be transferred
that makes the framerate higher
so i use short strips on multiple outputs
that makes mucho fps
also for good fps is a lot of memory
some effects in weled use a lot or are a littlebit buggy

by the way 2,4ghz wireless network cant transfer data whith the speed of 2,4ghz thats the radiofrequency which is used for data transmission
the data transferate must atleast be half of the transmitting frequency according to the law of physicks and the momentary tecknical developement of mankind

I am not fully sure what you are going on about, but maybe this will at least help a bit: Max amount of Addressable LEDs? - quinled.info

And if wireless becomes your limit, switch to an Ethernet ESP32 (available very soon for the QuinLED boards).

1 Like