# 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:

<table id="bkmrk-chipdrivercommon-dev"><thead><tr><th>Chip</th><th>Driver</th><th>Common Devices</th></tr></thead><tbody><tr><td>CP2102 / CP210x</td><td>Silicon Labs CP210x driver</td><td>Heltec V3, some T-Beam variants</td></tr><tr><td>CH340/CH341</td><td>CH340 driver (Windows/macOS)</td><td>Some LilyGo boards (and occasional clone units of other boards)</td></tr><tr><td>Native USB CDC</td><td>No driver needed</td><td>Heltec V4 (the CP2102 was removed on V4)</td></tr><tr><td>nRF52840 UF2 bootloader</td><td>No driver needed - appears as a USB mass-storage drive</td><td>T-Echo, RAK WisBlock, most nRF52</td></tr></tbody></table>

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](https://wiki.meshamerica.com/books/hardware-guide/page/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.