Hei everyone,
I’m currently trying to flash OpenThread onto the Adafruit Feather nRF52840 Express, with the help of this Guide.
Hardware & Software I use:
- Adafruit Feather nRF52840 Express, connected via USB.
- I tried it on macOS and Ubuntu.
- JLink version: 17.0.2
- nrfjprog version: 10.17.3 external
- Bootloader: UF2 Bootloader 0.6.2
When I try to flash my device I get the following Error Message:
ERROR: No debuggers were discovered.
NOTE: For additional output, try running again with logging enabled (--log).
NOTE: Any generated log error messages will be displayed.
And if I run it with the –log flag enabled I get this in a log file:
[ info]: --------------------------------------------------------------------------------
[ info]: nrfjprog -f nrf52 --chiperase --program ot-cli-ftd.hex --reset --log
[ info]: nrfjprog version 10.17.3 external
[ info]: --------------------------------------------------------------------------------
[ info]: Load library at /Applications/Nordic Semiconductor/lib/libnrfjprogdll.dylib.
[ info]: Library loaded, loading member functions.
[ info]: Member functions succesfully loaded.
[debug]: [ Client] - open
[debug]: [ Client] - start
[ info]: [ Client] - stdout: Jlinkarm nRF Worker ready. Handling sequence 4a6ee3a6-2ab7-4ca7-841c-942cb217da23.
[trace]: [ Client] - Command open executed for 11 milliseconds with result 0
[debug]: [ Client] - config
[trace]: [ Client] - Command config executed for 2 milliseconds with result 0
[debug]: [ Client] - enum_emu_snr
[trace]: [ Client] - Command enum_emu_con_info executed for 0 milliseconds with result 0
[debug]: [SeggerBackend] - Logger sink registered in Segger backend logger
[debug]: [ JLink] - Logger sink registered in JLink logger
[debug]: [ nRF52] - open
[debug]: [ nRF52] - just_check_family
[debug]: [SeggerBackend] - open_dll
[debug]: [SeggerBackend] - No J-Link DLL path was provided. Attempting to auto detect.
[ info]: [SeggerBackend] - Load library at /Applications/SEGGER/JLink/libjlinkarm.7.66.1.dylib.
[ info]: [SeggerBackend] - Library loaded, loading member functions.
[ info]: [SeggerBackend] - Member functions succesfully loaded.
[debug]: [SeggerBackend] - Set batch mode
[debug]: [SeggerBackend] - dll_version
[ info]: [SeggerBackend] - Segger dll version 7.66.a loaded.
[trace]: [ Worker] - Command open executed for 4 milliseconds with result 0
[debug]: [ nRF52] - config
[trace]: [ Worker] - Command config executed for 2 milliseconds with result 0
[debug]: [ nRF52] - enum_emu_con_info
[debug]: [SeggerBackend] - is_connected_to_emu
[debug]: [SeggerBackend] - enum_emu_con_info
[debug]: [SeggerBackend] - is_connected_to_emu
[trace]: [ Worker] - Command enum_emu_con_info executed for 0 milliseconds with result 0
[debug]: [ nRF52] - close
[debug]: [SeggerBackend] - is_connected_to_emu
[debug]: [SeggerBackend] - close
[debug]: [SeggerBackend] - disconnect_from_emu
[debug]: [SeggerBackend] - is_connected_to_emu
[debug]: [SeggerBackend] - Segger Backend closed.
[debug]: [ nRF52] - nRF family DLL closed
[trace]: [ Client] - Command close executed for 10 milliseconds with result 0
[debug]: [ Client] - terminate
[trace]: [ Client] - Command terminate executed for 0 milliseconds with result 0
[trace]: [ Worker] - Command close executed for 10 milliseconds with result 0
[trace]: [ Worker] - Command terminate executed for 0 milliseconds with result 0
[trace]: [ Worker] - Executed 5 commands for 16 milliseconds
[debug]: [ Client] - Child process terminated with result 0
[debug]: [ Client] - Worker process exited with code: 0
[debug]: [ Client] - Worker process exited with code: 0
[trace]: [ Client] - Executed 5 commands for 23 milliseconds
[debug]: [ Client] - terminate
So basically flashing doesn’t work but I don’t know why and I can’t really see any problem in the log file. Has anybody any idea or can help me in any way?
Is it possible that I need the SEGGER J-Link Debugger?
Thank you for any help.
Best regards,
Emily
2
Answers
You are correct, you’ll need a J-Link debugger or some other external programmer. The guide you linked to uses the nRF52840 DK, which has a SEGGER J-Link on board (it’s the white square if you look at the site.)
It’s a useful thing to have, especially if you plan on replacing all the firmware in the future (or actually debug :D.)
The nRF52840 from the Adafruit Feather nRF52840 comes with the Adafruit nRF52 UF2 bootloader, which you can use to flash OpenThread without extra hardware.
OpenThread needs to be compiled with the option OT_BOOTLOADER=USB like:
(cf. src/nrf52840/README.md from ot-nrf528xx.git).
You will see the conversion to U2F now says:
And after UF2 programming, the board should work as intended.