ESP8266 -> PCA9685 -> partition -> groups of RGB possible?

Programming noob here. I’ve got some Arduino sketches up and running but that’s about it. Electronics-wise however, I do everything in the analog world at work and at home, “full-stack” analog development engineer if you could say that.

Girlfriend ordered a “raising rainbow over the horizon in the morning to wake me up gently”. No worries, a few meters of side-emitting RGB strip in “neon” configuration, some 3D-printing to make a holder on the wall for the entire contraption, a custom PCB for the MCU+LED driving and… software. My Achilles’ heel.

If it weren’t for the need to connect her schedule via Home Assistant to set the alarm time dynamically, I would have made it with an MCU with enough outputs of it’s own and done everything as an Arduino sketch as a stand-alone product. I’ve managed to make an ESP8266 connect to HA via MQTT for a single RGB group, but for this I need to create at least 7 RGB groups which HA will have individual access to (assuming the animation resides in HA).

Reading up on Light Partition — ESPHome, it seems possible with standard libraries, but I would like to ask if there are some software limitations I should be aware of before designing the boards, order and solder? Can one host expose 7 or more RGB groups to HA using ESPhome and the partition feature?

Hardware setup would ESP8266 → I2C → two PCA9685 at different addresses → at least 21 output channels, grouped as 7 RGB groups.

Fallback would be seven ESP8266 with WLED running on each. Crude, but would do the job.

Before I rebuilt my landscape lighting controller I used to use a pca9685 and had used 11 channels on it plus a 15’ ws2811 led strip and around 800 ws2811 led’s along my roof line. I ran all that without issues on an esp8266 NodeMCU.

When you ask about using partition, I assume you mean you want to combine the 7 groups opposed to splitting up the lights more? I havnt used partition a lot but you’re less likely to have issues combining lights than if you were splitting lights. You can split lights, you just dont want to get carried away as it will quickly push the esp board to its limits and start acting up.

I’m not using partition now or the pca9685 but, I am operating 10 monochromatic lights directly from an esp8266 with 0 problems so I’d say you’ll be just fine with 7 channels.


  - platform: esp8266_pwm
    pin: GPIO10 
    id: white_accent 
    inverted: false  

  - platform: esp8266_pwm 
    pin: GPIO5 #D1
    id: arbor    

  - platform: esp8266_pwm
    pin: GPIO14 #D5
    id: fence  

  - platform: esp8266_pwm
    pin: GPIO13 #D7
    id: pinklace  

  - platform: esp8266_pwm
    pin: GPIO15 #D8
    id: fireglow
  - platform: esp8266_pwm
    pin: GPIO3 #RX
    id: crimson

  - platform: esp8266_pwm
    pin: D0 #D4
    id: arborvitae

  - platform: esp8266_pwm
    pin: GPIO0 #D3
    id: jordan

  - platform: esp8266_pwm
    pin: GPIO1 #TX
    id: out12     

  - platform: esp8266_pwm
    pin: GPIO12 #D6
    id: bloodgood        

Some how I missed it was 2 pca9685 and 20 something channels. I havnt went that big personally but, I am still confident youll be just fine. Im not sure how you’re installing the lights but combining strips is always an option if you dont have to wire them individually too.


I don’t want to combine 7 RGB groups, I want to expose all of them individually to HA. With WLED, I could only expose one group (might be possible with user mod, but beyond my skill level).

Another alternative would be to not expose groups at all but rather have pre-programmed scenes/effects, “rainbow rise”, “sunrise”, “sunset” and so on and do everything locally. If it was just an Arduino sketch, I could probably do it, but I would need to rely on ready-made examples and modify them to make it run under ESPHome.