My notes for the Seeed XIAO nRF52840 & Wio-SX1262, used in various of my solar repeaters.
To check the bootloader version (firmware 1.14+), log into the repeater and use the CLI to execute the get bootloader.ver command.
The OTA fix bootloader protects the device from ending up in an unrecoverable state following an unsuccessful BLE OTA update.
The fresh-from-the-factory Seeed units seem to have the "Sense" bootloader installed by default. This means the UF2 file does not "stick" properly when you flash it. Instead you need to do a full bootloader flash using an Adafruit util.
- Connect the board to PC
- Enter UF2 mode by double pressing the (left) reset button within 0.5s
XIAO-SENSEfile system will be mounted to the PC. TheINFO_UF2.TXTfile contains info about the bootloader.
Example INFO_UF2.TXT from Factory
UF2 Bootloader 0.6.1 lib/nrfx (v2.0.0) lib/tinyusb (0.10.1-293-gaf8e5a90) lib/uf2 (remotes/origin/configupdate-9-gadbb8c7)
Model: Seeed XIAO nRF52840
Board-ID: Seeed_XIAO_nRF52840_Sense
SoftDevice: S140 version 7.3.0
Date: Nov 12 2021
- Download and install the adafruit-nrfutil flasher, see https://github.com/adafruit/Adafruit_nRF52_nrfutil
- Download bootloader from https://github.com/oltaco/Adafruit_nRF52_Bootloader_OTAFIX
- The required file is the "xiao_nrf52840_ble_bootloader" zip file, e.g.
xiao_nrf52840_ble_bootloader-0.9.2-OTAFIX2.1-BP1.2_s140_7.3.0.zip - Run the Adafruit NRF util flasher
adafruit-nrfutil --verbose dfu serial --singlebank --touch 1200 --package xiao_nrf52840_ble_bootloader-0.9.2-OTAFIX1.2-BP1.2_s140_7.3.0.zip -p /dev/ttyACM0 -b 115200 - After flashing the unit will remain in a weird mode with the LED flashing. Enter UF2 mode again.
XIAO-BOOT(note the change) file system will be mounted to the PC. TheINFO_UF2.TXTfile contains info about the bootloader.
Example INFO_UF2.TXT after flash
UF2 Bootloader 0.9.2-OTAFIX2.1-BP1.2 lib/nrfx (v2.0.0) lib/tinyusb (0.12.0-145-g9775e7691) lib/uf2 (remotes/origin/configupdate-9-gadbb8c7)
Model: Seeed XIAO nRF52840
Board-ID: nRF52840-SeeedXiao-v1
Date: Dec 22 2025
SoftDevice: S140 7.3.0
- Go to https://flasher.meshcore.io/seeed-studio-xiao-nrf52-wio/repeater
- Click
Erase Flash- this is required after using the Adafruit tool. - Then flash the latest MeshCore firmware
To upgrade the version of the OTA fix bootloader on an existing unit you can copy the UF2 file across in bootloader mode
- Download bootloader from https://github.com/oltaco/Adafruit_nRF52_Bootloader_OTAFIX
- The required file is the "update-xiao_nrf52840_ble_bootloader" uf2 file, e.g.
update-xiao_nrf52840_ble_bootloader-0.9.2-OTAFIX2.1-BP1.2_nosd.uf2 - Connect the board to PC
- Enter UF2 mode by double pressing the (left) reset button within 0.5s
XIAO-BOOTfile system will be mounted to the PC. TheINFO_UF2.TXTfile contains info about the bootloader. Confirm it contains the wordOTAFIX.- Copy the uf2 file to the
XIAO-BOOTmount. The device will restart and that's it. - You can put it back into UF2 mode to check the
INFO_UF2.TXThas been updated to the new version.
- Get the nRF Device Firmware Update app.
- Go to https://flasher.meshcore.io/seeed-studio-xiao-nrf52-wio/repeater
- Download the zip firmware file e.g.
Xiao_nrf52_repeater-v1.14.1-467959c.zip - Log onto the Repeater via MeshCore
- Navigate to the
CLItab and enterstart ota. If you can see it, a blue LED on the unit will start flashing. - Open the nRF Device Firmware Update app
- This process is very fussy about what settings to use. Below seem to work for me. Check https://github.com/oltaco/Adafruit_nRF52_Bootloader_OTAFIX?tab=readme-ov-file#recommended-ota-dfu-settings for the latest advice.
- Packets receipt notification -
TRUE - Number of packets -
100 - Reboot time -
0 ms - Scan timeout -
2000 ms - Request high MTU -
TRUE - Disable resume -
TRUE - Prepare object delay -
400 ms - Force scanning -
TRUE - Keep bond -
FALSE - External MCU DFU -
FALSE
- Packets receipt notification -
- Once the settings are confirmed:
- Select the downloaded firmware zip
- Select the device, which will be called
XIAO_NRF52_OTA - Press
Startto flash- If an error like
GATT CONN TIMEOUToccurs, don't worry - you can select the device again and retry
- If an error like
- After update, log back onto the Repeater via MeshCore.
- Confirm upgrade success, and sync clock if necessary.