Switchbot LED strip - ESP32-C3 - ESPHome

I didn’t see this posted anywhere online, but the SwitchBot led strip uses an ESP32-C3 just like their other devices (plug, lightbulb)

It is possible that the switchbot OTA process works to convert it to tasmota or ESPHome, but I didn’t do that. It also has the pins available for flashing. With ESPHome you can use the bluetooth proxy

The photo doesn’t show the pins, but they look like this

GND IO9 RX
VCC EN TX

(the pin spacing is smaller than normal)

In order to flash, simply connect IO9 to ground to start the bootloader.

here is my basic esphome configuration (does not include Bluetooth proxy, or mapping for the physical buttons yet)

esphome:
  name: switchbotledstrip
  friendly_name: switchbotledstrip
  platformio_options:
    board_build.mcu: esp32c3
    board_build.variant: esp32c3  
# added the line below to prevent bootloops when flashing modern bin via serial
    board_build.flash_mode: dio   

esp32:
  variant: ESP32C3
  board: esp32-c3-devkitm-1
  framework:
    type: esp-idf
    sdkconfig_options:
      CONFIG_BT_BLE_50_FEATURES_SUPPORTED: y
      CONFIG_BT_BLE_42_FEATURES_SUPPORTED: y
      CONFIG_ESP_TASK_WDT_TIMEOUT_S: "10" 
    
# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
  - platform: esphome
    password: "PASSWORD"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Switchbotled Fallback Hotspot"
    password: "password"

# Individual outputs
output:
 - platform: ledc
   id: output_5
   pin: 5
 - platform: ledc
   id: output_6
   pin: 6
 - platform: ledc
   id: output_7
   pin: 7

light:
  - platform: rgb
    restore_mode: RESTORE_DEFAULT_OFF
    name: LEDSTRIP
    red: output_6
    green: output_5
    blue: output_7

captive_portal: