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've taken the modifications that were done on the nRF52 DK project and I've implemented them in my current project. If I run things on the nRF52 DK I can connect immediately, and I am able to initialize the upload less than a second after I press upload on the OTA program. On the custom board I can connect immediately,, and when I try to upload it sits at 0%. I tried to look at the logs and it doesn't really give any real information other than the timeout.

    Just to clarify, once I'm able to connect via ANT-FS and the OTA Updater program and I click update, isn't everything supposed to be handled by the ANT stack? Even if I force the device into the DFU mode without ever entering the program application it doesn't work. I am still able to connect. Is this a settings issue? Something in the sdk_config.h?

Reply
  • I've taken the modifications that were done on the nRF52 DK project and I've implemented them in my current project. If I run things on the nRF52 DK I can connect immediately, and I am able to initialize the upload less than a second after I press upload on the OTA program. On the custom board I can connect immediately,, and when I try to upload it sits at 0%. I tried to look at the logs and it doesn't really give any real information other than the timeout.

    Just to clarify, once I'm able to connect via ANT-FS and the OTA Updater program and I click update, isn't everything supposed to be handled by the ANT stack? Even if I force the device into the DFU mode without ever entering the program application it doesn't work. I am still able to connect. Is this a settings issue? Something in the sdk_config.h?

Children
No Data
Related