My online name is tobozo, I'm french, soon 50 and working as a web developer but I'm more of a self-taught and professional beginner profile. My hobbies are electronics and organic development, I like creating/solving problems and contributing to open source projects while learning new stuff.
M5Stack-SD-Updater ( https://github.com/tobozo/M5Stack-SD-Updater ) is an Platform.io/Arduino library for M5Stack amd Odroid GO to package your apps on a SD card; and load them from a launcher menu such as the default SD Launcher/downloader example of this project or @lovyan03's Treeview based SD Launcher.
The SD-Updater library is the essential component that will make an existing sketch able to go back a launcher menu. It makes a strong use of the Updater.h library provided with esp32-core.
The other component, a menu launcher, can also act as a downloader (a la Windows Update).
Big thanks to external github contributors ( @lovyan03, @Reaper7, @partsandcirtuits ) for providing feedback and ideas.
-
SD-Updater Library
- Requires a precompiled "menu.bin" app bootable from the SD Card, OTA0 or OTA1 if rollback available
- Remembers preferred launcher (LovyanLauncher or TobozoLauncher, or any other)
-
SD-Updater Launcher Menu
- List up to 128 binaries in a paginated fashion
- Provide as much credit as possible to the developers (QR Code, URLs, nickname, etc)
- Load a binary from the SD, or from OTA0 if rollback available
- Maintain a relationship with the M5Stack appstore (platform code soon to be released)
- Bulk update all binaries from appstore
- Update binaries separately (suggested by @lovyan03)
- Select a preferred launcher (LovyanLauncher or TobozoLauncher, or any other)
- Perform SHA256 integrity checksum for downloaded files
- Provide basic TLS certificates management
-
Appstore Registry
- 44 apps made available to the downloader and clones
- 30 submodule projects (add yours!)
- 6 precompiled packages (add yours!)
- A basic folder structure
- SD-Updater Gitter community chat
- Launcher: https://youtu.be/myQfeYxyc3o
- Downloader: https://youtu.be/Y5lukYiGBAQ
Historically, the idea for the M5Stack-SD-Updater came out from an old similar project I did for the OLEDiTREK of my friend Hayri, which fitted on a much smaller board (Atmega328 + SSD1306) while replicating the sd-loadable features from gamebuino and arduboy.
- The SD-Updater is not part of the bootloader, including the library is still necessary
- Partition scheme changes can break the update (e.g. loading a binary produced by esp-idf)
- Creates a low security situation where any binary can be loaded
- You are awesome!
- Suggestion: please add a capacitive touch interface to the display
- Suggestion: please connect both TFT MOSI and TFT MISO to the M5 so we can make nicer screenshots
- Suggestion: please create an external psram module for older M5 models
- Developer: get the library from the library manager, and include it in your sketch Japanese tutorial
- M5Stack user : use @micutils's M5Burner to burn the menu.bin, then use the downloader
- https://github.com/tobozo
- https://twitter.com/TobozoTagada
- https://www.youtube.com/channel/UChMFiV1VVypTgVjm45pUcBw/videos
- Latest binary releases https://github.com/tobozo/M5Stack-SD-Updater/releases/latest
- SD-Updater on Odroid-Go https://forum.odroid.com/viewtopic.php?t=32008