Analog Led strip - 12 channels - ESP32. Maximum output channels?

heyo! i am working on a board for fun to control 3 RGBW 5050 analog strips.

Wondering if there are any pins that I should not use to do this? Is there a maximum output of analog leds you can do with WLED??

I know GPIO6 - GPIO11 are used for internal flash thats a no no.

Im thinking bout using GPIO16-GPIO33. (based on this site: ESP32 Pinout Reference: Which GPIO pins should you use? | Random Nerd Tutorials)

I know that the ESP32 can do 16 channels of PWM, and apparently you ~can~ use any 16 of 25 GPIO pins, but im wondering if:

a) someone has already done this
b) if not, what are the pitfalls of this approach?

thank you!


Unless you have a WROVER chip with extra PSRAM, in general you’re good with GPIOs 2,4,5 and 12-23, 25-27, 32-33.

2 and/or 5 might cause issues as they’re often attached to an onboard status LED that might or might not cause you issues. Watch out for relay, IR, and button assignments as well.

As to WLED it certainly will let you configure that many channels, definitely worth a try especially as the CPU power to drive those lines should be rather low compared to addressable devices.
You’re really only driving a total of 12 independent LEDs in that setup (from the MCU’s POV).

There are 16 LEDC channels capable of PWM on ESP32. Please consult ESP32 mux matrix which GPIO support muxing those.

“LEDC channels are divided into two groups of 8 channels each. One group of LEDC channels operates in high speed mode. This mode is implemented in hardware and offers automatic and glitch-free changing of the PWM duty cycle. The other group of channels operate in low speed mode, the PWM duty cycle must be changed by the driver in software. Each group of channels is also able to use different clock sources.”

awesome thank you @divsys and @blazoncek

Im glad you mentioned the esp32 documentation cause I read all about the LEDC (LED Control (LEDC) - ESP32 - — ESP-IDF Programming Guide latest documentation)
and the GPIO matrix and pin muxing (GPIO Matrix and Pin Mux — Arduino-ESP32 2.0.2 documentation)

I had no idea! Thank you, these provide valuable insight. Ill be building my device soon so ill let you know how it goes.