As you know the default firmware for ANAVI Gas Detector is available in a free and open source Arduino sketch on GitHub. In a previous update we explained how to build it from source and upload it on ANAVI Gas Detector through Arduino IDE. However, this is time consuming and requires a lot of configurations. If you just need to get the latest stable version of the firmware, the fastest and easiest way is to download a pre-compiled binary and flash it with esptool.
The same approach is valid for our other open source hardware boards: ANAVI Thermometer, ANAVI Light Controller and ANAVI Miracle Controller. Recently I have published a short video tutorial with the exact steps. Although, in the video ANAVI Thermometer is used, the approach is the also the same for ANAVI Gas Detector due to the significant hardware similarities such as the ESP8266 MCU and the RESET button.
Esptool is a free and open source ESP8266 and ESP32 serial bootloader command-line utility. The source code is available at GitHub under GPLv2 license. It is written in Python therefore it is universal and runs on Microsoft Windows, Mac OS and any GNU/Linux distribution (Ubuntu, Debian, Linux Mint, Fedora, CentOS, OpenSUSE, etc).
As of today, esptool works fine with Python 2.7 or Python 3. However, Python 2 has been deprecated since January 1, 2020 therefore it is recommended to use esptool with Python 3.
The easiest way to install the latest stable version of esptool is from pypi via pip. The pre-requirements are to have Python and pip installed. Open a terminal and execute the following command:
pip install esptool
Using write_flash argument esptool flashes pre-compiled binary to devices with ESP8266 or ESP32. ANAVI Gas Detector is with ESP8266. Here are the exact steps:
esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 firmware.bin
Apart from flashing firmware to ESP8266 and ESP32 devices, esptool has a lot of other advanced features which I encourage you to explore. Have a look at the video tutorial and run
esptool.py -h to learn more.