7 years, 5 months ago.

Sending Files to a Multitech mDot remotely

Hi,

I am working with a mDot and am attempting to set up OTA firmware updating. Of course the mDot does not have native support for OTA updates, although the mDot page does have a blog post explaining usage of the bootloader to implement software changes remotely. This part I understand, however I am unsure as to how I should send my file from a system to the mDot. As in, I am unsure how I would write a code that sends a file over the LoRaWAN network to the mDot to be processed and used to update. I have looked at the FirmwareUpdater library in the cookbook however I feel that it is unlikely that the mDots will have connections to the internet as otherwise we wouldn't use the LoRaWAN network. As such I am unsure what I will need to do so that OTA firmware updating can be successfully implemented as a feature of an application of the mDot.

Any suggestions on how to proceed would be greatly appreciated.

1 Answer

7 years, 5 months ago.

Posting from multitech.net forum:

We don’t currently support OTA firmware updates for the mDot, but it does have a bootloader that will flash new firmware if it finds new firmware in the filesystem on the external SPI flash. We have a writeup about updating firmware using the bootloader on mbed.

https://developer.mbed.org/teams/MultiTech/wiki/updating-firmware-using-MTS-bootloader

You’ll be interested in the “Updating Firmware from User Applications” section. You’ll have to get the FW to the mDot via serial, LoRa, etc, and put it into the filesystem using the mDot filesystem API. Then you’ll call

bool moveUserFileToFirmwareUpgrade(const char* file);

to give the file the proper name. Finally, initiate a system reset

void resetCpu();

On startup, the bootloader will detect the new firmware and update the application. The update should take 15 seconds, but this will vary depending on the size of the new application.

Hope this helps!

Cheers,

Mike

Accepted Answer