Skip to content

Firmware Update

Nebojša Cvetković edited this page May 22, 2020 · 10 revisions

Disclaimer: Firmware updates bring added stability, bug fixes, and new features, and in most cases it is recommended that you update to the latest version. Unfortunately, due to the wide variety of possible configurations and relatively small user base, new problems in firmware updates can sometimes go undetected.

If the correct operation of the device is absolutely critical to you and you are perfectly happy with your current firmware version, feel free to continue using it. Otherwise, please consider updating to help provide feedback and let us continue to improve the software. It is always possible to follow the same process to flash back an older version of the firmware.

This guide describes how to update the ESP32 XBee with the latest firmware and optionally reset the device configuration, for both Windows and Linux.

Step 1: Download Latest Firmware

Go to the latest stable firmware release and download:

  • bootloader.bin
  • partition-table.bin
  • esp32-xbee.bin
  • www.bin

If you would like to reset the device configuration, also download:

  • wipe_config.bin

Step 2: Connect ESP32 XBee

Plug the ESP32 XBee into any XBee programming device, e.g. XBee Explorer or SimpleRTK2B, and then connect that device to your PC.

Hold the BOOT button on the ESP32 XBee:

BOOT button location

Then press and release the RESET button on the XBee programming device:

RESET button location XBee Explorer RESET button location SimpleRTK2B

If the LED on the ESP32 is no longer flashing, it is now ready for firmware download.

If you are using the SimpleRTK2B, make sure you have disabled all UART2 output on the ZED-F9P as it will interfere with the flashing process. To confirm this, check that the GPS -> XBee LED on the SRTK2B is not flashing.

Be careful: If you hold the BOOT button for 5 seconds without pressing the RESET button, the ESP32 will perform a Full Reset and all settings will go back to their default values.

Proceed to the Windows or Linux sections.

Windows

Step 3: Download Flashing Tool

Download "Flash Download Tools (ESP8266 & ESP32)" from Espressif, extract and run.

Select ESP32 DownloadTool:

Flash tool menu

Step 4: Load Firmware

In the flashing tool, click on the 3 dots beside the empty input boxes and load the previously downloaded files exactly as shown below.

Flashing configuration

It is important that the offsets exactly match the files:

  • bootloader.bin @ 0x1000
  • partition-table.bin @ 0x8000
  • esp32-xbee.bin @ 0x10000
  • www.bin @ 0x210000

If you would like to reset the device configuration, also include:

  • wipe_config.bin @ 0x0

All other options should be exactly as above, except for the COM port and exact file paths which will be different on your PC.

Step 5: Flash Firmware

Press the START button and wait for flashing to complete.

Flashing complete

Step 6: Restart ESP32 XBee

If the LED has not already started flashing, press the XBee RESET button and the ESP32 will restart with the latest firmware installed.

Linux

Step 3: Install Flashing Tool

If you have not already done so, install the ESP flashing tool, esptool:

Ubuntu/Debian: sudo apt-get install esptool

Arch: sudo pacman -S esptool

Step 4: Flash Firmware

Navigate to the directory where you downloaded the firmware files to.

Run the following command (or adjust for different file paths):

esptool.py -b 460800 --after hard_reset write_flash --flash_mode dio --flash_freq 40m --flash_size 4MB 0x8000 partition-table.bin 0x1000 bootloader.bin 0x10000 esp32-xbee.bin 0x210000 www.bin

If you would like to reset the device configuration, also include:

0x0 wipe_config.bin

The flashing tool will run and should give an output similar to:

esptool.py v2.8
Found 1 serial ports
Serial port /dev/ttyUSB0
Connecting....
Detecting chip type... ESP32
Chip is ESP32D0WDQ5 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 4c:11:ae:6e:30:6c
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Compressed 3072 bytes to 110...
Wrote 3072 bytes (110 compressed) at 0x00008000 in 0.0 seconds (effective 1540.7 kbit/s)...
Hash of data verified.
Compressed 17216 bytes to 11168...
Wrote 17216 bytes (11168 compressed) at 0x00001000 in 1.0 seconds (effective 138.8 kbit/s)...
Hash of data verified.
Compressed 788768 bytes to 493546...
Wrote 788768 bytes (493546 compressed) at 0x00010000 in 43.9 seconds (effective 143.8 kbit/s)...
Hash of data verified.
Compressed 1048576 bytes to 93902...
Wrote 1048576 bytes (93902 compressed) at 0x00210000 in 8.4 seconds (effective 1004.1 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

Step 5: Restart ESP32 XBee

If the LED has not already started flashing, press the XBee RESET button and the ESP32 will restart with the latest firmware installed.