Flashing MeshCore Firmware OTA: The Definitive Guide

image.png

Step-by-Step: OTA Update

Over-the-air (OTA) updating lets you reflash a deployed MeshCore node; a repeater, room server, or companion, without connecting it to a computer over USB. The method depends on the board's chip family: nRF52 boards update over Bluetooth using Nordic's DFU app, while ESP32 boards update over a temporary Wi-Fi access point in your browser. Both are covered below, followed by notes specific to companions.

OTA is convenient for nodes that are hard to reach physically (a repeater on a roof or tower). If a node is within easy reach, a USB flash from flasher.meshcore.io is faster and more reliable than OTA. Reserve OTA for when getting a cable to the device is impractical.

nRF52 Boards

nRF52 boards (RAK4631, Heltec Mesh Node T114, Seeed XIAO nRF52840, and similar) update over Bluetooth LE using Nordic's DFU app. The same process works for repeater, room server, and companion firmware, only the firmware image differs (see the Companions section for the companion firmware-version requirement).

Browser Requirements

The WebSerial API is only available in Chromium-based browsers (the WebSerial API shipped in Chrome/Edge 89 - see MDN/Can I Use):

Mobile App Requirements

Download the nRF Device Firmware Update app (you can find it by searching nrf dfu in your app store).

Note: After installation, this app is listed as "DFU" in the apps list, NOT nRF Device Firmware Update.

Get the OTAFIX Bootloader

The OTAFIX bootloader (by oltaco: Huw "Taco" Duddy, a MeshCore firmware developer) replaces the stock nRF52 bootloader and makes Bluetooth OTA DFU far more reliable: significantly faster OTA, automatic fallback to OTA DFU mode if an update fails, and the ability to enter OTA DFU mode by holding a button while resetting. It is strongly recommended before doing OTA on nRF52 boards. You install it once, over USB.

Download firmware images to your mobile device

On flasher.meshcore.io, download the firmware image for the device you want to flash. For OTA with the DFU app, choose the DFU package (.zip) variant of the firmware (not the .uf2, which is for USB drag-and-drop).

Flash the Device OTA!

Progress is slow. Ensure you have an unobstructed path to the device. External Bluetooth antennas help tremendously.

ESP32 Boards

ESP32 boards (Heltec V3, LilyGo T-Beam and T-Deck, Station G2, RAK11200, and similar) do not use the DFU app or Bluetooth for OTA. Instead, the device hosts a temporary Wi-Fi access point and you upload the firmware to it from a browser. You start this mode with a command, so you need admin access to the node in the MeshCore app.

Requirements

Get the firmware image

Start OTA mode on the device

Upload the firmware

While in OTA mode the device's only job is hosting this upload page, so it is briefly off the mesh. Keep your phone or laptop close to the node for a stable Wi-Fi link.

Companions

A companion is the node you pair with the MeshCore phone app. Companion firmware updates OTA using the same mechanism as repeaters and room servers. The difference is the firmware image you flash and, on nRF52, a minimum firmware version.

The actual firmware transfer happens in Nordic's DFU app (nRF52) or on the Wi-Fi upload page (ESP32). There is no separate "update firmware" button inside the MeshCore app itself. As always, if the companion is in your hand, a USB flash is the simplest path.



Revision #7
Created 2026-06-13 13:02:04 UTC by Mesh America Admin
Updated 2026-06-14 05:06:02 UTC by Mesh America Admin