This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Bricked Sparkfun nRF52832?

I have the nRF52DK board and I am using that to reprogram the Sparkfun breakout. However, initially, I was using the Sparkfun Beefy UART device to flash the nRF52832 to begin my SPI project using BLE.

What happened: Firstly, I did something dumb.

Not getting the SPI example to work on the breakout board, I started diminishing the example's main loop to toggle an LED. This, of course, was being done at 3:30AM and I connected the LED to pin 8 and then the board can not be flashed.

In fact, the board does not acknowledge the initial transmission from the nrfutil.py utility.

Onto the nRF52 DK:

I can read the memory on the affected breakout board using the pin 19 interface of the evaluation board. I can erase the memory and write new memory. I even went so far to purchase another breakout board, savebin 512KB of working flash memeory and loadbin this file onto the affected board:

Nothing.

Failed to upgrade target. Error is: No data received on serial port. Not able to proceed.

Possible causes:

  • bootloader, SoftDevice or application on target does not match the requirements in the DFU package.
  • baud rate or flow control is not the same as in the target bootloader.
  • target is not in DFU mode. If using the SDK examples, press Button 4 and RESET and release both to enter DFU mode.

Question:

Is there a low level checksum I can obtain that would indicate whether the board has a hardware failure?

Is the board truly bricked or can it be jump started somehow - like setting a PC register?

Is there a known flash bin file that will do some HelloWorld dance?

Destination green recycle?

Thanks

  • Ah, what I am expecting it to do: The "good" board will enter a bootloader mode when a button sequence is followed. This presents the blue LED to flash in a specific pattern called the timebomb pattern. However, this does not happen on the malfunctioning board. Also, I tried to flash the device with the nrfutil and a known application that works, but I get the 'Failed to upgrade target' error. So, I am trying to get the board to a state that it was with a functioning bootloader.

    I am using J-Link Commander to flash and specifically, the savebin and loadbin commands.

  • I did some analysis of the nrfutil program and have determined that the utility will wait and timeout just after sending the init packet. Furthermore, the Beefy UART programmer has rx/tx leds and the tx LED (tx from the device) never illuminates. This makes me suspicious that the hardware has gotten affected by my mistake, but I am not aware of a test that I can perform to qualify or disqualify the hardware.

  • Almost there. Using your keen suggestion pertaining to the nRF52832 Product Specification I made copies of the code, FICR and UICR memory regions and wrote them to the affected device. Presently, the blue light is flashing as I was wanting, but, alas, the nrfutil can not flash through the UART device. I get the same error. I have verified that the nrfutil can flash a good device. So I am going to try making copies of the data ram and peripheral memory regions.

  • Looks like the device can not be programmed using the UART Sparkfun Beefy 3 FTDI Basic Breakout. However, I can program it using the J-link programmer on the nRF52 DK. This makes me consider I did affect the hardware negatively perhaps just the UART device.

    Thanks for all your help. It pointed me in the right direction.

  • This looks promising! I still doubt that you would "damage" some GPIO port and it's now impossible to use UART on it. I would also be very careful to attempt writing whole FICR and UICR regions, there are only few registers which are user (app) specific, rest should be managed by the chip without interference. Is there any small chance that Sparkfun loads some diversified data so FW works only if it matches S/N of the chip (8-byte string in FICR region)? Isn't there somewhere source code to Sparkfun bootloader (or entire pre-loaded FW)?

    Another point is that Nordic tools are multiplatform but I've always used Windows tools (nRFgo Studio and NRFJPROG from NRFTOOLS package) to recover/erase and flash nRF5x chips. Alternatives like NRFUTIL and OpenOCD/pyOCD are known to behave slightly differently...

    Another one: why insisting on proprietary UART bootloader if you can use SWD programming?

Related