Flashing the Bootloader

All Adafruit nRF52 boards chip with the bootloader pre-flashed. This page is provided for information purposes only!

All Bluefruit nRF52 Feather boards and Bluefruit nRF52 modules ship with the serial bootloader pre-flashed, so this page is normally not required when setting your device and system up.

The information provided here is only intended for for rare cases where you may want or need to reflash the bootloader yourself, and have access to the HW required to do so.

1. Updating the Bootloader with a Segger J-Link and Arduino IDE

To burn the bootloader from within the Arduino IDE using a Segger J-Link, you will need the following tools installed on your system and available in the system path:

JLink Drivers and Tools

Download and install the JLink Software and Documentation Pack from Segger, which will also install a set of command line tools.

Burning the Bootloader from the Arduino IDE

Once the tools above have been installed and added to your system path, from the Arduino IDE:

  • Select `Tools > Board > Adafruit Bluefruit Feather52`
  • Select `Tools > Programmer > J-Link for Feather52`
  • Select `Tools > Burn Bootloader` with the board and J-Link connected

The appropriate Programmer target and Burn Bootloader button can be seen below:

You will need a Segger J-Link to flash the bootloader to the nRF52832/nRF52840 SoC!

2. Manually Burning the Bootloader via nrfjprog

You can also manually burn the bootloader from the command line, using `nrfjprog` from Nordic.

You can either download nRF5x-Command-Line-Tools for OSX/Linux/Win32, or use the version that ships with the BSP in the tools/nrf5x-command-line-tools folder.

Run the folllwing commands, updating the path to the .hex file as appropriate:

Download: file
$ nrfjprog --program bootloader_binary.hex --chiperase -f nrf52 --reset

You should see something similar to the following output, followed by a fast blinky on the status LED to indicate that you are in DFU/bootloader mode since no user sketch was found after the device reset:

All commands below were run from 'tools/nrf5x-command-line-tools/osx/nrfjprog'
Download: file
$ ./nrfjprog -e -f nrf52
Erasing code and UICR flash areas.
Applying system reset.

$ ./nrfjprog --program  ../../../../bin/bootloader/bootloader_v050_s132_v201.hex -f nrf52
Parsing hex file.
Reading flash area to program to guarantee it is erased.
Checking that the area to write is not protected.
Programing device.

$ ./nrfjprog --reset -f nrf52
Applying system reset.
Run.

OS X Note: You may need to create a symlink in `/usr/local/bin` to the
`nrfjprog` tool wherever you have added it. You can run the following command, for example:

$ ln -s $HOME/prog/nordic/nrfjprog/nrfjprog /usr/local/bin/nrfjprog

3. Manually Burning the Bootloader via AdaLink

Alternatively, you can use AdaLink to flash the bootloader with a Segger J-Link:

Download: file
# First erase the device's flash contents
$ adalink nrf52832 -p jlink -w

# Then flash the bootloader and SoftDevice .hex file
$ adalink nrf52832 -p jlink -h feather52_bootloader_v050_s132_v201.hex
This guide was first published on Mar 22, 2017. It was last updated on Mar 22, 2017. This page (Flashing the Bootloader) was last updated on Sep 14, 2019.