Browse Source

Update FLASHING.md

A few updates to the flashing docs.
pull/3/head
Maurice Makaay 3 years ago
committed by GitHub
parent
commit
7c3ee035d8
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 51 additions and 11 deletions
  1. +51
    -11
      doc/FLASHING.md

+ 51
- 11
doc/FLASHING.md View File

@ -86,12 +86,22 @@ to find another way to attach GPIO0 to ground. Some options:
power supply. After booting, the wire can be removed. This is very fiddly power supply. After booting, the wire can be removed. This is very fiddly
way of doing it, but I did it a few times and it can be done. way of doing it, but I did it a few times and it can be done.
- You could opt for temporarily soldering a lead between GND and GPIO0 on
the board, making GPIO0 pulled to ground permanently. It is a bit less
flexible than some other options, but if you only need to do the initial
backup and firmware flash of the device, then this can bee all that you
need. Remove the lead after flashing is done, otherwise the device won't
boot in normal mode.
## Download and install esptool ## Download and install esptool
See: https://github.com/espressif/esptool/blob/master/README.md#installation--dependencies See: https://github.com/espressif/esptool/blob/master/README.md#installation--dependencies
## Make a backup of the current firmware ## Make a backup of the current firmware
Here's an example on how to backup the original firmware from Linux. First,
unplug your device's power supply, then start the esptool read_flash command:
``` ```
python esptool.py -p /dev/ttyUSB0 read_flash 0x0 0x400000 original-yeelight-firmware.bin python esptool.py -p /dev/ttyUSB0 read_flash 0x0 0x400000 original-yeelight-firmware.bin
``` ```
@ -100,30 +110,60 @@ python esptool.py -p /dev/ttyUSB0 read_flash 0x0 0x400000 original-yeelight-firm
is used by the adapter by running `dmesg` after plugging in the USB device. is used by the adapter by running `dmesg` after plugging in the USB device.
On Windows this is often `COM1`, `COM2` or `COM3`. On Windows this is often `COM1`, `COM2` or `COM3`.
Now plug in the power supply. The output of esptool should now show that it
connects to the device and downloads the firmware from it.
**Caution**: You will find the WLAN SSID and Password of the latest used WiFi in **Caution**: You will find the WLAN SSID and Password of the latest used WiFi in
this file.
this file. Therefore, keep this backup in a safe place.
**After each step with esptool, you have to unplug you power line and connect it again.**
## Restore the backed up firmware
In case you need to rollback to the device's original firmware at some point,
here's an example of how to restore the original firmware from Windows, by fully
flashing it back onto the device.
First, unplug your device's power supply, then start the esptool write_flash command:
```
python.exe .\esptool.py --chip esp32 --port COM3 --baud 115200 write_flash 0x00 original-yeelight-firmware.bin
```
Make sure that GPIO0 is connected to GND and plug in the power supply.
The output of esptool should now show that it connects to the device and uploads
the firmware to it. Be patient after the upload reaches 100%. The output is
silent for a while, but esptool tool is verifying if the firmware was uploaded
correctly.
After the firmware was uploaded, unplug the power, disconnect GPIO0 from GND and
reconnect the power to boot into the restored firmware.
## Flash new firmware ## Flash new firmware
Setup an ESPHome Project, see [README.md](../README.md) Setup an ESPHome Project, see [README.md](../README.md)
Compile the firmware for the device and download the `firmware.bin` file
to the device to which the serial adapter is connected.
You can flash the device using esphome or esptool. You can flash the device using esphome or esptool.
I normally use the [esphome-flasher](https://github.com/esphome/esphome-flasher) I normally use the [esphome-flasher](https://github.com/esphome/esphome-flasher)
tool, which is an easy to use utility app for flashing ESPHome devices.
tool, which is a very easy to use GUI utility app for flashing ESPHome devices:
If you want to flash with esptool, compile with esphome and download the
generated firmware.
- In the app, select the COM port of your serial adapter
- Also select the firmware.bin file to flash onto the device
- Power up the device with GPIO0 connected to GND
- Click the "Flash ESP" button to flash the firmware.
If you want to flash with esptool, you can use:
``` ```
python.exe .\esptool.py --chip esp32 --port COM3 --baud 115200 write_flash 0x1000 <yourfile.bin>
python.exe .\esptool.py --chip esp32 --port COM3 --baud 115200 write_flash 0x1000 <path\to\yourfirmware.bin>
``` ```
Once your firmware has been flashed, unplug the power and the serial USB Adapter.
Then plug the power back in to boot the device using its new firmware.
From here on, it is possible to flash the device OTA via ESPHOME. Tuck
away those soldered wires in the bottom and add the bottom cover back on.
After flashing, power down the device, disconnect GPIO0 from GND and reconnect
the power to boot into the ESPHome firmware.
From here on, it is possible to flash the device OTA (over the air, which
means that the firmware is uploaded over WiFi) from ESPHome. Therefore, it
is now time to tuck away or remove those soldered wires and add the bottom
cover back on.
## Troubleshooting flash ## Troubleshooting flash
@ -143,7 +183,7 @@ python esptool.py --chip esp32 -p /dev/ttyUSB0 --baud 115200 --before default_r
You will find the missing tasmota boot files here: You will find the missing tasmota boot files here:
https://github.com/arendst/Tasmota/tree/firmware/firmware/tasmota32/ESP32_needed_files https://github.com/arendst/Tasmota/tree/firmware/firmware/tasmota32/ESP32_needed_files
User @tabacha was not able to use tasmota with the bedside lamp 2.
*Note: user @tabacha was not able to use tasmota with the bedside lamp 2.*
(remember that the [esphome-flasher](https://github.com/esphome/esphome-flasher) (remember that the [esphome-flasher](https://github.com/esphome/esphome-flasher)
will give you a bit less of a hard-core experience during flashing) will give you a bit less of a hard-core experience during flashing)


Loading…
Cancel
Save