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?