Reference   Language | Libraries | Comparison | Changes

SDU - Secure Digital Update

Executing an SD update using the SAMD SDU (Secure Digital Update) library is very easy! You simply have to include the SDU library to your sketch to gain access to this very cool feature. Including this library a software routine is included in your sketch. This routine starts when the boards boots and search for a file on the SD called UPDATE.bin. If such file is found the current sketch on the board will be overwritten with the new one.

Hardware

  • Arduino MKRZero;
  • SD card;

or

  • Arduino/Genuino MKR1000;
  • MKR SD Proto Shield;
  • SD card;

or

  • Arduino MKRFox1200;
  • MKR SD Proto Shield;
  • SD card;

Example

  • First of all open the blink example under File->Examples->01.Basics->Blink and modify it to include the OTA library like shown below.

#include <SDU.h>
// the setup function runs once when you press reset or power the board
void setup() {
 // initialize digital pin LED_BUILTIN as an output.
 pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
 digitalWrite(LED_BUILTIN, HIGH);   // turn the LED ON
 delay(1000);                       // wait for a second
 digitalWrite(LED_BUILTIN, LOW);    // turn the LED OFF
 delay(1000);                       // wait for a second

  • Upload it on board;
  • Now modify the Blink code to have a faster LED in this way;

#include <SDU.h>
// the setup function runs once when you press reset or power the board
void setup() {
 // initialize digital pin LED_BUILTIN as an output.
 pinMode(LED_BUILTIN, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
 digitalWrite(LED_BUILTIN, HIGH);   // turn the LED ON
 delay(250);                        // wait for a second
 digitalWrite(LED_BUILTIN, LOW);    // turn the LED OFF
 delay(250);                        // wait for a second
}
 

  • Export the binary clicking on Sketch->Export compiled Binary;
  • Go in the folder you chose to save your sketch and rename the .bin file in UPDATE.bin;
  • Put this file on the SD card and then insert it in the MKRZero or the MKR SD ProtoShield;
  • Reset the board;

You should now see the BUILTIN_LED that blinks faster so your sketch has been updated!


Last revision 2017/05/16 by AG

Reference Home

Corrections, suggestions, and new documentation should be posted to the Forum.

The text of the Arduino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.