Repository navigation
4. Upgrading
Roland Jax edited this page Oct 18, 2026
·
2 revisions
Legacy note: ESP8266-based adapters (HW v4.1 and older) are no longer supported. Their procedures below are archived as-is for adapters still in the field; current hardware (ESP32-C3, HW v5.0+) uses the web interface, OTA, or USB paths.
There are the following options:
- over the network (OTA)
-
using web interface
- easiest
-
using platform.io
- heavier option - it will compile the firmware from source code and upload using internall tooling
-
using espota.py
- lightweight - just needs OTA script and precompiled firmware file
-
using web interface
- physically using a USB-TTL adaptor or device USB port (HW v5.0+)
- open web interface of the device by IP or on: http://esp-ebus.local
- find the update link
- upload correct firmware file (see hardware revisions) - use version WITHOUT
fullflashkeyword - click
Updatebutton - wait for restart, reconnect to adapter and configure WiFi if not connected automatically
- in case you cannot open web interface, reset device to access it
- clone this repository using git
pip3 install platformio- check for correct firmware file (see hardware revisions)
- inside the project folder run:
- for firmware-HW_v3.x.bin:
pio run -e esp12e-v3.0-ota -t upload(legacy, ESP8266) - for firmware-HW_v4.x.bin:
pio run -e esp12e-ota -t upload(legacy, ESP8266) - for firmware-HW_v5.x.bin:
pio run -e esp32-c3-ota -t upload
- for firmware-HW_v3.x.bin:
- you need python installed in your computer
- download espota.py script
- for Windows, you can download espota.exe from esp32-xx.zip - it is located in
toolsfolder
- for Windows, you can download espota.exe from esp32-xx.zip - it is located in
- download firmware according to your hardware version from https://github.com/danielkucera/esp-ebus/releases
- use port number:
- 3232 - for esp32-c3 (HW from v5.0 up)
- 8266 - for esp8266 (HW up to v4.1, legacy)
- to upgrade, run:
$ python3 espota.py -i esp-ebus.local -f <FIRMWARE_FILE_NAME> -p <PORT_NUMBER> -r -d
16:33:23 [DEBUG]: Options: {'esp_ip': 'esp-ebus.local', 'host_ip': '0.0.0.0', 'esp_port': 8266, 'host_port': 47056, 'auth': '', 'image': 'firmware.bin', 'spiffs': False, 'debug': True, 'progress': True}
16:33:23 [INFO]: Starting on 0.0.0.0:47056
16:33:23 [INFO]: Upload size: 380320
16:33:23 [INFO]: Sending invitation to: esp-ebus.local
16:33:23 [INFO]: Waiting for device...
Uploading: [============================================================] 100% Done...
16:33:30 [INFO]: Waiting for result...
16:33:31 [INFO]: Result: OK
- this version has built-in USB serial interface
- download
firmware-fullflash-*firmware from https://github.com/danielkucera/esp-ebus/releases - connect
PROGandGND - connect adapter to a PC using USB-A - USB-C cable
- you should see a new serial port
- flash the firmware to address 0x0 using either one of tools:
- Web based: https://adafruit.github.io/Adafruit_WebSerial_ESPTool/
- Windows: using Flash Download Tools from https://www.espressif.com/en/support/download/other-tools
- Linux esptool.py:
esptool.py write_flash 0x0 firmware-fullflash-*
Archived for ESP8266-based adapters still in the field. No longer supported. You will need an USB-TTL adaptor (dongle) which suports 3V3 voltage levels and has 3V3 voltage output pin
- download firmware bin file from https://github.com/danielkucera/esp-ebus/releases
- download NodeMCU PyFlasher from https://github.com/marcelstoer/nodemcu-pyflasher/releases
- using a wire connect pins
PROGandTP3 - connect your adaptor in a following way (dongle - module):
- 3V3 <-> 3V3
- TX <-> ESP-RX
- RX <-> ESP-TX
- GND <-> GND
- now connect the dongle to your PC - you should see two red LEDs on, blue should flash briefly and stay off (v4.0+)
- open NodeMCU PyFlasher and select your firmware file and serial port
- click Flash NodeMCU and watch the progress in Console
- if that doesn't work, connect also TP1 to 3V3 and try again (see Issue #27)