M5Stack-SD-Updater

๐Ÿ’พ Customizable menu system for M5Stack and ESP32-Chimera-Core - loads apps from the Micro SD card. Easily add you own apps

MIT License

Stars
297

Bot releases are hidden (Show)

M5Stack-SD-Updater - 1.2.8 Latest Release

Published by tobozo about 1 year ago

What's Changed

  • Factory partition support
  • Add factory menu example
  • Removed submodules
  • Fixed compilation warning
  • Removed some dead code, renamed methods, updated example
  • Added property enabled/disabled to BtnXAction
  • Added setWaitDelay()
  • CI: dynamic core version planner

Full Changelog: https://github.com/tobozo/M5Stack-SD-Updater/compare/v1.2.7...v1.2.8

M5Stack-SD-Updater - 1.2.7

Published by tobozo over 1 year ago

What's Changed

  • Support for FFat and SdFat
  • Experimental tools for factory partition
  • M5Atom fixes

Full Changelog: https://github.com/tobozo/M5Stack-SD-Updater/compare/v1.2.5...v1.2.7

M5Stack-SD-Updater - 1.2.5

Published by tobozo over 1 year ago

What's Changed

  • fixes #180
  • fixes #179
  • fix for SDUCfg.setBinFileName() crashing

Special thanks to @GOB52 for thinking out of the box ๐Ÿ‘

Full Changelog: https://github.com/tobozo/M5Stack-SD-Updater/compare/v1.2.4...v1.2.5

M5Stack-SD-Updater - 1.2.4

Published by tobozo over 1 year ago

What's Changed

  • SdFat support (SdFs only)
  • fix for SD_MMC
  • Optional gzipped firmware support with ESP32-targz
  • new progress bar by @armel

Full Changelog: https://github.com/tobozo/M5Stack-SD-Updater/compare/v1.2.1...v1.2.4

M5Stack-SD-Updater - 1.2.1

Published by tobozo about 2 years ago

Added support for:

  • espressif packages 2.0.3 and 2.0.4
  • esp32-s3-box

Full Changelog: https://github.com/tobozo/M5Stack-SD-Updater/compare/v1.2.0...v1.2.1

M5Stack-SD-Updater - 1.2.0

Published by tobozo over 2 years ago

  • Moved fsBegin() as early init
  • Confirmed M5Unified support
  • Fixed Odroid-go support with some package versions
  • Enabled QR levels from 6 to 9
  • CI is now building with multiple packages (1.06, 2.0.0, 2.0.1, 2.0.2)
M5Stack-SD-Updater - 1.1.9

Published by tobozo over 2 years ago

M5Stack-SD-Menu changes

  • Fixed QRCode issue
  • Disabled downloader

New AppStore Example Features

  • Inherited the downloader from M5Stack-SD-Menu.
  • Apps can be downloaded/updated/hidden/deleted separately.
M5Stack-SD-Updater - 1.1.8

Published by tobozo almost 3 years ago

What's Changed

  • Better M5Unified and LFGX support
  • New setters for buttons and polling (see readme)
M5Stack-SD-Updater - 1.1.7

Published by tobozo almost 3 years ago

What's Changed

  • Added optional SDU_APP_AUTHOR and SDUCfg.setAuthorName() for lobby screen.
  • Improved lobby screen design and error reporting, added animation.
  • New SDUCfg.onButtonDrawCb type uses an extra argument (text shadow color), this will change again in a further release.
  • Reduced impact on binary size.

Full Changelog: https://github.com/tobozo/M5Stack-SD-Updater/compare/v1.1.6...v1.1.7

M5Stack-SD-Updater - 1.1.6

Published by tobozo almost 3 years ago

Fixes & Features

  • Added config option use_rollback along with SDUCfg.useRolllback( bool ), setting it to false will disable the rollback checks and force the loading of menu.bin from the SD Card. This adresses specific partition schemes that do not use OTA1/OTA2.
  • M5Stack-SD-Menu can now be compiled with platformio, while this is sub-optimal for binary size, it can still be used along with platformio binaries that use specific or arduino incompatible partition schemes.
  • Checked [email protected] and [email protected] core compliance
  • Detached M5Core2 from custom touch UI, now using native Buttons emulation from LovyanGFX.h/M5Core2.h/ESP32-Chimera-Core.h
  • Updated examples
M5Stack-SD-Updater - 1.1.4 (Lobby redesign, binary persistence)

Published by tobozo almost 3 years ago

Lobby screen redesign

Apologies for the colour choices, if it can be of any consolation, some elements of the lobby design can be customized and I'll be happy to integrate a better theme if a contribution shows up.

Customizing the colours is possible by overwriting some object propertis, see DefaultBtnStyle, SplashTitleStyle, SplashAppNameStyle, SplashAppPathStyle and ProgressStyle in M5StackUpdaterUI.h.

If a non-zero wait delay is provided as third argument to checkSDUpdater, the lobby screen is visible at every boot and runs a countdown until that delay is expired:

  // Setting `5000` is strongly recommended with touch screens.
  checkSDUpdater(
    SD,           
    MENU_BIN,     
    5000,         // <-- wait delay, (milliseconds, default=0)
    TFCARD_CS_PIN 
  );

During the countdown. the user can choose between three options:

  1. Loading the launcher (/menu.bin)
  2. Skipping the countdown and run the application
  3. Saving the sketch to the filesystem and run the application (see next topic "Binary persistence")

