Software Update via Ethernet - the mbed application can pull down an updated application binary from a web server and activate that binary. This library works only with the LPC1768, as it relies on the magic-chip boot-loader mechanism.

Dependents:   WattEye X10Svr PUB_SWUpdate

Success!! With this library, a network connection, and a web server hosting a new binary image, you can update the mbed firmware over the air (FOTA) - well, at least via Ethernet so far.

As of March 2015, it has been tested with the following mbed official libraries:

And a custom derivation:

  • HTTPClient v33, v32, which includes a custom HTTPFile.

Part of the update process involves checking the integrity of the downloaded binary file, for both a checksum and the program (file) size. To create this additional information, a small perl script is used (the important part is only 20 lines of code). See the documentation in the header file.

After the new binary is successfully downloaded, the checksum and the size are evaluated and if correct, then the old binary file is removed (this is the only way to cause the new binary to activate).

The mbed can then be automatically reset to activate the new image, or this may be deferred in case there is some other process necessary for an orderly restart.

Details are in the SWUpdate header file, and PUB_SWUpdate is a publicly accessible demonstration program for this library.

Changes

RevisionDateWhoCommit message
29:f67a7f54c173 2020-09-13 WiredHome Minor revision to debug macros default tip
28:881661d475c1 2018-11-18 WiredHome Minor changes to debug build only
27:3d3089b8212d 2019-07-14 WiredHome Clarify in return codes if the specified file does not exist.
26:f2bb6061dcb3 2018-05-07 WiredHome Added a method to get the current build number (SW version number).
25:af99bdcca2b4 2017-11-21 WiredHome Minor code cleanup
24:e400edb8d2ee 2017-11-10 WiredHome Add a method to translate an error code into text string
23:cfe84db2b2cb 2017-06-01 WiredHome Cleanup remove unnecessary include files.
22:2a010efe00da 2016-12-29 WiredHome Minor change from sprintf to snprintf
21:253e7da56ff9 2015-11-30 WiredHome Remove unused code.
20:cf73b0d75bb7 2015-01-19 WiredHome Documentation changes only to detail supported platform, and operating behavior.
19:169aab9047bd 2015-01-19 WiredHome Revise to detect full local file system.
18:5f7667d63a27 2014-10-11 WiredHome Documentation updates only.
17:1d318666246c 2014-07-05 WiredHome The cleanup function was not properly forming the current version filename, so could delete it on some circumstances.
16:de99e872fc9d 2014-07-05 WiredHome Permit reference to "long file" name on server, but truncate binary file name on local file system to 6 chars, allowing 2 for version number => staying at final of 8.3.
15:49cc43dcbbf6 2014-06-28 WiredHome Turned off debug, and added a disclaimer about which mbed firmware it is known to work with (in case it doesn't work with them all).
14:0e012d53c6df 2014-06-27 WiredHome bin file must be 8-chars total, so revised the example to have a shorter filename, and sequence number to be 2 digit, not 3.
13:cf76c2bd3dfc 2014-06-21 WiredHome Documentation is now up to date and believed accurate.
12:f1fdf8cabbc4 2014-06-21 WiredHome Still working on the documentation to get it to show up well on the library page.
11:4ef0309135e6 2014-06-21 WiredHome another documentation update.
10:78d727e8d0de 2014-06-21 WiredHome Documentation update only.
9:73067ef14c30 2014-06-21 WiredHome Several updates to make it more robust and reliable, including removal of all other .bin files.
8:8e840a036116 2014-06-15 WiredHome Documentation and rearranging a few files for easier maintenance.
7:a7efbae7e02e 2014-06-15 WiredHome Minor update to a debug diagnostic, and turned off debug.
6:6025fddc1af9 2014-06-14 WiredHome More updates to the docs for doxygen.
5:e10f18e9b93a 2014-06-14 WiredHome doc update, trying to get doxygen to present this non-class function.
4:1a3656ae80dc 2014-06-14 WiredHome doc update
3:c69fff55fc60 2014-06-14 WiredHome Updated documentation to support integrity checking.
2:ef2ac9627546 2014-06-14 WiredHome Improve documentation
1:208de08b1a19 2014-06-14 WiredHome Unconditionally try to remove the old bin file when a new one has been downloaded.; Add a few more warning messages.; Provide a placeholder for an integrity check of the new download.
0:e221363f7942 2014-04-21 WiredHome Software Update - not yet reliable