Hi There,
Environment Description:
1. nRF Connect for VS Code v2023.1.44.
1. NCS Version v2.0.0.
2. Zephyr v3.0.99-ncs1.
3. MCUBoot v1.9.99
4. NRF52840.
5. NRF Connect mobile app Android v 4.26.0 Mobile app IOS V 2.6.
I am currently working on the implementation of OTA DFU using BLE, I have successfully implemented this functionality after following the documentation here., However there are some questions and perhaps missing functionality to fulfill our product's requirements, taking into account that our product consists of an LCD which should display the state of the update as it goes along.
By using these image management callbacks I am able to get the start of the DFU process as well as the DFU Pending event, nonetheless there is a discrepancy depending on which kind of device is used to perform for instance:
From an Android the workflow is as follows:
1. DFU Started form mobile phone -> 2. Get DFU Started Callback. -> 3. ~ 30 Seconds transferring the image. -> 4. Device goes into MCUBoot .... -> 5. ~30-40 Seconds later, Device resets. -> 6. get the Image confirmed callback.
Question 1: Why does step 5 take that long ? ( After Jumping to the first Image slot ).
2. From an iPhone However the workflow changes slightly as the confirmed callback is never received by the application, Which makes it tricky to display user updates:
Question 2: Why does the update from iPhone does generate the Confirmed callback ?
Question 3: Why are the swap types different (Android -> "Swap type: test", iPhone -> "Swap type: perm") ?
Finally, I would very much appreciate advise in regards to obtaining MCUBoot status actions in order to update the LCD accordingly while the bootloader is doing its magic, I did have a look online and found a couple of references to CONFIG_MCUBOOT_ACTION_HOOKS here, unfortunately it seems to be undefined when included in my child_image/mcuboot.conf file.
Question 3: What is the best way to obtain MCUBoot actions to execute my own code ( is there a sample for this ) ?
MCUBoot Configuration:
Main project Configuration:
Cheers !