How to burn bootloader into a brand new nrf52832?

Hi, I got a brand new u-blox BMD-300-A-R soldered onto my custom PCB. I have connected the SWDIO, SWDCLK, VDD and GND to my nrf52dk according to instructions here (nRF52 Series > nRF52832 > nRF52 DK > Hardware description > Debug out for programming external boards).

I opened the Programmer v4.3.0 in nrf connect for desktop. It detected the J-Link device, but it says "No operations possible for device. If the device is a MCUboot device make sure it is in the bootloader mode". I think it's because it's a brand new MCU and doesn't have bootloader in it. 

I only have a nrf52dk in hand. Can I use it to burn bootloader onto my MCU? If so, how can I do it? Thank you very much!

Parents Reply Children
  • Sorry, it's "nrfjprog --deviceversion". 

    Can you execute  "nrfjprog -f nrf52 ––recover"? If not, please provide the log.

  • "nrfjprog --deviceversion
    [error] [ Client] - Encountered error -102: Command connect_to_emu_with_snr executed for 263 milliseconds with result -102
    1050386997 - UNKNOWN
    [error] [ Worker] - An unknown error."

    "[2024-Apr-11 15:10:13] [debug] --------------------------------------------------------------------------------
    [2024-Apr-11 15:10:13] [debug] nrfjprog -f nrf52 ––recover --log
    [2024-Apr-11 15:10:13] [debug] nrfjprog version 10.24.1 external
    [2024-Apr-11 15:10:13] [debug] --------------------------------------------------------------------------------
    [2024-Apr-11 15:10:13] [ info] Load library at C:\Program Files\Nordic Semiconductor\nrf-command-line-tools\bin\nrfjprog.dll.
    [2024-Apr-11 15:10:13] [ info] Library loaded, loading member functions.
    [2024-Apr-11 15:10:13] [ info] Member functions succesfully loaded.
    [2024-Apr-11 15:10:13] [debug] [ Client] - open
    [2024-Apr-11 15:10:13] [debug] [ Client] - start
    [2024-Apr-11 15:10:13] [ info] [ Client] - stdout: Jlinkarm nRF Worker ready. Handling sequence dc3467b3-117a-44c1-92d4-df20b6a535b8.
    [2024-Apr-11 15:10:13] [trace] [ Client] - Command open executed for 23 milliseconds with result 0
    [2024-Apr-11 15:10:13] [debug] [ Client] - config
    [2024-Apr-11 15:10:13] [debug] [SeggerBackend] - Logger sink registered in Segger backend logger
    [2024-Apr-11 15:10:13] [debug] [ JLink] - Logger sink registered in JLink logger
    [2024-Apr-11 15:10:13] [debug] [ nRF52] - open
    [2024-Apr-11 15:10:13] [debug] [ nRF52] - just_check_family
    [2024-Apr-11 15:10:13] [debug] [SeggerBackend] - open_dll
    [2024-Apr-11 15:10:13] [debug] [SeggerBackend] - No J-Link DLL path was provided. Attempting to auto detect.
    [2024-Apr-11 15:10:13] [ info] [SeggerBackend] - Load library at C:\Program Files\SEGGER\JLink_V794e\JLink_x64.dll.
    [2024-Apr-11 15:10:13] [ info] [SeggerBackend] - Library loaded, loading member functions.
    [2024-Apr-11 15:10:13] [ info] [SeggerBackend] - Member functions succesfully loaded.
    [2024-Apr-11 15:10:13] [debug] [SeggerBackend] - Set batch mode
    [2024-Apr-11 15:10:13] [debug] [SeggerBackend] - dll_version
    [2024-Apr-11 15:10:13] [ info] [SeggerBackend] - Segger dll version 7.94.e loaded.
    [2024-Apr-11 15:10:13] [trace] [ Worker] - Command open executed for 2 milliseconds with result 0
    [2024-Apr-11 15:10:13] [trace] [ Client] - Command config executed for 15 milliseconds with result 0
    [2024-Apr-11 15:10:13] [debug] [ Client] - enum_emu_snr
    [2024-Apr-11 15:10:13] [debug] [ nRF52] - config
    [2024-Apr-11 15:10:13] [debug] [SeggerBackend] - enum_emu_snr
    [2024-Apr-11 15:10:13] [trace] [ Worker] - Command config executed for 1 milliseconds with result 0
    [2024-Apr-11 15:10:13] [debug] [ nRF52] - enum_emu_con_info
    [2024-Apr-11 15:10:13] [debug] [SeggerBackend] - is_connected_to_emu
    [2024-Apr-11 15:10:13] [debug] [SeggerBackend] - enum_emu_con_info
    [2024-Apr-11 15:10:13] [trace] [ Client] - Command enum_emu_con_info executed for 15 milliseconds with result 0
    [2024-Apr-11 15:10:13] [debug] [SeggerBackend] - is_connected_to_emu
    [2024-Apr-11 15:10:13] [trace] [ Worker] - Command enum_emu_con_info executed for 2 milliseconds with result 0
    [2024-Apr-11 15:10:13] [debug] [ nRF52] - close
    [2024-Apr-11 15:10:13] [debug] [SeggerBackend] - is_connected_to_emu
    [2024-Apr-11 15:10:13] [debug] [SeggerBackend] - close
    [2024-Apr-11 15:10:13] [debug] [SeggerBackend] - disconnect_from_emu
    [2024-Apr-11 15:10:13] [debug] [SeggerBackend] - is_connected_to_emu
    [2024-Apr-11 15:10:13] [debug] [SeggerBackend] - Segger Backend closed.
    [2024-Apr-11 15:10:13] [debug] [ nRF52] - nRF family DLL closed
    [2024-Apr-11 15:10:13] [trace] [ Worker] - Command close executed for 13 milliseconds with result 0
    [2024-Apr-11 15:10:13] [trace] [ Client] - Command close executed for 30 milliseconds with result 0
    [2024-Apr-11 15:10:13] [debug] [ Client] - terminate
    [2024-Apr-11 15:10:13] [trace] [ Client] - Command terminate executed for 0 milliseconds with result 0
    [2024-Apr-11 15:10:13] [trace] [ Worker] - Command terminate executed for 0 milliseconds with result 0
    [2024-Apr-11 15:10:13] [trace] [ Worker] - Executed 5 commands for 18 milliseconds
    [2024-Apr-11 15:10:14] [debug] [ Client] - Worker process exited with code: 0
    [2024-Apr-11 15:10:14] [debug] [ Client] - Worker process exited with code: 0
    [2024-Apr-11 15:10:14] [debug] [ Client] - Child process terminated with result 0
    [2024-Apr-11 15:10:14] [trace] [ Client] - Executed 5 commands for 83 milliseconds
    [2024-Apr-11 15:10:14] [debug] [ Client] - terminate
    "

  • Do you also provide power to the custom PCB? Make sure the J-Link commander can detect it as 3.3v. 

  • I am powering the custom PCB by connecting VDD and VTG on P20 from the nRF52-DK. The GND from the P20 is shorted with the GND on GPIO pins on nRF52-DK, and GND on my custom board

  • You have to provide power to both custom PCB and DK, instead of connecting the power from DK. 

    What voltage does the J-Link commander detect? Make sure the J-Link commander can detect it as 3.3v. 

Related