/Launcher

Firmware Launcher for ESP32 boards like: M5Stack, Lilygo, Marauder and CYD devices.

Primary LanguageC++MIT LicenseMIT

Launcher

Application Launcher for M5Stack, Lilygo, CYDs, Marauder and ESP32 devices.

Join our Discord community

How to Install

  • Use the Flasher: Launcher Flasher.
  • Use M5Burner, or
  • Download the .bin file from Releases for your device and use https://web.esphome.io/ or esptool.py and flash the file: Launcher-{ver}-{YourDevice}.bin into your device.

How to Use

  • Turn your Device on
  • Press M5 (Enter) in the Launcher Start Screen to start Launcher
  • Choose OTA to install new binaries from M5Burner repo
  • After installed, when turn on the device, if you don't press anything, the installed program will be launched.

My SD Card doesn't work!

  • Make sure your SD is a SDHC (Not SDXC)
  • Maximum size of 32Gb (I use 8 or 16Gb)
  • Formatted in FAT32 (Use Rufus tool to format your SD Card)

With Launcher you'll be able to:

OTA - OTA Update

  • Install binaries from M5Burner repository (yes, online, without the need of a USB Cable)
  • Install binaries from a WebUI, that you can start from CFG option, installing binaries you have on your computer or smartphone
  • Install binaries from your SD Card

SD - SDCard Management

- Create new Folders, - Delete files and folders, - Rename files, - Copy and paste files, - Install binaries

WUI - Web User Interface

- Manage files on the SD Card - Install Binaries wirelessly using OTA Update option - Deploy instalation through the file list

CFG - Configurations (Customization)

- Charge Mode - Change brightness - Change Dim Time - Change UI Color - Avoid/Ask Spiffs (Change to not ask to install Spiffs file system, only Orca One uses this feature) - Change rotation - All files/Only Bins (see all files or only .bins - default) - Change Partition Scheme (allows installing big apps or UiFlow2, for example) - List of Partitions - Clear FAT partition - Save SPIFFS (Save a copy of the SPIFFS partition to restore when needed) - Save FAT vfs (Save a copy of the FAT partition to restore when needed) - Restore SPIFFS - Restore FAT vfs

Tips

