SM16716 LED driver

Component

The SM16716 component represents a SM16716 LED diver chain (SM16716 description, SM16716 description) in ESPHome. Communication is done with two GPIO pins (MOSI and SCLK) and multiple driver chips can be chained. It is used in some smart light blubs:

  • Feit Electric A19 Smart WiFi Bulb
  • Merkury Innovations A21 Smart Wi-Fi Bulb

To use the channels of this components, you first need to setup the global sm16716 hub and give it an id, and then define the individual output channels.

# Example configuration entry
sm16716:
  data_pin: GPIO14
  clock_pin: GPIO4
  num_channels: 3
  num_chips: 1

# Individual outputs
output:
  - platform: sm16716
    id: output_red
    channel: 0
  - platform: sm16716
    id: output_green
    channel: 1
  - platform: sm16716
    id: output_blue
    channel: 2

Configuration variables:

  • data_pin (Required, Pin Schema): The pin used for MOSI.
  • clock_pin (Required, Pin Schema): The pin which SCLK is connected to.
  • num_channels (Optional, int): Total number of channels of the whole chain. Must be in range from 3 to 255. Defaults to 3.
  • num_chips (Optional, int): Number of chips in the chain. Must be in range from 1 to 85. Defaults to 1.
  • id (Optional, ID): The id to use for this sm16716 component. Use this if you have multiple SM16716 chains connected at the same time.

Driver Output

The SM16716 output component exposes a SM16716 channel of a global Component as a float output.

# Example configuration entry
sm16716:
  data_pin: GPIO14
  clock_pin: GPIO4
  num_channels: 3
  num_chips: 1

# Individual outputs
output:
  - platform: sm16716
    id: output_red
    channel: 0
  - platform: sm16716
    id: output_green
    channel: 1
  - platform: sm16716
    id: output_blue
    channel: 2

Configuration variables:

  • id (Required, ID): The id to use for this output component.
  • channel (Required, int): Chose the channel of the SM16716 chain of this output component.
  • sm16716_id (Optional, ID): Manually specify the ID of the Component. Use this if you have multiple SM16716 chains you want to use at the same time.
  • All other options from Output.

Feit Electric A19 Smart WiFi Bulb

This component can be used with a Feit Electric A19 smart light blub. You can use tuya-convert to flash the bulb. The cold white LEDs are connected to PWM1 and the warm white LEDs are connected to PWM2. The RGB LEDs are connected to a SM16716 chip that is connected to GPIO4 for clock, GPIO14 for data, and GPIO13 for power. A complete configuration for a Feit Electric A19 looks like:

esphome:
  name: <NAME_OF_NODE>
  platform: ESP8266
  board: esp01_1m

wifi:
  ssid: <YOUR_SSID>
  password: <YOUR_WIFI_PASSPHRASE>

api:

logger:

ota:
  password: <YOUR_OTA_PASSWORD>

sm16716:
  data_pin: GPIO14
  clock_pin: GPIO4
  num_channels: 3
  num_chips: 1

output:
  - platform: sm16716
    id: output_red
    channel: 0
    power_supply: rgb_power
  - platform: sm16716
    id: output_green
    channel: 1
    power_supply: rgb_power
  - platform: sm16716
    id: output_blue
    channel: 2
    power_supply: rgb_power
  - platform: esp8266_pwm
    id: output_cold_white
    pin: GPIO5
  - platform: esp8266_pwm
    id: output_warm_white
    pin: GPIO12

light:
  - platform: rgbww
    name: ${friendly_name}
    id: light
    red: output_red
    green: output_green
    blue: output_blue
    cold_white: output_cold_white
    warm_white: output_warm_white
    cold_white_color_temperature: 6500 K
    warm_white_color_temperature: 2700 K

power_supply:
  - id: rgb_power
    pin: GPIO13

Note

The white LEDs are much brighter than the color LEDs and will fully overpower the set color when the white level is set even a little bit high. You will need to set the white level to 0 in order to get usable colors from this bulb.