NRF52840 Dongle NCS3.1.1 boot problem

Hi,

I'm working on porting my software projects from NCS2.9 to NCS3.1.1 and run into the problem that the thumbs
nrf52840-dongle and arduino-nano-33-ble are not booting anymore.

Curious, the nrd52840dk works great after fix up all obsolete functions (specially for the openthread coap)

[00:00:00.005,249] <inf> ieee802154_nrf5: nRF5 802154 radio initialized
[00:00:00.006,164] <err> net_openthread_platform: Failed to submit work to queue, error: -19
[00:00:00.011,840] <inf> fs_nvs: 8 Sectors of 4096 bytes
[00:00:00.011,840] <inf> fs_nvs: alloc wra: 0, e60
[00:00:00.011,840] <inf> fs_nvs: data wra: 0, 558
[00:00:00.030,487] <inf> net_openthread_platform: State changed! Flags: 0x101fc310 Current role: disabled Ip6: down
*** Booting nRF Connect SDK v3.1.1-e2a97fe2578a ***
*** Using Zephyr OS v4.1.99-ff8f0c579eeb ***
[00:00:40.070,312] <inf> coap_server: Starting
[00:00:40.076,293] <inf> net_openthread_platform: State changed! Flags: 0x10000000 Current role: disabled Ip6: down
[00:00:40.077,239] <inf> net_openthread_platform: State changed! Flags: 0x20000000 Current role: disabled Ip6: down
[00:00:40.077,392] <inf> net_openthread_platform: OpenThread version: OPENTHREAD/ncs-thread-reference-20250402; Zephyr; Oct 30 2025 18:52:22
[00:00:40.084,411] <inf> net_openthread_platform: Network name: ot_zephyr
[00:00:40.084,533] <inf> [N] Mle-----------: Role disabled -> detached
[00:00:40.118,316] <inf> net_openthread_platform: State changed! Flags: 0x3100102d Current role: detached Ip6: up
[00:00:40.119,140] <inf> coap_server: OpenThread running

I had looked around to see if the dfu-loader for the PCA10059 (v2.1.1 2022) needs to be updated?
Same for the bossac loader of the Arduino with the nrf52840.

The PCA10059 shows in the Linux kernel log a new hi speed device and timed out with a read64 error and restart after a while.

 The Arduino keeps rebooting and the kernel log shows the usb-device disconnect/reconnect.

Anything you can tell me?
 

