Cannot get second set of GPIOS working for APA102 led using ESP32 wroom 32

I have assigned pins 13, 33 for the first set of apa102 strips (working fine up to 900 pixels) but when I connect the other set to pins 18, 19, the leds connected to second set of pins -18&19 is not working.

I don’t know what I’m doing wrong. BTW I’m using sn74ahct125n level shifter and a beefy power supply.

I have a string of 99 SK6812’s running on an ESP32-32U using GPIO 17.

1 Like

did you try other pins?

1 Like

Not this ESP32 but I have another ESP32 which uses different pins - 25 & 26, again not working.

BTW, if I remove all entries in the wled app and then add 18 & 19 instead of 13 & 33, it works. And if I add 13 & 33 as the second set, it does not work either.

It seems like a configuration issue! How do I enable both when using apa102 leds?

something odd going on, no idea where the problem is. I can get outputs to work using GPIO 16&33 for first and 18&23 for second but only one of them is clocked fast, the other one defaults to 1MHz.

Since this is all managed by the NeoPixelBus library, the bug may be there. I have no APA strips to test this.

1 Like

SPI buses can only have 1 HW assisted bus and 1 SW driven bus. SW driven bus is prone to CPU starvation.

so one is already software driven? that would explain the 1MHz limit but would not explain why some outputs would not work, like the pin18/19 combo mentioned, I tried several different combinations at random and only the one I wrote in my last post did properly output signals.

if one is already software, is adding more software outputs even worse regarding performance? referring to Support for multiple apa102 strips stopped working correctly in v0.15.x+ · Issue #4863 · wled/WLED · GitHub

ESP32 has 2 HW assisted SPI peripherals: HSPI and VSPI. VSPI is used by Ethernet. Controllers that do not have Ethernet support could use VSPI, however no such attempt is made in bus_wrapper.

Other ESP32 variants have (AFAIK) different SPI peripherals and would need different #ifdefs for complete solution.

See NeoPixelBus’ SpiMethods.

This is the bug, right?

no, this is about limit of 2, which was done on purpose. your issue is the second one not working, which is a bug.

1 Like