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

Application service UUID gone after secure OTA DFU

Hello, 

I am using nRF52832 on SES v4.12 with SDK v15.3 and SD v6.1.1 on a custom board.

Background: 

I want to perform OTA DFU and with that i have two services enabled (secure dfu buttonless and NUS). I was facing OTA DFU issue in which i was getting CRC does not match error. This has been resolved here - https://devzone.nordicsemi.com/f/nordic-q-a/55653/dfu-crc-does-not-match-error

So, i have been able to perform OTA update. 

The package that i created includes BL+SD+APP. 

Problem: 

Once i perform the update and connect again, i only see one service, which is Secure DFU service and the other which is the main application service ID (NUS) is gone. I looked in the forum and found this -https://devzone.nordicsemi.com/f/nordic-q-a/39982/after-ota-dfu-bootloader-application-gone

But i do not quite fully understand as to what is to be done here. Could you please highlight on what is required for a proper DFU process? From what i understand from the post and infocenter that it is still a single update, so BL+SD+APP merged together should work fine internally. 

EDIT:

Zip created has only application hex in it. BL+SD+APP is programmed directly using nrfjprog. 

Please let me know if you require more information. 

Thanks a lot!

-SK

Parents
  • After successful dfu the new application should be started. The services available after an update depend on what you have in it. If there's only Secure dfu service, than it's either the buttonless service (check characteristic name in nRF Connect for Android) which means that your have flashed an app without NUS, or you're still in bootloader mode, that is the app has been rejected by the new bootloader do for some reason. The old app has been removed, a specially if SD's major version has changed, to make space for dual bank.

    In nRF Connect it may also be that another tab opened, with the bootloader address. Just close it and use the tab with your old device name. You may also clear cache, select Refresh services in the menu after connecting to your device.

  • I migrated the SDK from 14.2 to 15.3. In v14.2, this DFU process worked fine. That means i have both the services running after DFU process and yes, there was another tab that opened with the bootloader address. 

    But with 15.3, i donot see such a thing. SD major is still 132 that i am using with v6.1.1. 

    I ran nrfjprog --eraseall before programming the module with merged hex (BL+SD+APP) and then did a reset. Till here, application runs fine. I can see both the services on the nRF Connect. It is only when i try to update the application (creating a package) via OTA DFU, that i see the problem. When i try to connect, i see only Secure DFU service and not the other one. Not sure whats going on :(  

  • Hello, I tried flashing your hex file on nRF52832 DK, but the device does not start advertising.

  • Oh yes! it won't start advertising. Only after there is a button press, it will. :/ 

    Do u want me to modify pins for the DK in order for you to test? 

  • Hi,

    I noticed something strange though. Wanted to share here. 

    Once i program the device through nrfjprog and connect, i see the services as below:

    both services

    After OTA DFU, when i connect again, i see the service as below: 

    I noticed that characteristics for the secure DFU service is not buttonless service anymore and its something that is coming from bootloader (control point and packet characteristics).

    Would this give any indication to what might be happening? Any DFU settings that i should enable/disable in sdk config? 

    Attached - dfu logs for reference.

    DFU_LOG_ISSUE.pdf

  • Hi, 

    This is what i tried and now it seems problem is with bond forwarding somehow.

    I disabled the bond forwarding support in both bootloader and the application. So, basically this below:

    When i tried without bonds, everything is working fine. I can see both services intact and running fine. 

    Only when i tried to enable the bond support again, i ran into problems as discussed earlier. 

    Attached is the no bonds support DFU log for your reference. DFU_NO_BONDS_LOG_SUCCESS.pdf

  • That means you're connected to the bootloader. In the log you got error 133, could you try repeating the test several times and send log where it went further?

Reply Children
Related