-
Notifications
You must be signed in to change notification settings - Fork 45
Description
First off, thanks for this port--this was the push I needed to migrate my big LED projects from Arduino to IDF with Arduino as a component. Let me know if I can be of help with the hardware SPI driver at all.
I'm testing out running WS2812FX patterns on WS2812B LEDs and noticing a few different glitching and ghosting issues:
-
The last pixel always glitches white when I run a pattern. This happens on all patterns and with both the RMT and I2S driver. Disabling WiFi and Bluetooth doesn't make a difference. Here's an example running a color wipe on a 256 pixel matrix, same thing happens on standard strips: GIF link
-
I think there may be a data overflow with the I2S driver while running patterns. When using the I2S driver, I get a bunch of extra glitching pixels on past the amount I have defined for the controller. I don't have this issue with the RMT driver. This is the same setup as above (256 LEDs on one output), when I attach additional LEDs I get all this extra glitchy stuff: GIF link
-
I see some ghosting on the leading pixels of animations when WiFi or Bluetooth is enabled. It's hard to capture with my phone camera, but in the above two GIFs there's also an issue where the leading few pixels of the animation don't clear/animate smoothly sometimes. Disabling both WiFi and Bluetooth fixes the issue, so I assume this is due to jitter. I noticed in the I2S driver you put fillBuffer in IRAM, but I don't think the 0 flag for the esp_inter_alloc call adds
ESP_INTR_FLAG_IRAM, does it? I can explicitly callESP_INTR_FLAG_LEVELas 1, 2, or 3, but if I add| ESP_INTR_FLAG_IRAMI no longer get any output. SettingESP_INTR_FLAG_LEVELto 4 or greater also results in no output. Any thoughts on how to set the priority higher to avoid jitter issues?
Thanks again!