What happened?
Whenever /presets.json is retrieved, my leds flicker partially in random colors. This is mostly detectable if there is HomeAssistant in the network, which polls /presets.json every 10 seconds.
To Reproduce Bug
curl <IP>/presets.json
Expected Behavior
No flickering
Install Method
Self-Compiled or other
What version/release of MM WLED?
a7aa9eb
Which microcontroller/board are you seeing the problem on?
ESP32
Relevant log/trace output
Anything else?
I've bisected the regression to a7aa9eb
Before this commit, the I can see the effect pause a momentarily (akin to skipping some frames) when /presets.json is accessed. After this commit, garbage gets rendered.
I also tried to see if sending the files in smaller chunks to see if that would help. I mutated the async file response as follows. This made downloading slow but did not fix the flickering. So this one is a dead end:
size_t AsyncFileResponse::_fillBuffer(uint8_t *data, size_t len){
+ len = std::min(len, (size_t)128);
return _content.read(data, len);
}
Code of Conduct
What happened?
Whenever /presets.json is retrieved, my leds flicker partially in random colors. This is mostly detectable if there is HomeAssistant in the network, which polls /presets.json every 10 seconds.
To Reproduce Bug
curl <IP>/presets.jsonExpected Behavior
No flickering
Install Method
Self-Compiled or other
What version/release of MM WLED?
a7aa9eb
Which microcontroller/board are you seeing the problem on?
ESP32
Relevant log/trace output
Anything else?
I've bisected the regression to a7aa9eb
Before this commit, the I can see the effect pause a momentarily (akin to skipping some frames) when /presets.json is accessed. After this commit, garbage gets rendered.
I also tried to see if sending the files in smaller chunks to see if that would help. I mutated the async file response as follows. This made downloading slow but did not fix the flickering. So this one is a dead end:
size_t AsyncFileResponse::_fillBuffer(uint8_t *data, size_t len){ + len = std::min(len, (size_t)128); return _content.read(data, len); }Code of Conduct