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 nRF52 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 DFU mode. Then, open the mounted drive that appears on your computer and check the INFO_UF2.TXT
file.
Updating bootloader
Below are the steps to update your bootloader.
Method 1: Using the UF2 File (Recommended)
Depending on your device, you need to select the correct bootloader package. Below are the links to the bootloader packages:
- Lilygo T-Echo
- RAK4631
- Seeed Tracker 1000-E
- Generic Meshtastic 6.1.1 for DIY
- Generic Meshtastic 7.3.0 for DIY
- Download the correct UF2 Bootloader File.
- Connect your device to your computer via USB.
- 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 USB cable to the magsafe port twice. The device should appear as a removable drive on your computer.
- Drag and drop the UF2 file you downloaded into the removable drive. The device will automatically update the bootloader and reset.
- 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 2: Using adafruit-nrfutil
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 also verify the SHA256 checksum before flashing.
These instructions assume you have python and pip already installed. If you do not, please install the latest verion 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:
- Lilygo T-Echo SHA256: 85d8a334bbf82802d712e183f29ec5215f06786ca88914687c437aceab75d9cf
- RAK4631 SHA256: 4a216ad2be8be23b80371a11753677c850c5711d3b85129390a416fc47ea0910
- Seeed Tracker 1000-E SHA256: 8c69f0d43a7aac925055451d7262682d6926d4cfb7ea8240b466dc8f16a692ba
- Generic Meshtastic 6.1.1 for DIY SHA256: 069791053d21e73115d917110aaa09605945f4130d8febc038c902ed40b0822a
- Generic Meshtastic 7.3.0 for DIY SHA256: a3bea38a522e3707b90b387449b4d051abfd80bd43a69fc4db75002c0fe57268
- Open a terminal or command prompt and install adafruit-nrfutil by running:
pip install adafruit-nrfutil
- Obtain the correct zip package.
- Connect your device to your computer via USB.
- 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
- 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 3: Using a Debugger
If the above methods do not work and if the hardware supports it (i.e., has the required SWD 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.