Older versions of the nRF52840 were shipped with a bootloader that does not handle large UF2's, and has other issues. To check whether you need to update the bootloader, double-click the reset button, and look in the NRF52BOOT drive for INFO_UF2.TXT. Inside that file, check the version number. It should be 0.6.0 or newer. This one is older:

UF2 Bootloader 0.2.9 lib/nrfx (v1.1.0-1-g096e770) lib/tinyusb (legacy-755-g55874813) s140 6.1.1
Model: Adafruit Feather nRF52840 Express
Board-ID: NRF52-Bluefruit-v0
Bootloader: s140 6.1.1
Date: Feb 22 2019

Download Bootloader Package

To update the bootloader, you need a .zip file containing the latest version of the bootloader. Use the link below to download it. Then unzip the .zip you downloaded. Inside the first .zip file you will find another .zip file, which is the one you want and will use below.

Download adafruit-nrfutil

You will also need the utility program "adafruit-nrfutil", which has slightly different names on different platforms.

On Linux, you can download and install adafruit-nrfutil by doing:

$ pip3 install --user adafruit-nrfutil

On MacOS, if you have python3 and pip3 installed, you can install via pip3, as above for Linux. Otherwise download adafruit-nrfutil-macos from this link:

Then make it executable by doing:

chmod +x adafruit-nrfutil-macos

On Windows, download adafruit-nrfutil.exe from this link:

Update Bootloader

To update the bootloader, first connect the board, and then double-click to get NRF52BOOT. In the commands below, substitute the name of the .zip file you downloaded for file given there.

On Linux, run this command:

adafruit-nrfutil --verbose dfu serial --package feather_nrf52840_express_bootloader-0.2.9_s140_6.1.1.zip -p /dev/ttyACM0 -b 115200 --singlebank --touch 1200

On MacOS, find out the device name for the connected board, by doing:

ls /dev/cu.*

The device name will be something like /dev/cu.usbmodem411. Use this command, substituting the device name you've discovered. If you are running it other than where you downloaded adafruit-nrfutil-macos, change the path to the command accordingly. If you installed it via pip3, it's just called adafruit-nrfutil, and it should be in your PATH.

./adafruit-nrfutil-macos --verbose dfu serial --package feather_nrf52840_express_bootloader-0.2.9_s140_6.1.1.zip -p /dev/cu.usbmodem411 -b 115200 --singlebank --touch 1200

On Windows, use this command, in the folder where you downloaded the other two files above. You'll need to specify the correct COM port, instead of COMxx. Look in Device Manager for the name of the COM port (it will be listed as a "USB Serial Device" on Windows 10) after you have double-clicked the reset button.

adafruit-nrfutil.exe --verbose dfu serial --package feather_nrf52840_express_bootloader-0.2.9_s140_6.1.1.zip --port COMxx -b 115200 --singlebank --touch 1200

Once done, click the reset button again - the bootloader will be running!

This guide was first published on Jan 02, 2019. It was last updated on Jan 02, 2019.

This page (Update Bootloader) was last updated on Dec 04, 2021.

Text editor powered by tinymce.