1/*
2 Usage
3 This example demonstrates how to use the SAMD SFU library to update a 
4 sketch on any Arduino MKR board connected to a MKRMEM Shield. This sketch
5 prints out the date and time the sketch was compiled.
6
7 Steps to update sketch via MKRMEM shield:
8
9 1) Upload this sketch or another sketch that includes the SFU library
10    via #include <SFU.h>
11
12 2) Update the sketch as desired. For this example the sketch prints out
13    the compiled date and time so no updates are needed.
14
15 3) In the IDE select: Sketch -> Export compiled Binary
16
17 4) Open the location of the sketch and convert the .bin file to a C byte array.
18      cat SKETCH.bin | xxd --include > Binary.h
19
20 5) Copy Binary.h file from the sketch's folder to the SFU_LoadBinary sketch
21    and load it to the MKRMEM via SFU_LoadBinary sketch.
22*/
23
24/*
25 Include the SFU library 
26 
27 This will add some code to the sketch before setup() is called
28 to check if UPDATE.bin is present on the flash chip of the MKRMEM
29 shield. If this theck is positive the file is used to update the sketch
30 running on the board. After this UPDATE.BIN is deleted from the flash.
31*/
32
33#include <SFU.h>
34
35void setup() {
36  Serial.begin(9600);
37  while(!Serial) { }
38
39  // wait a bit
40  delay(1000);
41
42  String message;
43  message += "Sketch compile date and time: ";
44  message += __DATE__;
45  message += " ";
46  message += __TIME__;
47
48  // print out the sketch compile date and time on the serial port
49  Serial.println(message);
50}
51
52void loop() {
53  // add you own code here
54}
55