Meshtastic Firmware Guide
Firmware updates take about 5 minutes with the web flasher. Update when there's a fix you need, not reflexively — if your mesh is working, there's no rush.
Current Firmware
Meshtastic firmware is actively developed with regular releases. The project follows a channel-based release model — stable for production use, alpha for testing new features.
How to Check Your Current Version
Open the Meshtastic app (Android or iOS), connect to your device via Bluetooth, and tap the device name at the top. The firmware version is shown on the device info screen. You can also check via the Python CLI using meshtastic --info.
Firmware Channels Explained
Meshtastic uses a channel-based release model.
Stable
The safe choice. If you have nodes deployed somewhere you can't easily reach, run stable. These builds have been through the alpha cycle and community testing first.
Recommended for most usersAlpha
Pre-release builds with new features that haven't been fully vetted. May contain bugs. Useful for testing upcoming features or if you need a specific fix that hasn't made it to stable yet.
For testers and early adoptersCustom firmware: Community-built firmware variants like Meshtastic-diy exist for specific hardware configurations. These are not officially supported but may offer features or optimizations for niche use cases. Only use custom firmware if you understand the tradeoffs.
Should I Update?
Update When:
- A security fix is released
- A bug you've experienced is fixed in the release notes
- You want a new feature (e.g., new device role, module improvement)
- You're setting up a new device for the first time
- Your version is more than 2 major releases behind
Wait When:
- Your current setup works perfectly and you don't need new features
- The release is alpha and you depend on stability
- You're running a remote router that's hard to access physically
- You're about to leave for a trip and don't want to risk issues
Update Methods
Method 1: Web Flasher
The easiest way to update. No software to install — works directly in Chrome or Edge via WebSerial.
- 1 Open flasher.meshtastic.org in Chrome or Edge
- 2 Connect your device via USB (must be a data cable, not charge-only)
- 3 Select your device type from the dropdown (Heltec V3, T-Beam, RAK4631, etc.)
- 4 Choose firmware channel (Stable or Alpha) and click Flash
- 5 Wait 1-3 minutes — the flasher shows progress
Full erase option: The flasher offers a "Full Erase and Install" option that wipes all settings. Use this for major version jumps or if your device is acting strangely. For minor updates, a normal flash preserves your settings (node name, channels, radio config).
Method 2: Python CLI
For users comfortable with the terminal. Useful for scripting updates across multiple devices.
pip install meshtastic meshtastic --flashThe CLI auto-detects your device and downloads the latest stable firmware. To flash a specific version:
meshtastic --flash --firmware-version 2.x.xSee the CLI Guide for full command reference and installation instructions.
Method 3: OTA via App
The Meshtastic Android app supports over-the-air firmware updates via Bluetooth for nRF52-based devices (RAK WisBlock, T-Echo). ESP32 devices don't currently support app-based OTA.
Limitations: OTA is slower than USB flashing and only works for nRF52 hardware. If the OTA update fails partway through, the device enters DFU mode and you'll need to use a USB cable to finish the flash. Use USB when possible for the most reliable experience.
Device-Specific Notes
The web flasher handles device selection automatically, but here are platform-specific details for manual flashing or troubleshooting.
ESP32 Devices
Heltec V3/V4, T-Beam, T-Deck, Station G2
- Flashed via USB serial (WebSerial or esptool.py)
- Hold BOOT button while connecting to enter bootloader mode
- May need CH340 or CP2102 serial drivers on macOS
- Recovery:
esptool.py erase_flashthen re-flash
nRF52 Devices
RAK WisBlock (RAK4631), T-Echo, Seeed Wio Tracker
- Flashed via USB UF2 drag-and-drop or OTA via app
- Double-tap reset button to enter DFU/bootloader mode
- Device appears as a USB drive — drag the .uf2 file onto it
- Recovery: Double-tap reset, then re-flash via UF2
Troubleshooting Failed Updates
Device not detected by the flasher
The #1 cause: you're using a charge-only USB cable. Try a different cable that you know carries data. Also try a different USB port. On macOS, you may need CH340/CP2102 serial drivers. On Windows, the driver usually installs automatically. Firefox and Safari don't support WebSerial — use Chrome or Edge.
Flash appears to succeed but device won't boot
You may have selected the wrong device in the flasher. Re-flash with the correct device type. If the device is unresponsive, enter bootloader mode: hold BOOT while connecting USB (ESP32) or double-tap reset (nRF52), then flash again.
Device stuck in boot loop after update
Try a "Full Erase and Install" from the web flasher. This wipes all settings and starts clean. If that doesn't work, use esptool.py erase_flash (ESP32) or re-enter DFU mode (nRF52) and flash again. Boot loops are almost always caused by corrupted settings from a major version jump.
How to recover a bricked device
Most "bricked" Meshtastic devices aren't truly bricked. For ESP32: hold BOOT while connecting USB to force bootloader mode, then use esptool.py or the web flasher. For nRF52: double-tap reset to enter DFU mode (device appears as a USB drive). If neither works, try a different USB cable and port first.
Settings lost after update
Major version updates may reset your configuration. Before updating, export your config using the CLI: meshtastic --export-config > backup.yaml. After updating, restore with meshtastic --configure backup.yaml.
Firmware FAQ
How often should I update?
Check for updates every month or two, or when you see a release announcement on the Meshtastic Discord or GitHub. Security fixes should be applied promptly. Feature updates can wait until convenient.
Can I downgrade to an older version?
Yes. Download the older firmware from GitHub releases and flash manually. Downgrading across major versions may require a full erase. The Meshtastic app may warn about version mismatches.
Do all nodes need the same firmware version?
Not necessarily. Meshtastic maintains backward compatibility within the same major version. However, some features (like new device roles or modules) require matching versions on both ends. Keep your network on similar versions for best results.
Can I switch between Meshtastic and MeshCore firmware?
Yes. The same hardware supports both protocols. Flash MeshCore firmware using the MeshCore flasher, or flash Meshtastic firmware using the Meshtastic flasher. You can switch back and forth without damaging anything. See our MeshCore firmware guide for details on that side.