Hi all,
I want to share my specific setup and outcome, in case it helps others or if somebody can help me to get the best practises implemented.
My setup:
- ESPHome 2025.11.5
- ESP32 (Wemos D1 Mini ESP32)
- 5 × SK6812 RGBW LED strips (GRBW)
- Each strip on its own GPIO
- Hardware RMT intended (not bit-banging)
Code with esp32_rmt_led_strip
light:
# ZIJDE 1 (GPIO 16)
- platform: esp32_rmt_led_strip
chipset: SK6812
id: lightvoor
pin: GPIO26
num_leds: 12
rgb_order: GRB
is_rgbw: True
rmt_symbols: ${rmt_symbols}
name: "Zuil 4 - voor"
default_transition_length: 0s
# ZIJDE 2 (GPIO 17)
- platform: esp32_rmt_led_strip
chipset: SK6812
id: lightlinks
pin: GPIO18
rgb_order: GRB
is_rgbw: True
num_leds: 12
rmt_symbols: ${rmt_symbols}
name: "Zuil 4 - links"
default_transition_length: 0s
# ZIJDE 3 (GPIO 18)
- platform: esp32_rmt_led_strip
chipset: SK6812
id: lightachter
pin: GPIO19
rgb_order: GRB
is_rgbw: True
num_leds: 12
rmt_symbols: ${rmt_symbols}
name: "Zuil 4 - achter"
default_transition_length: 0s
# ZIJDE 4 (GPIO 19)
- platform: esp32_rmt_led_strip
chipset: SK6812
id: lightrechts
pin: GPIO23
num_leds: 12
rgb_order: GRB
is_rgbw: True
rmt_symbols: ${rmt_symbols}
name: "Zuil 4 - rechts"
default_transition_length: 0s
# ZIJDE 4 (GPIO 19)
- platform: esp32_rmt_led_strip
chipset: SK6812
id: lightboven
pin: GPIO5
num_leds: 14
rgb_order: GRB
is_rgbw: True
rmt_symbols: ${rmt_symbols}
name: "Zuil 4 - boven"
default_transition_length: 0s
Problem:
Using esp32_rmt_led_strip, the last light consistently failed at boot with:
esp32_rmt_led_strip.light is marked FAILED: unspecified
(tried everything with rmt_symbols 32/48/64/92)
This happened without compile errors and regardless of GPIO choice or LED count.
Working solution:
I switched to neopixelbus, still using ESP32 RMT, with fixed RMT channels per strip.
light:
# ZIJDE 1 (GPIO 16)
- platform: neopixelbus
id: lightvoor
type: GRBW
variant: SK6812
method:
type: ESP32_RMT
channel: 0
pin: GPIO26
num_leds: 12
name: "Zuil 4 - voor"
default_transition_length: 0s
# ZIJDE 2 (GPIO 17)
- platform: neopixelbus
id: lightlinks
type: GRBW
variant: SK6812
method:
type: ESP32_RMT
channel: 1
pin: GPIO18
num_leds: 12
name: "Zuil 4 - links"
default_transition_length: 0s
# ZIJDE 3 (GPIO 18)
- platform: neopixelbus
id: lightachter
type: GRBW
variant: SK6812
method:
type: ESP32_RMT
channel: 2
pin: GPIO19
num_leds: 12
name: "Zuil 4 - achter"
default_transition_length: 0s
# ZIJDE 4 (GPIO 19)
- platform: neopixelbus
id: lightrechts
type: GRBW
variant: SK6812
method:
type: ESP32_RMT
channel: 3
pin: GPIO23
num_leds: 12
name: "Zuil 4 - rechts"
default_transition_length: 0s
# ZIJDE 4 (GPIO 19)
- platform: neopixelbus
id: lightboven
type: GRBW
variant: SK6812
method:
type: ESP32_RMT
channel: 4
pin: GPIO5
num_leds: 14
name: "Zuil 4 - boven"
default_transition_length: 0s
I assigned channels 0–4 to the five strips.
Result:
- All 5 LED strips initialize correctly
- No FAILED components
- Stable operation
This still uses hardware RMT, just via neopixelbus instead of esp32_rmt_led_strip.
Is there a way to achieve this same RMT channel sharing and allocation control using the native esp32_rmt_led_strip platform? I would prefer to use the native component if possible.
