Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Opta update via USB

The library's functionality centers around facilitating the process of updating Opta by reading the new firmware from a USB storage device.

Usage

The code below shows a basic example of how to use this library. More examples are included in the examples folder.

#include <OptaUSBUpdate.h>

void loop()
{
    // Start the update when the user button is pressed for at least 2s.
    if (digitalRead(BTN_USER) == LOW)
    {
        unsigned long now = millis();
        while (digitalRead(BTN_USER) == LOW)
        {
            if (millis() - now > 2000)
            {
                doUSBUpdate();
            }
        }
    }
}

void doUSBUpdate()
{
    // The file UPDATE.OTA is stored on the second FAT partition.
    OptaUSBUpdate_QSPI update(QSPI_FLASH_FATFS_MBR, 2);
    OptaUSBUpdate::Error update_error = update.updateFromUSB("UPDATE.OTA");

    if (update_error != OptaUSBUpdate::Error::None)
    {
        Serial.println("USB update error: " + String((int)update_error));
    }

    update.reset();
}

How to create UPDATE.OTA

To create the UPDATE.OTA file, start from a sketch and follow the steps:

  1. In Arduino IDE select Sketch->Export compiled Binary from the menu or, if using arduino-cli use the --export-binaries command line option.

  2. From the command line, execute the bin2ota.py program that can be found in the extras/make-ota folder:

$ extras/make-ota/bin2ota.py OPTA yoursketch.bin UPDATE.OTA

Resources

License

This library is released under version 3 of the GNU General Public License. For more details read the full license.

The code in extras/make-ota is a modified version of the Arduino code available from https://github.com/arduino-libraries/ArduinoIoTCloud/ and has the same license (GPL3).

About

Execute firmware updates from USB storage.

Resources

Stars

0 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages