Hello, we are having issues with using the nrf9151DK as a programmer for our own custom nrf9151 board. As the board seems to be locked, we tried to unlock it using the nrfutil device recover command. This command, however, is never successful. Most failures contain errors about Memory Access errors; most times it also mentions "Probably a memory protection issue. Probe access is secure".
The VSCode extension reports the hardware as NRF9151_xxxx_REV3 (which on Google does not return any results, btw).
This log contains various attempts at making it work. Both the target and dev-board have been power-cycled between some attempts.
vincent@VM-Kubuntu-23:~/work/WX$ nrfutil device list
1052078938
Product J-Link
Board version PCA10201
Ports /dev/ttyACM0, vcom: 0
/dev/ttyACM1, vcom: 1
Traits boardController, devkit, jlink, modem, seggerUsb, serialPorts, usb
Supported devices found: 1
vincent@VM-Kubuntu-23:~/work/WX$ west flash --recover
FATAL ERROR: --build-dir was not given, and neither /home/vincent/work/WX nor /home/vincent/work/WX/build are zephyr build directories.
vincent@VM-Kubuntu-23:~/work/WX$ cd nrf_test_ws2812/
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ west flash --recover
-- west flash: rebuilding
[0/5] Performing build step for 'nrf_test_ws2812'
ninja: no work to do.
[4/5] cd /home/vincent/work/WX/nrf_test_ws2812/build/_sysbuild && /home/vincent/ncs/toolchains/911f4c5c26/usr/local/bin/cmake -E true
-- west flash: using runner nrfutil
-- runners.nrfutil: reset after flashing requested
Using board 001052078938
-- runners.nrfutil: Recovering and erasing all flash memory.
-- runners.nrfutil: Flashing file: /home/vincent/work/WX/nrf_test_ws2812/build/merged.hex
-- runners.nrfutil: Connecting to probe
-- runners.nrfutil: Recover
Error: One or more batch tasks failed:
* 1052078938: Device error: Failed to read AccessPort register 0x00: Unknown error in the J-Link DLL (error code =-1) (Generic)
FATAL ERROR: command exited with status 1: nrfutil --json device x-execute-batch --batch-path /home/vincent/work/WX/nrf_test_ws2812/build/nrf_test_ws2812/zephyr/generated_nrfutil_batch.json --serial-number 1052078938
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device erase
❌ Failed to erase 1052078938, Failed to attach to target: The Application core access port is protected (All) Error: One or more erase tasks failed:
* 1052078938: Failed to attach to target: The Application core access port is protected (All) (NotAvailableBecauseProtection)
The operation was unavailable for some of the devices because they had readback protection enabled. These devices might be possible to unlock using the `recover` subcommand. See `nrfutil device recover --help` for more information.
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover
❌ Failed to recover 1052078938, Device error: Emulator error: Failed to connect to device: Unable to detect a supported core Error: One or more recover tasks failed:
* 1052078938: Device error: Emulator error: Failed to connect to device: Unable to detect a supported core (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device erase
❌ Failed to erase 1052078938, Device error: Failed to read from memory address 0x50003620: Failed to write AccessPort register 0x04: Unknown error in the J-Link DLL (error code =-1) Error: One or more erase tasks failed:
* 1052078938: Device error: Failed to read from memory address 0x50003620: Failed to write AccessPort register 0x04: Unknown error in the J-Link DLL (error code =-1) (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device list
1052078938
Product J-Link
Board version PCA10201
Ports /dev/ttyACM0, vcom: 0
/dev/ttyACM1, vcom: 1
Traits boardController, devkit, jlink, modem, seggerUsb, serialPorts, usb
Supported devices found: 1
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover
❌ Failed to recover 1052078938, Device error: Unable to recognize the device: Unknown part number 0x12880000 Error: One or more recover tasks failed:
* 1052078938: Device error: Unable to recognize the device: Unknown part number 0x12880000 (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover --family NRF91
error: invalid value 'NRF91' for '--family <FAMILY>'
[possible values: nrf51, nrf52, nrf53, nrf54l, nrf54h, nrf91, nrf92]
For more information, try '--help'.
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover --family nrf91
❌ Failed to recover 1052078938, Device error: Unable to detect CTRL-AP at 4 Error: One or more recover tasks failed:
* 1052078938: Device error: Unable to detect CTRL-AP at 4 (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device device-info
serial_number: 001052078938
boardVersion: PCA10201
deviceFamily: NRF91_FAMILY
deviceName: nRF9151
deviceVersion: NRF9151_xxxx_REV3
jlinkObFirmwareVersion: J-Link OB-nRF5340-NordicSemi compiled Jul 8 2025 10:15:34
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device fw-update
error: unrecognized subcommand 'fw-update'
Usage: nrfutil device [OPTIONS] [COMMAND]
For more information, try '--help'.
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover
❌ Failed to recover 1052078938, Device error: Failed to write DebugPort register 0x08: Unknown error in the J-Link DLL (error code =-1) Error: One or more recover tasks failed:
* 1052078938: Device error: Failed to write DebugPort register 0x08: Unknown error in the J-Link DLL (error code =-1) (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover
❌ Failed to recover 1052078938, Device error: Unable to recognize the device: Unknown part number 0x91590009 Error: One or more recover tasks failed:
* 1052078938: Device error: Unable to recognize the device: Unknown part number 0x91590009 (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover
❌ Failed to recover 1052078938, Device error: NVMC Failed to write to NVMC.CONFIG: failed: Failed to read from memory address 0x50003108: Failed to write DebugPort register 0x08: Unknown error in the J-Link DLL (error code =-1) Error: One or more recover tasks failed:
* 1052078938: Device error: NVMC Failed to write to NVMC.CONFIG: failed: Failed to read from memory address 0x50003108: Failed to write DebugPort register 0x08: Unknown error in the J-Link DLL (error code =-1) (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover
❌ Failed to recover 1052078938, Device error: Failed to read AccessPort register 0xfc: Unknown error in the J-Link DLL (error code =-1) Error: One or more recover tasks failed:
* 1052078938: Device error: Failed to read AccessPort register 0xfc: Unknown error in the J-Link DLL (error code =-1) (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover
❌ Failed to recover 1052078938, Device error: Failed to read AccessPort register 0x08: Unknown error in the J-Link DLL (error code =-1) Error: One or more recover tasks failed:
* 1052078938: Device error: Failed to read AccessPort register 0x08: Unknown error in the J-Link DLL (error code =-1) (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover --swd-clock-frequency 100
❌ Failed to recover 1052078938, Device error: Failed to read AccessPort register 0x34: Unknown error in the J-Link DLL (error code =-1) Error: One or more recover tasks failed:
* 1052078938: Device error: Failed to read AccessPort register 0x34: Unknown error in the J-Link DLL (error code =-1) (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover --swd-clock-frequency 10
❌ Failed to recover 1052078938, Device error: Setting the debug port SELECT register failed while powering up sys and debug regions (Unknown error in the J-Link DLL (error code =-1)). Error: One or more recover tasks failed:
* 1052078938: Device error: Setting the debug port SELECT register failed while powering up sys and debug regions (Unknown error in the J-Link DLL (error code =-1)).
This might indicate that the debug port is unavailable. Double-check device power supply and SWD lines, and ensure that SWD is not disabled (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover --swd-clock-frequency 20
❌ Failed to recover 1052078938, Device error: Setting the debug port SELECT register failed while powering up sys and debug regions (Unknown error in the J-Link DLL (error code =-1)). Error: One or more recover tasks failed:
* 1052078938: Device error: Setting the debug port SELECT register failed while powering up sys and debug regions (Unknown error in the J-Link DLL (error code =-1)).
This might indicate that the debug port is unavailable. Double-check device power supply and SWD lines, and ensure that SWD is not disabled (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover --swd-clock-frequency 30
❌ Failed to recover 1052078938, Device error: Setting the debug port SELECT register failed while powering up sys and debug regions (Unknown error in the J-Link DLL (error code =-1)). Error: One or more recover tasks failed:
* 1052078938: Device error: Setting the debug port SELECT register failed while powering up sys and debug regions (Unknown error in the J-Link DLL (error code =-1)).
This might indicate that the debug port is unavailable. Double-check device power supply and SWD lines, and ensure that SWD is not disabled (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover --swd-clock-frequency 50
❌ Failed to recover 1052078938, Device error: Setting the debug port SELECT register failed while powering up sys and debug regions (Unknown error in the J-Link DLL (error code =-1)). Error: One or more recover tasks failed:
* 1052078938: Device error: Setting the debug port SELECT register failed while powering up sys and debug regions (Unknown error in the J-Link DLL (error code =-1)).
This might indicate that the debug port is unavailable. Double-check device power supply and SWD lines, and ensure that SWD is not disabled (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover --swd-clock-frequency 100
❌ Failed to recover 1052078938, Device error: Setting the debug port SELECT register failed while powering up sys and debug regions (Unknown error in the J-Link DLL (error code =-1)). Error: One or more recover tasks failed:
* 1052078938: Device error: Setting the debug port SELECT register failed while powering up sys and debug regions (Unknown error in the J-Link DLL (error code =-1)).
This might indicate that the debug port is unavailable. Double-check device power supply and SWD lines, and ensure that SWD is not disabled (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover
❌ Failed to recover 1052078938, Device error: Emulator error: Failed to connect to device: Unable to detect a supported core Error: One or more recover tasks failed:
* 1052078938: Device error: Emulator error: Failed to connect to device: Unable to detect a supported core (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover
❌ Failed to recover 1052078938, Device error: Memory access error at 0x50039e10. Probably a memory protection issue. Probe access is Secure Error: One or more recover tasks failed:
* 1052078938: Device error: Memory access error at 0x50039e10. Probably a memory protection issue. Probe access is Secure (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover
❌ Failed to recover 1052078938, Device error: Failed to read AccessPort register 0x00: Unknown error in the J-Link DLL (error code =-1) Error: One or more recover tasks failed:
* 1052078938: Device error: Failed to read AccessPort register 0x00: Unknown error in the J-Link DLL (error code =-1) (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover --family nrf91
❌ Failed to recover 1052078938, Device error: Failed to read from memory address 0x500038e4: Failed to write DebugPort register 0x08: Unknown error in the J-Link DLL (error code =-1) Error: One or more recover tasks failed:
* 1052078938: Device error: Failed to read from memory address 0x500038e4: Failed to write DebugPort register 0x08: Unknown error in the J-Link DLL (error code =-1) (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover --family nrf91
❌ Failed to recover 1052078938, Device error: Setting the debug port SELECT register failed while powering up sys and debug regions (Unknown error in the J-Link DLL (error code =-1)). Error: One or more recover tasks failed:
* 1052078938: Device error: Setting the debug port SELECT register failed while powering up sys and debug regions (Unknown error in the J-Link DLL (error code =-1)).
This might indicate that the debug port is unavailable. Double-check device power supply and SWD lines, and ensure that SWD is not disabled (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover --family nrf91
❌ Failed to recover 1052078938, Device error: Memory access error at 0x50039e10. Probably a memory protection issue. Probe access is Secure Error: One or more recover tasks failed:
* 1052078938: Device error: Memory access error at 0x50039e10. Probably a memory protection issue. Probe access is Secure (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover
❌ Failed to recover 1052078938, Device error: Memory access error at 0x00000000. Probably a memory protection issue. Probe access is Secure Error: One or more recover tasks failed:
* 1052078938: Device error: Memory access error at 0x00000000. Probably a memory protection issue. Probe access is Secure (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover --x-force-device NRF9151_xxxx_REV3
❌ Failed to recover 1052078938, Device error: Unable to recognize the device: The device NRF9151_xxxx_REV3 does not correspond to any known device in thError: One or more recover tasks failed:
* 1052078938: Device error: Unable to recognize the device: The device NRF9151_xxxx_REV3 does not correspond to any known device in the device database (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover --x-force-device NRF9151
❌ Failed to recover 1052078938, Device error: Failed to write AccessPort register 0x00: Unknown error in the J-Link DLL (error code =-1) Error: One or more recover tasks failed:
* 1052078938: Device error: Failed to write AccessPort register 0x00: Unknown error in the J-Link DLL (error code =-1) (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$ nrfutil device recover --x-force-device NRF9151
❌ Failed to recover 1052078938, Device error: TrustZone Flash access error. Probe has Secure access Error: One or more recover tasks failed:
* 1052078938: Device error: TrustZone Flash access error. Probe has Secure access (Generic)
vincent@VM-Kubuntu-23:~/work/WX/nrf_test_ws2812$
Trying to reset the device using the nrf Connect Desktop application also does not work. Please see the attached error logs.
12:58:45.101 Initialising the bundled nrfutil device 12:58:45.301 Using the bundled core version for nrfutil device: 8.1.1 12:58:45.376 Getting serial port options from the persistent store for 001052078938.pc-nrfconnect-programmer 12:58:45.377 Device connected with the serial number 001052078938 12:58:45.393 Using nrfutil device version: 2.19.2 12:58:45.394 Using nrf-device-lib version: 0.22.20 12:58:45.394 Using nrf-probe version: 0.58.3 12:58:45.394 Using SEGGER J-Link version: JLink_V9.50 12:58:45.394 Your version of SEGGER J-Link (9.50) is newer than the one this app was tested with (9.24a). The tested version is not required, and your J-Link version will most likely work fine. If you get issues related to J-Link with your devices, use the tested version. 12:58:48.045 Selecting device with the serial number 001052078938 12:58:48.369 Error: Failed with exit code 1. One or more device info tasks failed: * 1052078938: Device error: Failed to read AccessPort register 0x34: Unknown error in the J-Link DLL (error code =-1) (Generic) Message: Operation device-info failed, Device error: Failed to read AccessPort register 0x34: Unknown error in the J-Link DLL (error code =-1). 12:58:48.369 Selected device with the serial number 001052078938 12:58:48.369 Using nrfutil device to communicate with target via JLink 12:58:48.617 Reading readback protection status for Application core 12:58:48.619 Reading readback protection status for Application core 0% 12:58:48.697 Reading readback protection status for Application core 50% 12:58:48.697 Reading readback protection status for Application core 50% 12:58:48.721 Reading readback protection status for Application core 100% 12:58:48.722 Application core protection status 'NRFDL_PROTECTION_STATUS_NONE' 12:58:48.723 Reading readback protection status for Application core completed 12:58:49.084 Loading core information for Application core 12:58:49.086 Loading core information for Application core 0% 12:58:49.160 Loading core information for Application core 50% 12:58:49.160 Loading core information for Application core 50% 12:58:49.174 Loading core information for Application core 100% 12:58:49.176 Loading core information for Application core completed 12:58:49.752 Error: Failed with exit code 1. One or more batch tasks failed: * 1052078938: Device error: Unable to recognize the device: Unknown part number 0x22a20009 (Generic) Message: Batch task reset failed, Device error: Unable to recognize the device: Unknown part number 0x22a20009. 12:58:49.752 Error: Failed with exit code 1. One or more batch tasks failed: * 1052078938: Device error: Unable to recognize the device: Unknown part number 0x22a20009 (Generic) Message: Batch task reset failed, Device error: Unable to recognize the device: Unknown part number 0x22a20009. 12:59:08.253 Reading readback protection status for Application core 12:59:08.254 Reading readback protection status for Application core 0% 12:59:08.341 Reading readback protection status for Application core 50% 12:59:08.342 Reading readback protection status for Application core 50% 12:59:08.359 Reading readback protection status for Application core 100% 12:59:08.359 Application core protection status 'NRFDL_PROTECTION_STATUS_NONE' 12:59:08.360 Reading readback protection status for Application core completed 12:59:08.709 Reading memory for Application core 12:59:08.710 Reading memory for Application core 0% 12:59:08.782 Reading memory for Application core 50% 12:59:08.782 Reading memory for Application core 50% 12:59:09.123 Error: Failed with exit code 1. One or more batch tasks failed: * 1052078938: Device error: Failed to read from memory address 0x50003100: Failed to write DebugPort register 0x08: Unknown error in the J-Link DLL (error code =-1) (Generic) Message: Batch task memory-read failed, Device error: Failed to read from memory address 0x50003100: Failed to write DebugPort register 0x08: Unknown error in the J-Link DLL (error code =-1). 12:59:41.038 Parsing HEX file: /home/vincent/work/WX/nrf_test_ws2812/build/merged.hex 12:59:41.060 File was last modified at 6/19/2026, 11:56:43 AM 12:59:41.090 Update files regions according to Application core 12:59:41.090 Parse memory regions for file 12:59:50.803 Update files regions according to Application core 12:59:50.803 Parse memory regions for file 12:59:51.025 Reading readback protection status for Application core 12:59:51.026 Reading readback protection status for Application core 0% 12:59:51.102 Reading readback protection status for Application core 50% 12:59:51.103 Reading readback protection status for Application core 50% 12:59:51.156 Failed "reading readback protection status for application core". Error: code: 1, description: Generic, message: Batch task protection-get failed, Device error: Unable to recognize the device: Unknown part number 0x91510109 12:59:51.234 Error: Failed with exit code 1. One or more batch tasks failed: * 1052078938: Device error: Unable to recognize the device: Unknown part number 0x91510109 (Generic) Message: Batch task protection-get failed, Device error: Unable to recognize the device: Unknown part number 0x91510109. 13:01:07.399 Device connected with the serial number 001052078938 13:01:07.403 Update files regions according to Application core 13:01:07.403 Parse memory regions for file 13:01:13.099 Getting serial port options from the persistent store for 001052078938.pc-nrfconnect-programmer 13:01:13.099 Device connected with the serial number 001052078938 13:01:13.137 Getting serial port options from the persistent store for 001052078938.pc-nrfconnect-programmer 13:01:47.100 Selecting device with the serial number 001052078938 13:01:47.426 Selected device with the serial number 001052078938 13:01:47.427 Using nrfutil device to communicate with target via JLink 13:01:47.427 JLink OB firmware version J-Link OB-nRF5340-NordicSemi compiled Jul 8 2025 10:15:34 13:01:47.427 Device family NRF91_FAMILY 13:01:47.427 Device version NRF9151_xxxx_REV3 13:01:47.427 Board version PCA10201 13:01:47.446 Update files regions according to Application core 13:01:47.446 Parse memory regions for file 13:01:47.669 Reading readback protection status for Application core 13:01:47.670 Reading readback protection status for Application core 0% 13:01:47.745 Reading readback protection status for Application core 50% 13:01:47.746 Reading readback protection status for Application core 50% 13:01:47.771 Reading readback protection status for Application core 100% 13:01:47.771 Application core protection status 'NRFDL_PROTECTION_STATUS_ALL' 13:01:47.772 Reading readback protection status for Application core completed 13:01:47.890 Skipping reading core Application information as it is protected. 13:01:48.873 Error: Failed with exit code 1. One or more batch tasks failed: * 1052078938: Failed to attach to target: The Application core access port is currently closed. AP-Protect might be enabled (NotAvailableBecauseProtection) The operation is unavailable for some of the devices because they have readback protection enabled. These devices might be possible to unlock using the `recover` subcommand. See `nrfutil device recover --help` for more information. Message: Batch task reset failed, Failed to attach to target: The Application core access port is currently closed. AP-Protect might be enabled. 13:01:48.873 Error: Failed with exit code 1. One or more batch tasks failed: * 1052078938: Failed to attach to target: The Application core access port is currently closed. AP-Protect might be enabled (NotAvailableBecauseProtection) The operation is unavailable for some of the devices because they have readback protection enabled. These devices might be possible to unlock using the `recover` subcommand. See `nrfutil device recover --help` for more information. Message: Batch task reset failed, Failed to attach to target: The Application core access port is currently closed. AP-Protect might be enabled. 13:02:14.865 Recovering Application core 13:02:14.867 Recovering Application core 0% 13:02:14.947 Recovering Application core 50% 13:02:14.947 Recovering Application core 50% 13:02:15.584 Failed "recovering application core". Error: code: 1, description: Generic, message: Batch task recover failed, Device error: Setting the debug port SELECT register failed while powering up sys and debug regions (Unknown error in the J-Link DLL (error code =-1)). This might indicate that the debug port is unavailable. Double-check device power supply and SWD lines, and ensure that SWD is not disabled 13:02:15.682 Error: Failed with exit code 1. One or more batch tasks failed: * 1052078938: Device error: Setting the debug port SELECT register failed while powering up sys and debug regions (Unknown error in the J-Link DLL (error code =-1)). This might indicate that the debug port is unavailable. Double-check device power supply and SWD lines, and ensure that SWD is not disabled (Generic) Message: Batch task recover failed, Device error: Setting the debug port SELECT register failed while powering up sys and debug regions (Unknown error in the J-Link DLL (error code =-1)). This might indicate that the debug port is unavailable. Double-check device power supply and SWD lines, and ensure that SWD is not disabled. 13:02:26.343 Recovering Application core 13:02:26.345 Recovering Application core 0% 13:02:26.416 Recovering Application core 50% 13:02:26.417 Recovering Application core 50% 13:02:27.181 Failed "recovering application core". Error: code: 1, description: Generic, message: Batch task recover failed, Device error: Memory access error at 0x00000000. Probably a memory protection issue. Probe access is Secure 13:02:27.266 Error: Failed with exit code 1. One or more batch tasks failed: * 1052078938: Device error: Memory access error at 0x00000000. Probably a memory protection issue. Probe access is Secure (Generic) Message: Batch task recover failed, Device error: Memory access error at 0x00000000. Probably a memory protection issue. Probe access is Secure.
Please advise on what other tests to run.