Launcher
Application launcher for M5Stack, Lilygo, CYD, Marauder, and ESP32 devices.
<img src="https://github.com/bmorcelli/Launcher/blob/main/M5Launcher.png?raw=true"> <img src="https://github.com/bmorcelli/Launcher/blob/main/New Launcher.jpg?raw=true" width="240" height="135"> <img src="https://github.com/bmorcelli/Launcher/blob/main/Launcher_anim.webp?raw=true" width="auto" height="135">
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 to flash the file
Launcher-{YourDevice}.bin to your device.
How to Use
- Turn your device on
- Press M5/Sel (Enter) on the Launcher start screen to get into Launcher
- Choose OTA to install new binaries from online services (M5Burner or GitHub links)
- After installation, when you turn on the device, the installed program will launch if you don't press anything.
My SD Card doesn't work!
- Make sure your SD card is SDHC (not SDXC)
- Use a maximum size of 32GB (I use 8 or 16GB)
- Format it as FAT32 (use Rufus to format your SD card)
- Ensure the partition scheme is MBR, not GPT
With Launcher you'll be able to:
OTA - OTA Update
- Install binaries from online repositories (M5Burner or GitHub links) without needing a USB cable
- Install binaries from a WebUI that you can start from the WUI option, using binaries you have on your computer or smartphone
- Install binaries from your SD card
SD - SD Card 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 the OTA Update option
- Edit text files
- Edit NVS information (UiFlow2 data, Launcher settings, and others)
- Deploy installations from the file list
CFG - Configurations (Customization)
- Charge Mode
- Change brightness
- Change dim time
- Change UI color
- Avoid/Ask SPIFFS (change whether Launcher asks to install the 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 large apps or UiFlow2, for example)
- List of partitions
- Clear the FAT partition
- Save SPIFFS (save a copy of the SPIFFS partition to restore when needed)
- Restore SPIFFS
PMan - Partition Manager
- View current partition scheme
- Create partitions
- Delete partitions
- Format partitions
- Back up data partitions (SPIFFS or FAT)
- Restore data partitions (SPIFFS or FAT)
- Resize partitions
Tips
Known Issues
- UiFlow 1 doesn't work with Launcher. It uses an old MicroPython distro, which uses an old ESP-IDF distro with lots of secrets that I couldn't figure out.
To-Do list
Things that need to be done in future updates
- [ ] LVGL UI (?)
- [ ] Move to ESP-IDF Platform
- [ ] Optimize Settings functions to save flash
- [ ] Optimize Storage functions to save Flash
Latest Changelog
-
2.7.2:
- [x] Adjusted boot logic, now it works as it was before.
- [x] Fixed devices that share TFT and Touch SPI bus (NM-CYD-C5 and others), that were unable to install firmware from SD Card.
- [x] Fixed devices that share TFT with SD Card being unable to download firmware from OTA.
-
2.7.1:
- [x] Fixed Launcher auto updater process.
-
2.7.0:
- [x] Improved navigation on devices with 5 buttons and keyboards; now you can navigate up and down on the main menu
- [x] Improved main menu for small screens (T-Dongle, StickC)
- [x] Custom Partition Manager "PMan" (no more hardcoded partitions on Cardputer)
- [x] Automatic partition maker, firmware sanity checker, and flash optimizer.
- [x] Ability to install more than one firmware at a time
- [x] Encrypted WiFi passwords within config.conf and NVS
- [x] Remodeled WebUI, adding the ability to edit text files and NVS fields saved in memory
- [x] Changed items on CFG for better understanding
- [x] Optimized WiFi/WebUI functions to save Flash
- [x] Enabled OTA for CYD-3248S035C and CYD-3248S035R
- [x] Port to M5-DinMeter
- [x] Port to Arduino Nesso N1
- [x] Port to Reaper Board
Older Changelogs
-
2.6.10:
- [x] Fixed navigation on 3-button devices that were triggering EscPress when pressing Next or Prev buttons.
-
2.6.9:
- [X] Port to NM-CYD-C5
- [x] Port to 3248W535C
- [x] Port to Waveshare-ESP32-S3-LCD-1.47
- [x] Port to T-Dongle-C5 (tft)
- [x] Port to T-Display S3 AMOLED Plus
- [x] Fix issue where brightness wasn't being saved
- [x] Fix issue where custom "downloads" folder wasn't being used
- [x] Fix issue where some firmware downloads weren't working due to prohibited characters in firmware names
- [x] Fixed SD card not mounting on T-Watch Ultra and adjusted UI for rounded edges on the main menu and file listings
- [x] Enabled WASD navigation for Lilygo T-LoraPager, T-Deck, T-Deck Plus, and T-Deck Pro
- [x] Added touch calibration for XPT2046-driven devices (resistive touchscreens, like CYD, Marauder, Phantom, and T-HMI). It will be prompted when no calibration data is found (first boot), or can be started from
CFG > Calibrate Touch or by sending "calibrate" over Serial.
- [x] Added an "OFF" option to the main screen to turn off the device (DeepSleep when PMIC is not available).
- [x] Centralized main libraries using git submodules, so it doesn't download many copies of the same library to the
.pio/libdeps/**/ folder
- [x] Speed up workflow using GitHub cache for framework and libs
-
2.6.8:
- [x] Increased Game Station partition sizes. https://github.com/bmorcelli/Launcher/issues/299
- [x] Added an option to erase the app partition
- [x] Added an option to always boot into Launcher https://github.com/bmorcelli/Launcher/issues/292
- [x] Added "APP" menu item to reboot into the last installed firmware
- [x] Enhanced NVS partition and partition schemes for UiFlow2
- [x] Fix M5Stack Tab5 WiFi scan and WebUI in AP mode.
- [x] New Device: Lilygo T-Watch-S3
- [x] New Device: Lilygo T-Watch-Ultra
- [x] New Device: Lilygo E-Paper S3 Pro H752-x
-
2.6.7:
- [x] Re-established Tab5 SD card on SPI for WiFi compatibility and refactored the reboot process to power cycle the SD card, resetting the SD card communication bus.
- [x] Tab5 now has a Mass Storage interface!
- [x] Fixed M5Stack Paper S3 USB Mass Storage issue https://github.com/bmorcelli/Launcher/issues/287 and OTA will show only S3 firmware.
- [x] Added app offset parameter to allow Launcher to be updated in Tab5, and firmware that is placed at different factory/app0 addresses.
- [x] Set StickC and CPlus devices to see only ESP32 firmware on OTA, excluding ESP32-S3 (StickS3) firmware
- [x] Adjusted firmware binaries that are not merged to have a partition table, allowing a SPIFFS partition to be attached to them. This binary will be valid ONLY for Launcher; it can't be flashed alone because it doesn't have a valid bootloader and partition table. https://github.com/bmorcelli/Launcher/issues/289
-
2.6.6:
-
2.6.5:
- [x] M5-Tab5 using SDMMC driver for compatibility with other firmware
- [x] Added the ability to order by "Latest update"
- [x] Port to OpenSourceSRDLabs WaveSentry and WaveSentry Pro
- [x] Battery ADC measurement fix for Cardputer, Tdeck, StickCPlus2, T-Display S3, T-HMI
-
2.6.4:
- [x] Fixed CYD 3243S035R touchscreen rotation
- [x] Fixed Marauder V7 screen issues
- [x] Enhanced M5-PaperS3 display, using Sprites now for better drawing resolution
- [x] Fixed M5Stack Cardputer ADV keyboard not adding '*' and '('
- [x] Add new partition scheme for Cardputer Game Station, allowing 4.5MB game ROMs
- [ ] Port to M5-Paper
- [ ] Port to Arduino Nesso N1, not building yet
-
2.6.3:
- [x] Fixed Marauder keyboard
- [x] Changed from EEPROM to NVS to save configs and WiFi credentials Issue 232
- [x] Port to M5-PaperS3
- [x] Fixed SelPress leaking into main menu
- [x] T-Embed (all) and T-LoraPager Encoder enhancement
- [x] WebUi session enhancement and fixes
-
2.6.2:
- [x] Fixed T-Embed CC1101 OTA Link
- [x] Changed SD file listings for speed(PR 230) Issue 229 thanks @geo-tp and @emericklaw
-
2.6.1:
- [x] Fixed T-Deck Plus touchscreen (added new env for it)
- [x] Fixed M5Stack CoreS3 SD Card not mounting
- [x] Add Delete from Favorites option
-
2.6.0:
- [x] Pulling data from my new API, integrating all device lists with the M5Burner API, and counting downloads in the M5Burner database.
- [x] OTA Pagination (pages of 100 firmware ordered by download-default)
- [x] New Device: M5Stack Tab5.
- [x] New Device: Lilygo T-HMI
- [x] New Feature: Backup SPIFFS/FAT now prompts to merge data into a chosen binary, so you can install firmware and data by choosing
SPIFFS Yes during install, and backup binaries now have incremental names.
- [x] New Feature: Added filter and ordering to the firmware list.
- [x] New Feature: Added a Starred firmware list (controlled by me; support the project to have your firmware added to the starred list.).
- [x] New Feature: Added "Favorite" (requires SD card), where you can add firmware from the OTA list or manually add binary links from your local server or elsewhere.
- [x] 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 by manually editing 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
...
-
2.5.3:
- [x] Restored T-Deck OTA
- [x] Refined T-Deck Touchscreen inputs
-
2.5.2:
- [x] Fixed Marauder V6 touchscreen and CYDs touchscreen unresponsive issue and fixed Dim screen
- [x] Fixed Marauder Mini and V7 screen dimming.
- [x] Fixed Smoochiee board inputs and SD card issue
- [x] Fixed Longpress on Cardputer ADV
- [x] Fixed folder creation on subfolders
-
2.5.1:
- [x] Fixed Cardputer ADV Keyboard compatibility
- [x] Fixed issue where OTA firmware list wasn't being fully downloaded.
-
2.5.0:
- [x] Moving to pioarduino 3.3 b