How to update bootloader of Feather nRF52840 Sense

Hi. I'm brand new to Arduino and microcontrollers. I've just bought an Adafruit Feather nRF52840 Sense, and I'm having trouble getting started. I think I need to upload the bootloader. I plugged it into MacBook USB and the red D13 status LED flashes every 6 seconds. It does not appear as a disk.

I installed Arduino IDE v2.3.6, added the board URL https://adafruit.github.io/arduino-board-index/package_adafruit_index.json, installed the latest BSP for Adafruit nRF52 v1.7.0.

I have selected the board and the Port in the Tools menu. I read that I'm supposed to click Tools > Bootloader, but I don't have that option.

If I try Tools > Burn Bootloader, it fails with error:

Upgrading target on /dev/cu.usbmodemED9ACC47788F1 with DFU package /Users/ebalsley/Library/Arduino15/packages/adafruit/hardware/nrf52/1.7.0/bootloader/feather_nrf52840_sense/feather_nrf52840_sense_bootloader-0.9.1_s140_6.1.1.zip. Flow control is disabled, Dual bank, Touch 1200
Touched serial port /dev/cu.usbmodemED9ACC47788F1
Opened serial port /dev/cu.usbmodemED9ACC47788F1
Starting DFU upgrade of type 3, SoftDevice size: 151016, bootloader size: 39000, application size: 0
Sending DFU start packet
Timed out waiting for acknowledgement from device.

Failed to upgrade target. Error is: No data received on serial port. Not able to proceed.

Possible causes:
- Selected Bootloader version does not match the one on Bluefruit device.
    Please upgrade the Bootloader or select correct version in Tools->Bootloader.
- Baud rate must be 115200, Flow control must be off.
- Target is not in DFU mode. Ground DFU pin and RESET and release both to enter DFU mode.
Traceback (most recent call last):
  File "__main__.py", line 296, in serial
  File "dfu/dfu.py", line 226, in dfu_send_images
  File "dfu/dfu.py", line 199, in _dfu_send_image
  File "dfu/dfu_transport_serial.py", line 179, in send_start_dfu
  File "dfu/dfu_transport_serial.py", line 243, in send_packet
  File "dfu/dfu_transport_serial.py", line 282, in get_ack_nr
nordicsemi.exceptions.NordicSemiException: No data received on serial port. Not able to proceed.

The first suggestion doesn't make sense to me, because I'm trying upgrade the bootloader now!
Second suggestion — I set 115200 baud in the serial monitor, but I don't know if that also applies to bootloader update procedure?
Third suggestion: I read that for this board, you're supposed to enter DFU mode by pressing reset button twice. When I do that, the red LED flashes a few times and then blue LED flashes once but nothing else happens.

If I open the serial monitor, I get a status readout every second:

Logging starts at block 1 of 511

Initializing Tag[6CDF9408] v0.021 @2481MHz ...

Accelerometer: x = 2457 y = -3444 z = 16039 at time 2 temp_lr 21.0 temp_hr_c 24.5 temp_hr_f 76.1 rel_hum 32.7
Accelerometer: x = 2402 y = -3496 z = 16033 at time 3 temp_lr 20.9 temp_hr_c 24.5 temp_hr_f 76.1 rel_hum 32.6
Accelerometer: x = 2426 y = -3483 z = 16019 at time 4 temp_lr 20.8 temp_hr_c 24.5 temp_hr_f 76.1 rel_hum 32.6

If I try to upload a basic sketch, it fails similarly:

Sketch uses 52388 bytes (6%) of program storage space. Maximum is 815104 bytes.
Global variables use 8752 bytes (3%) of dynamic memory, leaving 228816 bytes for local variables. Maximum is 237568 bytes.
Upgrading target on /dev/cu.usbmodemED9ACC47788F1 with DFU package /Users/ebalsley/Library/Caches/arduino/sketches/E062AE97FDCF1D99A8803147AE32EF58/sketch_oct27a.ino.zip. Flow control is disabled, Single bank, Touch disabled
Timed out waiting for acknowledgement from device.

Failed to upgrade target. Error is: No data received on serial port. Not able to proceed.

Possible causes:
- Selected Bootloader version does not match the one on Bluefruit device.
    Please upgrade the Bootloader or select correct version in Tools->Bootloader.
- Baud rate must be 115200, Flow control must be off.
- Target is not in DFU mode. Ground DFU pin and RESET and release both to enter DFU mode.
Traceback (most recent call last):
  File "__main__.py", line 296, in serial
  File "dfu/dfu.py", line 235, in dfu_send_images
  File "dfu/dfu.py", line 199, in _dfu_send_image
  File "dfu/dfu_transport_serial.py", line 179, in send_start_dfu
  File "dfu/dfu_transport_serial.py", line 243, in send_packet
  File "dfu/dfu_transport_serial.py", line 282, in get_ack_nr
nordicsemi.exceptions.NordicSemiException: No data received on serial port. Not able to proceed.

Any help is appreciated!

Hi @llamafilm. I don't have any experience using this specific board, but you can try pressing and releasing the "Reset" button on the board twice quickly to activate the bootloader, then try uploading again while the board is in that mode.

Yes I tried that. The LED flashes red for a few seconds and nothing else happens. Same results.

Since it is an Adafruit board use Adafruit’s tutorial for the board.