
When I was first getting into MeshCore I realised that nRF52 devices had the ability to do OTA updates via BLE, which is obviously a great feature when you need to update a repeater which is on a roof.
Unfortunately I never had much luck getting this to work. If you were lucky and used the right settings it might work with RAK4631 but particularly with ProMicro devices it never worked at all. This led me to dig around in github where I found some ancient forgotten PRs to fix some of these issues.
Since they weren’t getting any attention on the official Adafruit github I took it upon myself to fork the bootloader and include these fixes myself.
For the best nRF52 OTA update experience, it’s recommended to upgrade your device to the OTAFIX bootloader. This version includes:
First, put your device into UF2 DFU mode.
For most nRF52 devices:
Some devices use different methods, see the notes at the end of this guide.
This step is important for devices like the Seeed Studio XIAO nRF52840, which often ship with the SENSE bootloader variant.
To check:
INFO_UF2.TXT file on the mounted driveThis file contains details about your current bootloader.
Example:
If the file shows: Board-ID: nRF52840-SeeedXiaoSense-v1 then you will need to install the SENSE variant.
You can now download the OTAFIX bootloader directly from the MeshCore flasher site! Go to https://flasher.meshcore.io
update-xxxx.uf2
Alternatively the OTAFIX bootloader is also available from the official site.
Go to:
https://github.com/oltaco/Adafruit_nRF52_Bootloader_OTAFIX/releases
Download the correct UF2 file for your device from the Assets section.
update-xxxx.uf2Example:
For the Seeed Xiao Sense variant as discussed above you will want to download update-xiao_nrf52840_ble_sense_bootloader-0.9.2-OTAFIX2.1-BP1.2_nosd.uf2
update-xxxx.uf2 file onto the UF2 driveINFO_UF2.TXT againThe version line should now include OTAFIX.

To enter DFU mode:
Video reference: https://www.youtube.com/shorts/D6uo93-RcaY
To enter DFU mode: