What’s the best way to do firmware updates over the air (FOTA) for trackers?

Hello,

I’m interested in your recommendations for my application FW and what you offer for the modem FW.

Thanks,

Brian

1 Like

There are two ways to perform Firmware Over The Air (FOTA) updates:

  1. Network-Initiated FOTA:

    • Supported by Verizon and part of the GM02S certification.

    • For other carriers, supported through a partner, AVSystem.

    • Reference: “Monarch2 - LwM2MFOTAService - Rev.1.pdf”

    • Note: You do not need your own infrastructure for this method.

  2. Device-Initiated FOTA:

    • Simpler to implement but requires your own infrastructure.

    • AT Command: +SQNSUPGRADE(it supports HTTP/HTTPS, FTP/FTPS)

    • References:

      • AT Command Reference Manual: “Monarch2-ATCommandsReferenceManual-LR82-Rev.3c.pdf”

      • Application Note: “Monarch2-ModemAppBasics-Rev.4.pdf” (section 13: FOTA management)

Dear Brian,

Greg has already outlined the two supported approaches for performing firmware updates on the modem. In addition to that, I’d recommend planning your overall update strategy with a clear distinction between:

  • Application firmware updates (your code running on the MCU/application processor)

  • Module firmware updates (the Sequans modem itself)

For your application firmware in particular, a few best practices can help ensure smooth and reliable updates:

  • Use delta updates when possible to minimize data volume.

  • Implement resume/retry logic so that if the connection drops, the device can continue from the last received chunk instead of restarting.

  • Always verify the update signature before applying, leveraging secure boot mechanisms. (which you can leverage on the module for the module FW update)

  • Apply updates under safe conditions only (e.g., battery above a threshold and device idle).

  • Design a rollback path, keeping a last known good firmware image in flash in case the update fails.

  • Be mindful of NB-IoT limitations: large updates in the MB range are not practical. Try to keep update sizes below ~200–300 KB whenever possible.

These considerations will make your update process more resilient in real-world deployments and save you troubleshooting effort later.

Best regards,

Jeremy