Flashing MeshCore Firmware
Flashing MeshCore Firmware
MeshCore firmware can be installed on supported hardware using two primary methods: the MeshCore Web Flasher (browser-based, for both initial flashing and OTA updates) and UF2 drag-and-drop (for nRF52840 boards only). This page covers both methods and includes platform-specific setup notes for Windows, Linux, and macOS.
Method 1: MeshCore Web Flasher
The MeshCore Web Flasher is the recommended method for most users. It runs entirely in a browser and uses the WebSerial API to communicate with the board over USB.
URL: https://flasher.meshcore.co.uk
Browser Requirements
The WebSerial API is only available in Chromium-based browsers:
- Google Chrome (version 89 or later) — recommended
- Microsoft Edge (version 89 or later) — supported
- Firefox, Safari — NOT supported. WebSerial is not implemented in these browsers.
Step-by-Step: Initial Flash
- Open flasher.meshcore.co.uk in Chrome or Edge.
- Connect your board to your computer via USB.
- Select your board type from the dropdown (e.g., RAK4631, T-Beam v1.2, Heltec V3).
- Select the firmware variant you want to flash (REPEATER, ROOM_CLIENT, ROOM_SERVER, or SENSOR).
- Select the firmware version (latest stable is selected by default).
- Click Connect. A browser dialog will appear listing available serial ports — select your device.
- Click Flash. The flasher will download the firmware and write it to the device. This typically takes 30–90 seconds.
- The board will reboot automatically after flashing. First-boot setup: connect via BLE using the MeshCore app to configure the node name and preset (frequency/spreading factor profile).
Step-by-Step: OTA Update
For updating an existing MeshCore node, the process is the same as initial flash. The flasher will overwrite the existing firmware. Your saved configuration is generally preserved across firmware updates, but it is good practice to note your settings before updating.
Platform-Specific Setup Notes
Windows
Many LoRa development boards use USB-to-serial bridge chips that require Windows drivers:
- CH340 / CH341 — used on many TTGO/LILYGO boards (T-Beam). Download the CH340 driver from the manufacturer (WCH) if Windows does not auto-install it. After installation, the device should appear in Device Manager as "USB-SERIAL CH340 (COMx)".
- CP2102 / CP2104 — used on some Heltec boards and others. Download from Silicon Labs. Device Manager will show "Silicon Labs CP210x USB to UART Bridge (COMx)".
- ESP32-S3 native USB — boards like T-Beam Supreme and Heltec V3 with native USB do not need a bridge driver. They appear as "USB Serial Device (COMx)" automatically.
- nRF52840 (RAK4631, T114, HT-n62) — when in bootloader mode for WebSerial flashing, appear as a USB serial device without a separate driver. When in UF2 mode, appear as a USB drive.
After installing drivers, a reboot may be required. Verify the device is visible in Device Manager under "Ports (COM & LPT)" before proceeding with the flasher.
Linux
Linux does not require driver installation — the CH340 and CP210x drivers are built into the kernel. However, your user account must have permission to access the serial device:
- Verify the device is present:
ls /dev/ttyUSB* /dev/ttyACM* - Check your group membership:
groups $USER - If you are not in the
dialoutgroup (required for serial access):sudo usermod -aG dialout $USER - Log out and back in (or run
newgrp dialoutin the current shell) for the group change to take effect. - For nRF52840 boards in UF2 mode, the USB drive will mount automatically via udev. No additional rules are needed for mounting.
- Chrome on Linux may require an additional udev rule to allow WebSerial access without root. Create
/etc/udev/rules.d/50-webserial.ruleswith appropriate rules for your USB device VID:PID, then runsudo udevadm control --reload-rules.
macOS
macOS includes built-in CH340 and CP210x support in recent versions (macOS 10.15+). If the device does not appear:
- Install the appropriate driver from the manufacturer (WCH or Silicon Labs).
- After installing on macOS 12 or later, you may need to allow the driver in System Settings → Privacy & Security.
- The serial device will appear as
/dev/cu.usbserial-XXXXXXXXor/dev/cu.usbmodem.... - Chrome for macOS supports WebSerial without additional configuration once the device is recognized.
Method 2: UF2 Drag-and-Drop Flashing (nRF52840 Boards Only)
nRF52840-based boards (RAK4631, T114, Heltec HT-n62) support the UF2 bootloader, which presents the board as a USB mass storage device (like a flash drive). Flashing is as simple as copying a file.
Entering Bootloader Mode
- RAK4631: Double-tap the reset button rapidly. The board's LED will pulse and a drive named
RAK4631will appear on your computer. - T114: Double-tap the reset button. Drive labeled
T114or similar appears. - Heltec HT-n62: Double-tap the reset button. Drive appears as
NRF52BOOTor similar.
Flashing Steps
- Download the appropriate
.uf2firmware file from the MeshCore GitHub releases page or from flasher.meshcore.co.uk (use the "Download" option instead of "Flash"). - Enter bootloader mode on your board (double-tap reset).
- Drag and drop the
.uf2file onto the USB drive that appears. - The board will automatically eject the drive, write the firmware, and reboot into MeshCore.
Advantages of UF2: No browser required, no driver issues, works on any operating system with USB mass storage support, works even if the WebSerial approach is blocked by corporate IT policy.
After Flashing: First Boot Configuration
- Open the MeshCore app on Android or iOS.
- Enable Bluetooth on your phone and open the app.
- The app will scan for nearby MeshCore devices. Your newly flashed node will appear (possibly listed as "MeshCore" with a default name).
- Tap to connect. The app will pair via BLE.
- Navigate to Settings and configure:
- Node name — a unique name for your node (max ~16 characters)
- Preset — frequency and LoRa parameters. Select the preset matching your region and the network you are joining (e.g., US_915_LF for 915 MHz long range, EU_868_LF for 868 MHz)
- TX power — set to the maximum legal power for your region unless you have a specific reason to limit it
- Save settings. Your node is now ready to join the mesh.
No comments to display
No comments to display