Flash OpenDTU to an ESP32 Wroom
A few month ago I installed a small solar panel on my balcony which is attached to a Hoymiles inverter. To read out data from the inverter I use OpenDTU. For this I bought a kit from blinkyparts which is really easy to assemble and came with an already flashed ESP32 which was ready to use. This setup run fine till today my vaccum robot 🤖💥 decided to eat the cable of the ESP32 and in the process the USB connector was ripped of the board. So I had to replace the ESP32 and this time I had to flash and install OpenDTU myself. This process is documented below for my future self and others.
Flash OpenDTU to ESP Wroom-32
- Install esptool:
pip install esptool
- Download OpenDTU release from: https://github.com/tbnobody/OpenDTU/releases - for the ESP Wroom-32 use
- Attach ESP32 via USB cable to your computer
Find port used by the ESP32
ls -l /dev/tty*and look at the date e.g.
18 Nov 15:24to find the most recent attached device
- use this port in the following command, in my case
- Press hardware "Boot"-button on ESP32 before running following command. otherwise you get error
A fatal error occurred: Failed to connect to ESP32: Wrong boot mode detected (0x13)! The chip needs to be in download mode.
- Flash the ESP32 by running:
esptool.py --port /dev/tty.usbserial-0001 --chip esp32 --before default_reset --after hard_reset \ write_flash --flash_mode dout --flash_freq 40m --flash_size detect \ 0x0 opendtu-generic_esp32.factory.bin
- Connect to Access Point "OpenDTU-*"
Settings > Config Managementrestore ...
- if you have a backup of your previous config. Main Config contains Wifi SSID & Password, Inverter Setup, mqtt-config, ...
- I did not have a backup and therefore had to configure wifi, inverter and mqtt again.
- I used the pin mapping for the blinkyparts kit see https://github.com/tbnobody/OpenDTU/blob/master/docs/DeviceProfiles/blinkyparts_esp32.json
- After restoring the pin mapping the LEDs and the display worked. Under
Settings > Device-ManagerI selected the profile
NRF, Displayto turn off the LEDs because the annoyed me during night. To use the LEDs I could use
NRF, LEDs, Display
I hope I wont need to set up my OpenDTU in the forseeable future, but I don't know what my vaccum robot has in mind so as a final step I created a backup under
Settings > Config management for the Main Config (config.json). Be careful to place it at a secure location because it contains the secrets in plain text e.g. the wifi password.
- Documentation of OpenDTU https://github.com/tbnobody/OpenDTU
- Blinkyparts instruction for OpenDTU Breakout Board: https://binary-kitchen.github.io/SolderingTutorial/OpenDTU_Breakout/manual/OpenDTU_Breakout_en.pdf