Introduction
This guide presents update methods for Meshtastic-compatible devices, focusing mainly on ESP32 boards such as LILYGO, Heltec, and Seeed Studio.
Whenever possible, it’s worth prioritizing updates via USB cable. Wired connections tend to offer more stability during the firmware flashing process.
Before you start
Before updating, it’s important to identify:
- the exact board model
- the architecture used
- a compatible build
- a USB cable with data transmission
- the state of the power supply
- the available flashing method
Most update problems happen due to incorrect firmware selection or USB communication failures.
During the process, it’s also worth avoiding:
- unpowered USB hubs
- unstable cables
- accidental disconnections
- power fluctuations
Interruptions during flashing can corrupt the device’s flash memory.
Update via browser (Web Flasher)
Currently, the simplest update method is the Web Flasher.
Meshtastic Web Flasher Meshtastic (official documentation)
This system uses WebUSB to allow the browser to flash the firmware directly onto the device, reducing the need for command-line tools.
The flow usually consists of:
- connecting the board via USB
- accessing the web flashing environment
- selecting the correct model
- choosing the firmware version
- starting the update
Chromium-based browsers tend to offer better compatibility, especially:
- Google Chrome
- Microsoft Edge
- Opera
Stable, Beta, and Alpha
Meshtastic firmware is normally distributed across different channels.
Stable
The most stable versions for everyday use and continuous networks.
Beta
Versions with recent features still being validated.
Alpha
Experimental versions used mainly for testing and development.
In networks with multiple nodes, keeping compatible versions helps avoid inconsistent behavior.
Full erase
Some updates allow previous settings to be preserved. In other cases, it may be necessary to perform a “Full Erase,” completely wiping the flash memory.
This procedure is usually recommended when:
- there is incompatibility between versions
- the device enters a boot loop
- settings have been corrupted
- a previous update failed
After a full erase, the device will need to be configured again.
Particularities in Linux environments
esptool.py (official ESP32 tool) ModemManager
On Linux systems, it’s relatively common to find limitations related to USB permissions and access to serial ports.
Among the most frequent cases:
- the browser can’t access the board
- the serial port remains blocked
- conflicts with ModemManager
- sandbox restrictions in Snap or Flatpak browsers
Depending on the distribution used, it may be necessary to add permissions related to the groups:
dialoutuucp
It’s also common to find devices using USB chips such as:
CP210x drivers (Silicon Labs) CH340 drivers (WCH)
Low-level tools
Besides the Web Flasher, there are also update methods using low-level tools.
Among the most common:
esptool.pyfor ESP32- UF2 drag-and-drop mode on some nRF52 boards
These methods offer greater control over:
- partitioning
- manual flash wiping
- device recovery
- individual binary flashing
They are also commonly used when the browser doesn’t correctly recognize the board.
Compatibility between hardware and firmware
Not all devices support every available firmware version.
The most common limitations are related to:
- available memory
- power management
- processing capacity
- radio support
- internal storage space
Before updating multiple devices on the same network, it’s worth checking the compatibility of the chosen version with the different hardware present in the mesh.
Further reading
To better understand how hardware, LoRa, and firmware work together within the Meshtastic ecosystem:
