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

nRF52 ANT DFU, hangs at wait_for_events()

Hello, I'm trying to implement a buttonless DFU via ANT for a custom nRF52 board. I've got the 212 v4.02 Softdevice and I'm using the 14.0.0 SDK. I am able to transmit and receive via ANT, I am able to go into my bootloader, and I can progress through the bootloader until I hit the "err_code = bootloader_dfu_start();" line. This function progresses until it hits "wait_for_events()". At this point it just hangs waiting for (I assume) an ANT event that never occurs.

When I attempt to connect to the device via "OTAUpdater.exe" I am unable to, thus no ANT event. I set the manufacturer ID and product ID to wildcard (0), select nRF52 as the platform, and it is unable to see my board. When the ANT-FS in the bootloader times out (~2 minutes via default setting), it kicks me back to my main program code, at which point ANT broadcasting starts working immediately.

I am able to perform an OTA update on my nRF52 DK using the same method I am trying with my custom device. Any suggestions?

Parents
  • I meant without the buttonless application. Only SoftDevice and bootloader. Then you should start in the bootloader directly, but as I said shot in the dark.

    There is a trick you can do to be able do debug. If you set optimizations to 0, then increase the amount of flash set aside for the bootloader and set the new start address in UICR. I set the flash start to 0x77000 and size to 0x9000. Then you you can change the BOOTLOADER_REGION_START to 0x77000.

    Have you checked with ANTware that the bootloader is actually broadcasting?

    Are you using the exact same bootloader firmware on the nRF52 DK and the custom board? If not, could it be that you forgot to set the ANT-FS network key? ANT_FS_NETWORK_KEY

Reply
  • I meant without the buttonless application. Only SoftDevice and bootloader. Then you should start in the bootloader directly, but as I said shot in the dark.

    There is a trick you can do to be able do debug. If you set optimizations to 0, then increase the amount of flash set aside for the bootloader and set the new start address in UICR. I set the flash start to 0x77000 and size to 0x9000. Then you you can change the BOOTLOADER_REGION_START to 0x77000.

    Have you checked with ANTware that the bootloader is actually broadcasting?

    Are you using the exact same bootloader firmware on the nRF52 DK and the custom board? If not, could it be that you forgot to set the ANT-FS network key? ANT_FS_NETWORK_KEY

Children
No Data
Related