MCU Firmware Update

Hello everyone,

I am a beginner in working with nb-IoT. I have an ST board and I want to send its data to Leshan server using Quectel BC95-G. I have a basic question: Can I use FOTA to update the ST board from LwM2M server? Is it possible?

Thank you all!

It is possible to use FOTA to upgrade ST boards, but the general practice is to use DFOTA to upgrade.

1 Like

Would you please give me any documents that I can use DFOTA to upgrade my ST board via Quectel BC95G?

Quectel_BG95&BG77&BG600L_Series_DFOTA_Application_Note_V1.1.pdf (327.1 KB)

Thank you, but my problem is still there. This document is about how to use FOTA to update the Quectel module’s firmware, not a mcu that is connected to the Quectel module.
I want to update the firmware of a mcu (like an stm32 board) which is sending its data using nb-iot and Quectel module (like bc95-g). The bc95-g’s firmware update is ok, but I want to send firmware from the server to mcu. How can I do that using nb-iot?

You use the AT-commands to download your firmware file using LwM2M manually, and after that it depends on your MCU how you install it. But that latter part is a question for the STM32 support forum and not for Quectel.

Aniita I have the very same question like you but people keep replying about modem FOTA like that’s the only thing that needs an update.

After some research, I think you can use object 9 (LWM2M Software Management object) to trigger/monitor your STM32 board firmware update.
It’s a bit tricky but basically you have to provide a server(could be a simple CoAP server) for hosting your STM32 file, point object 9 to it and trigger your STM32 to start firmware update(just like the modem FOTA).
Now how do you download the firmware file is up to you. For me I use raw CoAP(outside of my Lwm2m handling). I also have to update object 9 on the status of the firmware download.

Hi Muhammad,

I am also having the same question for downloading FW for external MCU. What you mentioned in your comments regarding to lwM2M and CoAP means you can make use of built in lwM2M/CoAP stack inside of Quectel modules? Or you implement a separate lwM2M/CoAP client stack on external MCU??

Many thanks.

Hi Calvin,

I’m using the built-in LwM2M, but I created object 9 (Software Management object) to manage my MCU firmware update.
The Software Management object is similar to Firmware Update object that is occupied by the modem itself.
There is also limitation on how many bytes can be passed through the built-in LwM2M, thus I created a separate coap server to store and get the firmware section by section using built in Coap.

I do this to save some MCU flash space. But if you have a lot of Flash space I would recommend you to port LwM2M library on your MCU.