Skip to main content

Flashing Meshtastic Firmware

Flashing Meshtastic Firmware

Meshtastic firmware is flashed via the web flasher at flasher.meshtastic.org or via the Meshtastic Python CLI. The process is similar to MeshCore but has some differences in device selection and channels.

Web Flasher

  1. Open flasher.meshtastic.org in Chrome or Edge. Firefox will not work (no WebSerial support).
  2. Connect the device via a USB data cable. Enter bootloader mode:
    • ESP32: hold BOOT button while plugging in
    • nRF52: double-tap reset button
    • T-Deck: depress trackball while connecting
  3. Select your device from the dropdown. If your device is not listed, check the Meshtastic hardware support page.
  4. Choose firmware channel:
    • Stable - recommended for most users; well-tested
    • Alpha - latest features, may have bugs
  5. Click Flash. The process takes 1 - 3 minutes depending on device.

Driver Requirements

Some devices require USB-serial drivers before the OS will recognise them. If unsure, check the silkscreen label on the USB-serial chip near the USB connector:

ChipDriverCommon Devices
CP2102 / CP210xSilicon Labs CP210x driverHeltec V3, some T-Beam variants
CH340/CH341CH340 driver (Windows/macOS)Some LilyGo boards (and occasional clone units of other boards)
Native USB CDCNo driver neededHeltec V4 (the CP2102 was removed on V4)
nRF52840 UF2 bootloaderNo driver needed - appears as a USB mass-storage driveT-Echo, RAK WisBlock, most nRF52

Note: the Heltec WiFi LoRa 32 V3 uses a CP2102 bridge (install the Silicon Labs CP210x driver); the V4 uses native USB CDC and needs no external driver. Occasional units or clones may ship with a CH340 - if the CP210x driver does not produce a COM port, check the chip silkscreen.

First-Time Configuration

After flashing Meshtastic, use the Meshtastic app (Android/iOS) or web client to configure:

  • Region: Set to US (902-928 MHz, commonly shorthanded "915 MHz") for North America. Beyond interoperability (a wrong region means you cannot communicate with local nodes), the region setting is the legal control: the US region enforces the FCC band edges (902-928 MHz) and caps TX power to the legal Part 15 maximum (30 dBm conducted, reduced for antennas above 6 dBi). Selecting a non-US region to gain power or change frequency can put you outside US law.
  • Role: CLIENT for normal/personal devices; ROUTER only for genuine fixed infrastructure (the Meshtastic project discourages casual use of ROUTER, as a misused router role can degrade the mesh). The older ROUTER_CLIENT role was retired in firmware 2.3.15 - use CLIENT (or CLIENT_MUTE) instead, including for mobile/vehicle nodes. See the Meshtastic role documentation for the current guidance.
  • Long name / short name: How you appear to other users on the mesh.
  • Channel: Must match other nodes you want to communicate with. Default channel works for public networks.

Re-Flashing Between Firmware Versions

You can move between Meshtastic stable and alpha, or between Meshtastic and MeshCore, at any time. Re-flashing normally does not physically damage the hardware, but a wrong or interrupted flash - especially using the wrong bootloader/.uf2 on an nRF52 board - can leave the device temporarily unbootable; see Flashing Troubleshooting for recovery. Configuration is reset when flashing a new firmware type, so note your settings before switching.