Over the Air app deployment

07 Apr 2011

Hi All,

Have been searching for a while but found nothing related to remote deployment of software to the mbed.

So my current thinking is to transfer the .bin over a wireless link (xbee, Synapse RF Engine, GPRS) using a UART and write it to flash using the LocalFileSystem. If I understand things correctly the mbed should pick it up upon a restart?

I guess I could implement a serial transfer protocol like ymodem or zmodem for the file transfer part which might make the file transfer a little more robust and any terminal program could be used.... this could also be overkill.

Thoughts & comments?

Thanks, Serge

08 Apr 2011

Sounds like a pretty cool feature. Just remember though, when you're programming (presumably using a computer) you can't use the usb serial and file system at the same time.

08 Apr 2011

Hi,

This would not be using the USB serial but rather one of the other 3 uarts connected to some form of wireless adapter.

BTW, I did see a claim somewhere that USB Serial and LocalFS could be used together. http://mbed.org/users/okano/programs/localfilesystem_and_serialusb/lj760f/docs/main_8cpp_source.html

Is this not valid?

Thanks, Serge

08 Apr 2011

Hi J.C.

Sounds a little bit like my project / problem: Updating the .bin file from an USB stick.

http://mbed.org/forum/mbed/topic/2083/

But this could lead you to the same problem. The mbed takes the most recent .bin file. I can copy the .bin file from the usb stick to the LocalFileSystem but a restart does not update the running firmware. The only way to start mbed running my "updated" firmware is to open the .bin file from the LocalFileSystem from the computer and safe it again. This changes the timestamp of the .bin file and the reset updates the firmware. I have searched for a way to change the timestamp of the updated file before the reset. I think this could work but I couldn't find a way until now.

Maybe you have an idea how to solve this problem.

08 Apr 2011

Hmmmmm

"Just seen this thread; i'm afraid the local file system has no concept of time, so that is why you are seeing these results despite your excellent efforts!"

Found the above in the thread here (comment from Simon Ford of mbed) http://mbed.org/forum/helloworld/topic/879/?page=1#comment-4306

If this is the case it would be interesting to know how the mbed firmware loader decides when a file is "new"?

Thanks

08 Apr 2011

As far as I understood the mbed firmware loader it really looks at the timestamp. Since the localFileSystem has no "concept of time" ther will be no real work arround. That's not good.

08 Apr 2011

Hi Markus,

Try copying the file over an existing one; if there is only one file, it will load that one as it must be the newest.

Simon

08 Apr 2011

Hi Simon,

I also thought that this should work but it doesn't. I had only one .bin file and one .txt file with the firmware version on the localFileSystem. The .bin file contains the update function. There is the new firmware available on the USB stick and a .txt file with the higher firmware version. After the reset the mbed runs the update function and copies the new firmware over the original one. Since there is only .bin file it should be executed after the reset. But it doesn't. See my post http://mbed.org/forum/mbed/topic/2083/

08 Apr 2011

Hi Markus,

Sorry, yes, you are right, I wasn't thinking. It will assume nothing has changed. However, you could perhaps remove a file to force a switch. See:

Not perfect, but might get you something like what you want.

Simon

14 Sep 2011

Hi Simon, all, it was a long time ago, but I reaktivated my FirmwareUpdater based on Shinichiro Nakamura's ethernet updater version 0.0.2, because it is time to solve this problem for my diploma theses. Here I tried to delete all files on the mbed, and then copy the new file from the USB device. Like the tries before (it was in April:-), I get the same result: I can copy the file correctly to the mbed file system, but the "older" timestamp deters the magical mbed IC to reprogram the LPC. Is there any way to read/change the timestamp of a file on the local file system?

Best regards, Markus

26 Jun 2014

This is an old thread, that never fully concluded. Others may have also succeeded, but I offer this Software Update via Ethernet.