This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

nRF52840 (MDBT50Q module) bricked while debugging - unable to recover with nrfjprog

I've just ran into this issue - I was debugging while developing using a J-Link on our own board. I tried setting up UART, set the pin config to

const app_uart_comm_params_t comm_params = {
        15,
        16,
        false, //RTS
        false, //CTS
        UART_HWFC,
        false,
        NRF_UART_BAUDRATE_115200
    };

In hindsight not the smartest choice to wildly try a pin number I think might work for the config, but alas, I thought that wouldn't lead to an unrecoverable bricking.

and tried to transmit a character as a test:


 while (app_uart_put(c) != NRF_SUCCESS);

At that line, my SES debug view somehow freaked out, I tried to stop the session, didn't work, so I shut it down and tried to reprogram.

Reprogramming is done over JTAG, Pin 53 for SWDCLK on the module, Pin 51 for SWDIO.

Didn't work.

Okay, probably bricked the board, next step: try to unbrick it.

So I ran nrfjprog -f NRF52 --recover --log :

Output if I don't supply voltage over my external source (obviously):

ERROR: [SeggerBackend] - Low voltage detected in target device.
ERROR: Unable to connect to a debugger.
ERROR: Low voltage detected at the target. Please make sure the device is
ERROR: properly supplied.

But if I do supply power:

Recovering device. This operation might take 30s.
ERROR: [SeggerBackend] - 10 second timeout elapsed, no time left to wait for debug port to power up.
ERROR: Recover failed. Please make sure that the correct device family is given
ERROR: and try again.

So, I am guessing I somehow shot my debug port in the foot. I do not have access to the reset pin on the board, as we have left it unconnected. Power to the board still is a solid 3.3V, however the status LED we implemented, that was lit up by default is not lit up anymore. - I'm no longer sure which port it was connected to, it was one of either P0.00, P0.01 or P0.26.

Are there any more steps I might try for recovery other than ripping out the module and soldering in a new one?

  • Is your J-Link able to connect to any other devices? I sometimes goes to a problem where the debugger (not nRF chip) itself goes into weird state and I had to reflash its firmware.

    I sometimes have luck with the presumably bricked device using the J-Link Configurator which looks like below.

    Also check if your reset line is connected wrongly or with a wrong pull.

  • Yeah, the J-Link works with other devices. I think the problem is now clear - we opted not to connect the reset line because we thought we didn't need it. Apparently, it is needed in this case. Due to the reset being on a pin on the underside of the module, I'm not able to patch it. A thing for the next prototype revision, then.

Related