Initial shipments of the nRF52840 were shipped with a bootloader that does not work well with Windows. 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.2.9 or newer:

Download: file
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. You do not need to unzip the .zip file.

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:

Download: file
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:

Download: file
adafruit-nrfutil --verbose dfu serial --package -p /dev/ttyACM0 -b 115200 --singlebank --touch 1200

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

Download: file
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.

Download: file
./adafruit-nrfutil-macos --verbose dfu serial --package -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.

Download: file
adafruit-nrfutil.exe --verbose dfu serial --package --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 Oct 25, 2020.