Parents
  • Hi, 

    You can check this post for the nRF52840 Dongle. As for Arduino Nano 33 BLE, it requires a specific variant of the bossac tool for flashing. Using the wrong version (such as the one from Zephyr SDK instead of the Arduino IDE) can result in failed or partial programming, leading to boot loops or USB disconnects. Ensure you are using the Arduino-provided bossac and specify the correct port. See Zephyr Docs: Programming and Debugging Arduino Nano 33 BLE.

    Regards,
    Amanda H.

  • Thank you for your answer.

    All the builds was working fine with NCS 2.9, not a problem with bossac. And I'm not using mcuboot.

    The problems start for the thumbs after upgrade to NCS 3.1.1

    Maybe something with the zephyr.dts I spotted a single line for uart0 default and sleep where I expect two. One for tx and one for tx pin.

    Let me post that part later.

  • If I compare nrf52840 pinctrl definition (using group1 & group2)  the arduino pinctrl uses only group1 for the uart0, so my first thinking of a wrong dts is a dead end.
    (I use uart0 on the thumbs and try to read the debug output messages via serial not cdc-acm-usb)

  • Could you run and test this sample https://github.com/nrfconnect/sdk-nrf/tree/v3.1.1/samples/openthread/coprocessor or this https://github.com/nrfconnect/sdk-nrf/tree/v3.1.1/samples/openthread/cli for nRF52840dongle? If it can work without issue, you can refer to the settings for the nRF52840 Dongle. 

  • I'd followed your suggestion and clone the sdk-nrf.
    I build the cli sample on the command line using west build -d build_dongle -b nrf52840dongle/nrf52840
    which builds without any errors or warnings.

    I set the dongle to DFU mode, the LED is flashing. OK
    But when I run west flash -d build_dongle flash failed: no boards found

    -- west flash: using runner nrfutil
    runner_config: RunnerConfig(build_dir='/home/chris/project/Tentacles/Harvester/build/nrf52dongleserver/coap_server', board_dir='/home/chris/Desktop/workbench/project/Tentacles/ncs/zephyr/boards/nordic/nrf52840dongle', elf_file='/home/chris/project/Tentacles/Harvester/build/nrf52dongleserver/coap_server/zephyr/zephyr.elf', exe_file=None, hex_file='/home/chris/project/Tentacles/Harvester/build/nrf52dongleserver/merged.hex', bin_file='/home/chris/project/Tentacles/Harvester/build/nrf52dongleserver/coap_server/zephyr/zephyr.bin', uf2_file=None, mot_file=None, file=None, file_type=<FileType.OTHER: 0>, gdb='/opt/gnuarmemb/arm-gnu-toolchain-14.3.rel1-x86_64-arm-none-eabi/bin/arm-none-eabi-gdb', openocd='/usr/bin/openocd', openocd_search=None, rtt_address=None)
    -- runners.nrfutil: reset after flashing requested
    runners.nrfutil: nrfutil --json device list
    runners.nrfutil: Found boards: []

    I double checked it with (obmit --json) board is here.

    $ nrfutil device list
    E1CF80C8ACF9
    Product Open DFU Bootloader
    Ports /dev/ttyACM0
    Traits serialPorts, nordicUsb, nordicDfu, usb

    Supported devices found: 1

    I was not aware that there is something broken with the west scripts from zephyr because I use a build script which doing the two steps a) nrfutil to create a zip and b) call nrfutils to write it.

    nrfutil nrf5sdk-tools pkg generate \
    --hw-version 52 \
    --sd-req=0x00 \
    --application $build_path/coap_server/zephyr/zephyr.hex \
    --application-version 1 \
    $build_path/nrf52dongle.zip

    nrfutil device program --firmware $build_path/nrf52dongle.zip --traits nordicDfu
     

    Did I do something wrong in my build script?
    And why is the west flash failing? Missing patch in the zephyr script directory?

    west --version
    West version: v1.5.0

  • Good Morning.
    I have it fixed.

    "--no-sysbuild"  did the magic and the nano-33-ble stop boot-loop and nrf52840dongle have ttyACM0/1 up.
    west build -d ../build/arduino33server/ -b arduino_nano_33_ble $snippets --no-sysbuild -p -- -DCONF_FILE="prj.conf nano33.conf"

    west flash -d ../build/arduino33server -r bossac --bossac-port=/dev/${port}


    [00:00:00.010,070] <inf> ieee802154_nrf5: nRF5 802154 radio initialized
    [00:00:00.068,511] <err> net_openthread_platform: Failed to submit work to queue, error: -19
    [00:00:00.079,925] <inf> fs_nvs: 8 Sectors of 4096 bytes
    [00:00:00.080,535] <inf> fs_nvs: alloc wra: 5, bd0
    [00:00:00.081,176] <inf> fs_nvs: data wra: 5, a60
    [00:00:00.102,172] <inf> net_openthread_platform: State changed! Flags: 0x101fc710 Current role: disabled Ip6: down
    *** Booting nRF Connect SDK v3.1.1-e2a97fe2578a ***
    *** Using Zephyr OS v4.1.99-ff8f0c579eeb ***
    [00:00:02.407,012] <inf> coap_server: Starting

    That was a hard nut!

Reply
  • Good Morning.
    I have it fixed.

    "--no-sysbuild"  did the magic and the nano-33-ble stop boot-loop and nrf52840dongle have ttyACM0/1 up.
    west build -d ../build/arduino33server/ -b arduino_nano_33_ble $snippets --no-sysbuild -p -- -DCONF_FILE="prj.conf nano33.conf"

    west flash -d ../build/arduino33server -r bossac --bossac-port=/dev/${port}


    [00:00:00.010,070] <inf> ieee802154_nrf5: nRF5 802154 radio initialized
    [00:00:00.068,511] <err> net_openthread_platform: Failed to submit work to queue, error: -19
    [00:00:00.079,925] <inf> fs_nvs: 8 Sectors of 4096 bytes
    [00:00:00.080,535] <inf> fs_nvs: alloc wra: 5, bd0
    [00:00:00.081,176] <inf> fs_nvs: data wra: 5, a60
    [00:00:00.102,172] <inf> net_openthread_platform: State changed! Flags: 0x101fc710 Current role: disabled Ip6: down
    *** Booting nRF Connect SDK v3.1.1-e2a97fe2578a ***
    *** Using Zephyr OS v4.1.99-ff8f0c579eeb ***
    [00:00:02.407,012] <inf> coap_server: Starting

    That was a hard nut!

Children
Related