I just gave this a test myself. I started by setting my Notecard to minimum mode.
{"req":"hub.set","mode":"minimum"}
Next, I triggered a host firmware update in Notehub. After that I ran a bunch of syncs and verified that the Notecard will never download the firmware in minimum mode, no matter how many syncs you do.
{"req":"hub.sync"}
After that I switched my Notecard to periodic mode and triggered another sync.
{"req":"hub.set","mode":"periodic"}
{"req":"hub.sync"}
This time the Notecard immediately found the host firmware and downloaded the whole binary.
> {"req":"dfu.status"}
{
"status": "downloading",
"mode": "downloading",
"on": true
}
Shortly after it applied the update to the host.
> {"req":"dfu.status"}
{"err":"firmware update is in progress"}
And finished.
> {"req":"dfu.status"}
{
"status": "successful host update",
"mode": "completed",
"on": true
}
When it was done I put my Notecard back in minimum mode.
{"req":"hub.set","mode":"minimum"}
These are the steps you should be able to mimic in your firmware.
As far as I know the Notecard always downloads firmware binaries in one sync when in periodic or continuous mode, but there might be some exceptions for edge cases, so I can do some digging if you’re seeing different behavior.
TJ