* Having an SD card is good for better experience, but not really needed. [SDCard Hat for M5StickCs](https://www.thingiverse.com/thing:6459069) * You can learn more about how it works o [Launcher Wiki](https://github.com/bmorcelli/Launcher/wiki/Explaining-the-project). * Where/How do I find Binaries to launch -> [Obtaining binaries to launch](https://github.com/bmorcelli/Launcher/wiki/Obtaining-binaries-to-launch) * Now you can download binaries from [HERE!](https://bmorcelli.github.io/Launcher/m5lurner.html)

Known Issues

  • UiFlow 1 doesn´t work with Launcher.. it uses an old MicroPython distro, that uses an old ESP-IDF distro with lots os secrets that I couldn´t figure out.

To-Do list

Things that needs to be done in next updates * [ ] LVGL for e-paper displays * [ ] Move to ESP-IDF Platform

Latest Changelog

  • 2.6.3:

    • Fixed Marauder keyboard
    • Changed from EEPROM to NVS to save configs and Wifi creds Issue 232
    • Port to M5-PaperS3
    • Fixed SelPress leaking into main menu
    • T-Embed (all) and T-LoraPager Encoder enhancement
    • WebUi session enhancement and fixes
  • 2.6.2:

    • Fixed T-Embed CC1101 OTA Link
    • Changed SD file listings for speed(PR 230) Issue 229 thanks @geo-tp and @emericklaw
  • 2.6.1:

    • Fixed T-Deck Plus touchscreen (added new env for it)
    • Fixed M5Stack CoreS3 SD Card not mounting
    • Add Delete from Favorites option
  • 2.6.0:

    • Pulling data from my new api, integrating all devices list with m5burner api and counting downloads into the m5burner database.
    • OTA Pagination (pages of 100 firmware ordered by download-default)
    • New Device: M5Stack Tab5.
    • New Device: Lilygo T-HMI
    • New Feature: Backup SPIFFS/FAT now prompts to merge data into a chosen binary, so you can install firmware and data choosign SPIFFS Yes on install and backup B Binaries now have incremental names.
    • New Feature: Added Filter and ordering to the fimware list.
    • New Feature: Added Starred firmware list (controlled by me.. support the project to have yout firmware into the starred list.).
    • New Feature: Added "Favorite" (Need SD Card), where you an add the firmwares from the OTA list, or Manually add your binary links from your local server or whatever.
    • config.conf changes:
...
    "favorite": [
      { // Example of firmware added into Favorites through OTA function
        "name": "Evil-Cardputer-7h30th3r0n3",
        "fid": "2128851a0c98a4c1d15ac1a327b49812",
        "link": ""
      },
      { // Example of my custom link file added manually editiing this file
        "name": "Launcher Beta link",
        "fid": "", // leave it blank
        "link": "https://github.com/bmorcelli/Launcher/releases/download/beta/Launcher-m5stack-cardputer.bin"
      },
      {
        "name": "Bruce Beta link",
        "fid": "",
        "link": "https://github.com/pr3y/Bruce/releases/download/betaRelease/Bruce-m5stack-cardputer.bin"
      },
    ],
    "c0:4e:30:13:8d:f4": 1, // Rotation is now bound to hardware MAC
...

Older Changelogs

  • 2.5.3:

    • Restored T-Deck OTA
    • Refined T-Deck Touchscreen inputs
  • 2.5.2:

    • Fixed Marauder V6 touchscreen and CYDs touchscreen unresponsive issue and fixed Dim screen
    • Fixed Marauder Mini and V7 screen dimming.
    • Fixed Smoochiee board inputs and SDCard issue
    • Fixed Longpress on Cardputer ADV
    • Fixed folder creation on subfolders
  • 2.5.1:

    • Fixed Cardputer ADV Keyboard compatibility
    • Fixed issue where OTA firmware list wasn't being fully downloaded.
  • 2.5.0:

    • Moving to pioarduino 3.3 based framework (ESP-IDF 5.5)
      • Enable USB Mass Storage to SD_MMC devices (T-Display-S3 and touch and T-Dongle S3 tft)
      • Partition changes
      • Firmware updates
      • OTA lists and install
    • Added keyboard support to T-Deck Pro #180
    • Fixed compatibility with UIFlow 2.3.x #192
    • Added CSS, JS, Html online minifier
    • Moved to ESP32Async/ESPAsyncWebServer official repo
    • Port to Cardputer ADV thanks to @n0xa
    • Port to Lilygo Lora Pager by @emericklaw
    • Port to CYD-4827S043R -> WIP
    • Fixed first line filelist
  • 2.4.10:

    • Fixed T-Embed screen
    • Fixed StickC (and plus) keyboard navigation
    • Phantom touchscreen mapping
  • 2.4.9:

    • Fixed T-Display-S3 PRO
    • Enabled OTA for Marauder Mini
  • 2.4.8:

  • 2.4.7:

    • WebUi: Multi file upload through drag/drop or file/folder selector, now it supports folder upload, and sorting.
    • StickC blackscreen fix
    • T-Dongle-S3 (tft) port
    • T-Display-S3 port
  • 2.4.6:

    • UiFlow2 v2.2.3 and restored StickCPlus2 compatibility
    • split webui files
    • USB Interface to manage SD files on ESP32S3 devices (ESP32 can't do it)
    • Compressed WebUI with gzip
    • Port to CYD-3248S035C and CYD-3248S035R #125
    • Interfaces skipping options (multiple clicks) #127 #126 comment
    • Fixed StickCPlus keyboard colors
    • Fixed Back to list on OTA (will be enhanced when having multiple lists)
    • (rollback) Use http download/update for OTA to reduce flash memory.
  • 2.4.5:

    • Port to CYD-2432S024R #99 , CYD-2432W328R, CYD-2432S022C #112 , CYD-2432S032C, CYD-2432S032R
    • Fixed Marauder V4-OG device
    • Removed Battery indication when it is not available (or 0%)
    • Fixed Headless 16Mb environment #121 #120
    • Now using ArduinoGFX as main graphics lib, with support to TFT_eSPI and LovyanGFX
  • 2.4.4:

    • Disabled OTA menu for non M5 Stack Devices (save flash memory for CYD and Marauder, mostly), creating a new partition scheme for these devices
    • Fixed T-Embed CC1101 battery value
  • 2.4.3:

    • Fixed buttons on Core devices
    • Fixed random restartings when dimming screen
    • Ported to Lilygo E-Paper S3 Pro (Only Pro for now)
    • Fixed T-Embed return from deepSleep
  • 2.4.2:

    • UiFlow2 v2.2.0 compatibility #92 for Cardputer, Removed from StickCPlus2 due to lack of storage
    • Fix for #93 #97 #95
    • Possibility to connect to Hidden Networks #89 by typing the SSID and Pwd
    • Changed porting system, reading inputs on a background task (same as Bruce)
    • Enhanced Keyboard
    • Added Portrait rotation for bigger screens (bigger than 200x200px, such as CYD, Core devices)
  • 2.4.1:

    • T-Deck SD Card fix (Disable LoRa Chip, CS pin to High state, to avoid conflicts) #86
    • Lilygo T-Display-S3-Pro port #73
  • 2.4.0:

    • CYD-2432W328C port #80
    • Rolling texts for large SSIDs and large filenames
    • Added ways to return from menu after wrong WIFI passwords and other menus (Exit from keyboard itself won't be available) #82 #81
    • Fixed Orientation issues (not saving in the SD Card) #84
    • Dim Screen now turns the screen off
    • Renamed project to "Launcher" and add my nickname in the boot animation
    • Changed interfacing code, preparing for new ports #83
  • 2.3.2:

    • T-Embed CC1101 power chip management fix
  • 2.3.1:

    • Fox for #77
    • Fixed screen direction for T-Deck devices
    • Fixed Json handling and config.conf random fails
  • 2.3.0:

    • Ported to Lilygo T-Embed CC1101
    • Ported to Lilygo T-Embed
    • Ported to Lilygo T-Deck
    • Headless version for ESP32 and ESP32-S3
    • StickCs Power Btn and Prev butn now act to go upwards on Menus... long press to exit menu
  • 2.2.5:

    • Changed framework to remove all Watchdog Timers #61 #63 and solve some SD related issues
    • Set Grove pins to LOW state on StickCs and Cardputer to avoid 433Mhz jamming while RF433T is connected
  • 2.2.4:

    • Finally ported to CoreS3 and CoreS3-SE
    • Added reset to watchdog on WebUI and check for free memory when loading files to WebUI, to avoid crashes.
  • 2.2.3:

    • StickC, Plus and Plus2: removed power btn from skip logic at start.
    • Changed EEPROM Addresses to avoid problems with the new Bruce and other firmwares..
  • 2.2.2:

    • Port for CYD-2432S028R and CYD-2-Usb
    • Added check after finish the download that will delete failed downloaded files
  • 2.2.1:

  • 2.2.0:

    • M5Launcher 2.2+ now can be updated OverTheAir or Using SD Card
    • Ui Color settings (can be customized on /config.conf file)
    • Reduced flickering on SD files navigation
    • Fixed problem when firmware names have "/" that prevent downloading
    • Appended firmware Version into download Name.
    • Added Dim time to lower brightness and CPU freq while idle
    • Added "Chage Mode" on settings, reducing CPU fre to 80Mhz and brightness to 5%, #40
    • Fixed Download progressbar #41
    • Change default folder for download (manually on /config.conf) #15
    • Save more SSIDs and pwd, connect automatically if is a known network (config.conf) #30
    • Slightlty increased Wifi Download/OTA Speed, using a customized framework.
  • 2.1.2:

    • Fixed OTA error message
    • Increased Options Menu width and reduced menu flickering
  • 2.1.1:

    • Fixed UIFlow Compatibility
    • Fixed SD card issues
    • Small Fixes #37
  • 2.1.0:

    • Core Fire (all 16Mb Core devices) and Core2 compatibility
    • Turn SPIFFs update optional (turne off by default) (config.conf)
    • De-Sprite-fied the screens for Core devices (No PSRam, unable to handle huge Sprites) #34
    • Make keyboard work with touchscreen capture in Core devices
    • Dedicated btn for WebUI on main screen #22
    • Multiple files upload on WebUI #28
    • Update FAT vfs partition to make compatible with UIFlow2 #29
    • Partition changer, to allow running DOOM and UIFlow on Cardputer and StickC
    • Fixed (increased number of files) #33
    • Backup and Restore FAT and SPIFFS Filesystems. If you use UIFlow, you can save all sketches into your device and make a backup to restore after reinstall UIFlow or MicroHydra or CircuitPython
  • 2.0.1:

    • Fixed UIFlow Instalation #20
    • Fixed Folder creation on WebUI #18
    • Fexed problem that preven webUI to open in some cases #16
    • Now M5Launcher formats FAT vfs partition, so make sure you have saved your data into SDCard when using MicroPython, UIFlow or MicroHydra #19
  • 2.0.0:

    • SD: added Folder creation, delete an rename files and folders, copy and paste files
    • OTA (Over-The-Air update): Added feature to list the programs available in M5Burner and install it fro the internet.
    • WebUI: Added a WebUI where you can manage your SD Card and install new binaries wirelessly
    • Some other minnor features
  • 1.3.0:

    • Added support to Micropython based binaries (MicroHydra), with 1Mb FAT partition to Cardputer and StickCPlus2 and 64kb to StickC and Plus1.1
  • 1.2.1:

    • Launcher now lower the LCD power and fill the screen black before restart, to prevent lcd burn when using apps that don't use the Screen
    • Fixed display things and positions for the M5StickC
  • 1.2.0:

    • Excluded ota_data.bin file as it is not needed
    • Excluded StartApp application
    • Excluded OTA_1 partitions form .csv files because i found out it is not needed
    • Realocated free spaces into "SPIFFS" partition, giving room to improvements, and support to applications that use it (OrcaOne)
    • Added Bootscreen with battery monitor
    • Added Restart option and battery monitor to launcher
    • Added auto orientation to M5StickCs
    • Laucher does not create .bak files anymore!!
    • .bin file handling to avoid some errors: File is too big, file is not valid, etc etc..
  • 1.1.3:

    • Fixed menu files that ware occasionally hiding files and folders.
  • 1.1.2:

    • Adjusted Magic numbers to work with some apps (Volos Watch).
  • 1.1.1:

    • Changed OTA_0 Partition size from 3Mb to 6Mb on Cardputer and M5StickCPlus2
    • Added verification to identify MicroPython binaries and don't corrupt them with the cropping process (these apps still don't work, need more work...)
  • 1.1.0:

    • Fixed issues that prevented M5Launcher to launch apps on Cardputer
  • 1.0.1:

    • Fixed blackscreen and keyboard capture on Cardputer.