I was having stability issues with WiFi, and the Yeelight intergration of Home Assistant. After searching Google for information on how to flash this kind of led strip I found no results. So I tried it myself. And success! In this post I’m going to show you exactly how I did it.
The led strip has no screws or anything. The best way to open it is to pry a screwdriver in between the two layers of plastic. It will open easily.
We want to re-program the ESP on the PCB. Yeelight left us some test points on the PCB we can use 🙂 Solder some wires to the following points, and connect them to the FTDI:
PCB -> FTDI
substitutions:
name: yeelight-s1
esphome:
name: ${name}
esp32:
board: esp32doit-devkit-v1
framework:
type: esp-idf
sdkconfig_options:
CONFIG_FREERTOS_UNICORE: y
advanced:
ignore_efuse_mac_crc: true
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
password: ""
wifi:
ssid: ""
password: ""
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Yeelighjt-S1"
password: "QVZf6CAx3rwf"
output:
- platform: ledc
pin: GPIO13
id: output_red
- platform: ledc
pin: GPIO14
id: output_green
- platform: ledc
pin: GPIO5
id: output_blue
light:
- platform: rgb
name: "${name} rgb light"
red: output_red
green: output_green
blue: output_blue
gamma_correct: 0
To flash the ESP on the board you need to connect test point IO0 to GND when powering on. This will start the ESP in flash mode. Now you can use ESPHome to flash the firmware. I used the option “Plug into this computer”. Select the FTDI, and start flashing! The software can take a while to compile and upload. So be patient.
After you have successfully flashed the ESP, disconnect power and reconnect power to reboot. Verify in ESPHome that the new device is online. Now desolder the test points and test the led strip by connecting the original power supply.
View Comments
Hi Wouter,
dank u wel for the tutorial. Yesterday, I flashed my light strip that was literally burried in a closet for over two years. The flashing process was easy, but unfortunately the case cover was glued, so there was no chance to open it without destroying the case. Hope I can find a 3D print file to replace it...
I also realised that the button no longer works. Is this expected?
Best,
H.
output:
- platform: ledc
pin: GPIO13
id: output_red
- platform: ledc
pin: GPIO14
id: output_green
- platform: ledc
pin: GPIO5
id: output_blue
light:
- platform: rgb
id : main_led
name: "${name} rgb light"
red: output_red
green: output_green
blue: output_blue
gamma_correct: 0
- platform: status_led
id: stat_blue_led
name: "Switch blue led state"
pin:
number: GPIO4
inverted: yes
- platform: status_led
id: stast_orange_led
name: "Switch orange led state"
pin:
number: GPIO16
inverted: yes
binary_sensor:
- platform: gpio
pin:
number: GPIO19
inverted: yes
name: "Button"
on_press:
then:
- light.toggle: main_led