Problem flashing the Adafruit Feather NRF devices

I tried to flash an Adafruit Feather Express and and an Adafruit Feather Sense following the documentation on Adafruit Feather nRF52840 Express. After manual mounting the device, the “flashing” (i.e., resetting the device into bootloader and copying the elf file onto the device) seems to succeed. However, after resetting the device, it seems to boot the original firmware again. I tried with blinky, hello-world, and gnrc_networking example.

According to the INFO_UF2.TXT on the device this is the running version of the bootloader:

UF2 Bootloader 0.2.6 lib/nrfx (v1.1.0-1-g096e770) lib/tinyusb (legacy-525-ga1c59649) s140 6.1.1^M
Model: Adafruit Feather nRF52840 Express^M
Board-ID: NRF52-Bluefruit-v0^M
Bootloader: s140 6.1.1^M
Date: Dec 21 2018^M

I don’t own a SEGGER J-Link but an nrf52dk - can this be used for debugging and flashing as well?

1 Like

Do you have a Bluepill laying around? Aka STM32F1? If so, you can create yourself a black magic probe. Can be used for debugging and flashing as well. Even though, this is a strange behaviour and should be checked, if other boards are also effected. Checked what kind of issue that is. As I remember you should be able to use the J-Link from the nrf52dk as well.

Hey Philipp,

On Fri, Nov 25, 2022 at 02:18:50AM +0000, Philipp Blum via RIOT wrote:

Do you have a Bluepill laying around? Aka STM32F1?

unfortunately I don’t but maybe I should get one. Are pretty cheap, aren’t they?

As I remember you should be able to use the J-Link from the nrf52dk as well.

Just ordered the cable for that yesterday.

Cheers Oleg

printk(“whoops, seeking 0\n”); linux-2.6.6/drivers/block/swim3.c

Meanwhile I managed to flash the Adafruit Feather Express via the J-Link on the nrf52dk and even managed to install riotboot_dfu which allows me to update the software without additional hardware.

However, for the Adafruit Feather Sense the problem persists and the SWD pin cannot be access that easily - so I cannot use the nrf52-J-Link here.

What I also observe: the original firmware is identified as UF2 firmware image, family Nordic NRF52840, address 0x026000, 40 total blocks. The blob generated by RIOT shows UF2 firmware image, family Nordic NRF52840, address 0x001000, 40 total blocks

Are the different addresses expected?

Hey,

after I figured that there is actually a way to use a serial bootloader [1] with the preinstalled firmware I managed to flash the device without a JLink.

However, I managed only to flash a few examples successfully (hello_world, default, gnrc_minimal) but others (like riotboot_dfu or gnrc_networking) fail to boot up properly.

Cheers Oleg

[1] Use Command Line | Introducing the Adafruit nRF52840 Feather | Adafruit Learning System

– printk(KERN_ERR “happy meal: Fry guys.”); linux-2.6.6/drivers/net/sunhme.c