Hi Nordic,
I'm able to do dfu without validation after few days of studying documentations and forum.
Here is the settings page i'm flashing:
nrfutil settings generate ^ --app-boot-validation NO_VALIDATION ^ --sd-boot-validation NO_VALIDATION ^ --softdevice C:\nordic\s113nrf52701\s113_nrf52_7.0.1_softdevice.hex ^ --family NRF52 ^ --application myfw.hex ^ --application-version 1 ^ --bootloader-version 1 ^ --bl-settings-version 2 ^ settings.hex nrfjprog --sectorerase --program settings.hex --verify pause
But i had to disable :
#define NRF_BL_APP_SIGNATURE_CHECK_REQUIRED 0
#define NRF_DFU_REQUIRE_SIGNED_APP_UPDATE 0
#define NRF_DFU_APP_ACCEPT_SAME_VERSION 1
#define NRF_DFU_APP_DOWNGRADE_PREVENTION 0
Here is the commands i'm using to create zip file:
nrfutil pkg generate ^ --debug-mode ^ --sd-req 0xCC ^ --app-boot-validation NO_VALIDATION ^ --application fw_B.hex ^ --hw-version 52 ^ fw_B.zip
I notice a difference in flashing behavior of the nordic App. usaully with signed image, i can see the upload opration in the graphic. But in my case without validation, after clicking DFU button and selecting my fw_B zip file, it prints:
-inittialising...
- Starting DFU (no upload appears in the graph yet)
- Starting Bootloader
Here i see that it reset, and bootlader (dfutarg) is connected listing three charac.
- Uploading new image ( without graphic showing the upload operation)
- reset and boot successfully my new image.
So it works but there is few differences with signed image and it pop up few questions in my mind:
Questions:
1) Is setting page have to be flashed before the bootloader ?
2) Could my problem coming from the fact i'm specifying application-version 1 after the argument --app-bootvalidation NO VALIDATION in settings page generation command?
3) When i generate the zip, i'm using --debug-mode that should avoid the version check. Does it works if bootladoer has NRF_BL_APP_SIGNATURE_CHECK_REQUIRED 1 in sdk_config?
4) How is set the priority if bootloader has version checked in sdk config, but setting page have --app-bootvalidation NO VALIDATION ?
5) i have a concern about #define NRF_BL_DFU_ENTER_METHOD_BUTTONLESS 0 . I'm using the buttonless dfu mode, that is working, but this setting is clear to 0. How is it possible?
6) In sdk_config.h : #define NRF_DFU_IN_APP 0 . We have a custom Flutter application that have to be able to do dfu. Should i set this field to 1 to autorize it ?
Sorry for all this questions but even if i search a lot in the forum, it is still confusing. i tried a lot of combinations, but it seems that some of them can replace others, making the stuff complex to understand.
To Debug , i think i will erase all the chip to remove bootloader, and comment ble_dfu_buttonless_async_svci_init() in the main of my app. it is the easiest to avoid to change every time the bootloader settings or generate each time a signed image...
Thanks for all this clarifications