Skip to main content
Version: 2.8

How to Update or Recover the Bootloader on nRF52 Devices to the Latest Version

If you're experiencing issues with updating or flashing newer versions of the Meshtastic firmware, and your nRF52nRF52A microcontroller chipset made by Nordic, used by several devices such as the RAK Meshtastic Starter Kit and the Lilygo T-Echo. Lower power usage than ESP32. device is not running the latest bootloader version, updating the bootloader may resolve these problems.

To check which version of the bootloader your device is running, place the device into DFUDFU (Device Firmware Update). A state in which a device is placed into for it to receive a firmware update. mode. Then, open the mounted drive that appears on your computer and check the INFO_UF2.TXT file.

info

Many nRF52nRF52A microcontroller chipset made by Nordic, used by several devices such as the RAK Meshtastic Starter Kit and the Lilygo T-Echo. Lower power usage than ESP32.-based Meshtastic devices ship with, or can be upgraded to, Meshtastic's OTAFIX bootloader — a fork with faster, more reliable Bluetooth OTAOTA (Over the Air). Typically used to refer to an OTA update, one that happens over a wireless network. updates. Its releases page lists current UF2/zip packages per board, and its README lists which boards it supports.

Updating bootloader

Below are the steps to update your bootloader.

Method 1: From the Meshtastic Android App (Easiest, if supported)

For boards OTAFIX supports, the Meshtastic Android app can flash the bootloader directly — no manual download needed. This in-app path is Android-only for now; the iOS/iPadOS app does not yet offer a bootloader upgrade, so use one of the manual methods below on Apple platforms.

  1. Connect the radio over USBUSB (Universal Serial Bus). The wired connection used to power a device, flash firmware onto it, and communicate with it over serial./serial (not Bluetooth).
  2. Open the connected radio's configuration and go to Advanced → Firmware Update.
  3. If an upgraded bootloader is published for your board, select Upgrade bootloader.
  4. The app reads INFO_UF2.TXT from the update drive to confirm the board, then writes the bootloader image. It then asks you to select the update drive again to write the firmware image — two drive selections in total.

See the app's Firmware Updates guide for the full flow. If your board isn't listed yet, or you're not on Android, use one of the manual methods below.

Method 2: Using the UF2 File

Depending on your device, you need to select the correct bootloader package. Below are the links to the bootloader packages:

  1. Download the correct UF2 Bootloader File.
  2. Connect your device to your computer via USBUSB (Universal Serial Bus). The wired connection used to power a device, flash firmware onto it, and communicate with it over serial..
  3. Activate bootloader mode by quickly double pressing the RESET button on your device. For The Seeed Tracker 1000-E, you need to press-and-hold the user button and quickly connect the USBUSB (Universal Serial Bus). The wired connection used to power a device, flash firmware onto it, and communicate with it over serial. cable to the magsafe port twice. The device should appear as a removable drive on your computer.
  4. Drag and drop the UF2 file you downloaded into the removable drive. The device will automatically update the bootloader and reset.
  5. Once the device resets, the update is complete. Your device is now running the latest bootloader version and you can proceed with flashing the firmware.

Method 3: Using adafruit-nrfutil

caution

Unlike uf2 uploads, adafruit-nrfutil does not check if you have the correct bootloader package for your device. If you flash the wrong bootloader, you may brick your device. Please verify the SHA256 checksum before flashing.

info

These instructions assume you have python and pip already installed. If you do not, please install the latest version of python (which includes pip) from Python.org.

Depending on your device, you need to select the correct bootloader package. Below are the links to the bootloader packages:

  1. Open a terminal or command prompt and install adafruit-nrfutil by running:
pip install adafruit-nrfutil
  1. Obtain the correct zip package.
  2. Connect your device to your computer via USBUSB (Universal Serial Bus). The wired connection used to power a device, flash firmware onto it, and communicate with it over serial..
  3. In the terminal or command prompt, navigate to the directory where you downloaded the bootloader zip package and execute the following command, replacing /dev/ttyACM0 with the correct port for your device (Windows users might use COMx):
adafruit-nrfutil --singlebank --touch 1200 --verbose dfu serial --package <downloaded file>.zip -p /dev/ttyACM0 -b 115200
  1. Once the process finishes, the update is complete. Your device is now running the latest bootloader version and you can proceed with flashing the firmware.

Method 4: Using a Debugger

If the above methods do not work and if the hardware supports it (i.e., has the required SWDSWD (Serial Wire Debug). A two-pin debug and programming interface, used on STM32 devices to enter bootloader mode and flash firmware. pins), a debugger like a DAPLink or J-Link can be used to flash the bootloader directly. Refer to the Debugger Instructions for an example with the RAK4631.