New config setters

  SDUCfg.setLabelSave( const char* label );  // change the label on the "Save" button
  SDUCfg.setAppName( const char* name );     // set the application name (displayed in the lobby)
  SDUCfg.setBinFileName( const char* path ); // set the application binary path (used by saveSketchToFS)

Binary persistence

saveSketchToFS is now implicit if a binary path is associated to the running sketch and the file does not exist on the SD Card

  SDUCfg.setAppName( "My Application" );         // Lobby screen label: application name
  SDUCfg.setBinFileName( "/MyApplication.bin" ); // If file path to bin is set for this app, it will be checked at boot and created if not exist

When set, the existence of the binary file will be checked on boot.

Whether the binary file exists or not, an extra Save button associated to BtnC will be shown in the lobby.
Using the Save button will manually create or overwrite the binary at the path specified by SDUCfg.setBinFileName.
This can be handy during development as well as for backuping both the menu.bin and the running app.


M5Unified compliance (see new example)

While the library is still under development, it may need some quirks to work outside M5Stack scope such as manually defining TFCARD_CS_PIN (default=4) before #include <M5StackUpdater.h>.


M5StickC

  • Added Macros for handling the lack of setFont() method in the M5StickC.h library and no BtnC implementation
  • Evaluating upcoming deprecation: the support for M5StickC.h will soon be dropped and replaced by M5Unified.h

M5Core2

  • M5Core2 / classic / AWS / tough are also embracing LFGX family drivers.
  • Evaluating upcoming deprecation: the support for M5Core2.h will soon be dropped and replaced by M5Unified.h

Github workflow

  • Sketches are now built on push/pull-request/release using github action
  • SD-Menu binaries are now added to release assets using a github workflow triggered on release publish
M5Stack-SD-Updater - 1.1.3 Button labels

Published by tobozo about 3 years ago

Added SDUCfg.setLabelMenu( const char* ) and SDUCfg.setLabelSkip( const char* ) to the config loader, to let the user customize the text in the action buttons visible in the lobby.

It must be called before checkSDUpdater().

An few extra macros have been added, see gitTagVersion.h

    #if defined M5_SD_UPDATER_VERSION_INT
      SDUCfg.setLabelMenu("<< Menu");
      SDUCfg.setLabelSkip("Launch");
    #endif
M5Stack-SD-Updater - Bugfix release

Published by tobozo about 3 years ago

Restored a macro based on esp-idf version rather than using the new ESP_ARDUINO_VERSION_VAL() macro which gives errors with older core versions.

See #156, thanks to @fermintm for reporting.

M5Stack-SD-Updater - 1.1.0 for ESP32 Arduino Core 2.0

Published by tobozo about 3 years ago

Support added for:

  • ESP32 Arduino Core 2.0
  • LovyanGFX/M5GFX shared syntax
  • LittleFS/PSRamFS
  • SDUpdater configuration
  • Fixed M5StikC

New Features:

  • saveSketchToFS(): copy sketch from flash to filesystem
  • #define SDU_APP_NAME to customize lobby screen
  • #define SDU_HEADLESS to use serial as action source for update
  • Early callback setters:
  SDUCfg.setProgressCb  ( myProgress );         // void (*onProgress)( int state, int size )
  SDUCfg.setMessageCb   ( myDrawMsg );          // void (*onMessage)( const String& label )
  SDUCfg.setErrorCb     ( myErrorMsg );         // void (*onError)( const String& message, unsigned long delay )
  SDUCfg.setBeforeCb    ( myBeforeCb );         // void (*onBefore)()
  SDUCfg.setAfterCb     ( myAfterCb );          // void (*onAfter)()
  SDUCfg.setSplashPageCb( myDrawSplashPage );   // void (*onSplashPage)( const char* msg )
  SDUCfg.setButtonDrawCb( myDrawPushButton );   // void (*onButtonDraw)( const char* label, uint8_t position, uint16_t outlinecolor, uint16_t fillcolor, uint16_t textcolor )
  SDUCfg.setWaitForActionCb( myActionTrigger ); // int  (*onWaitForAction)( char* labelLoad, char* labelSkip, unsigned long waitdelay )

Breaking changes:

  • checkSDUpdater()'s first argument (fs::FS) is now mandatory
  • Filesystem libraries must be #included prior to M5StackUpdater.h

Examples:

  • Headless: demo with no buttons and display, uses serial
  • CopySketchToFS: demo for the new saveSketchToFS() feature
  • M5Stack-SD-Menu: disabled downloader on non-psram builds
M5Stack-SD-Updater - 1.0.3

Published by tobozo almost 4 years ago

added library.json fix for platformio

M5Stack-SD-Updater - Maintenance/bugfix release

Published by tobozo almost 4 years ago

compilation fix & code improvement

M5Stack-SD-Updater - Driverless and Partial M5Core2 Touch Support

Published by tobozo about 4 years ago

  • M5Core2 + ESP32-Chimera-Core have a fancier Touch UI
  • Updated example sketch
  • Fixed a few bugs, but still beta quality
M5Stack-SD-Updater - M5Core2 + driver emancipation

Published by tobozo about 4 years ago

  • Addded headless mode
  • Removed every #include for any external M5Stack/M5Stick/M5Core2/ESP32-Chimera-Core library
  • Added M5Core2 support (with button emulation using Touch)
  • Updated examples
M5Stack-SD-Updater - LovyanGFX compliance + M5StickC example

Published by tobozo over 4 years ago

  • Removed 'textFont' mentions for LGFX compliance (beta-test URL)
  • Added @matsumo's m5stickc_tiny_menu
M5Stack-SD-Updater - M5StickC Fix release

Published by tobozo over 4 years ago