Application launcher for M5Stack, Lilygo, CYD, Marauder, and ESP32 devices.
Join our Discord community
- 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}.binto your device.
- 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.
- 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
- 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
- Create new folders, - Delete files and folders, - Rename files, - Copy and paste files, - Install binaries
- 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
- 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
- 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
* Having an SD card gives you a better experience, but it is not required. [SD Card Hat for M5StickCs](https://www.thingiverse.com/thing:6459069) * You can learn more about how it works on the [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/catalog.html)
- 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.
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
- 2.7.0:
- Improved navigation on devices with 5 buttons and keyboards; now you can navigate up and down on the main menu
- Improved main menu for small screens (T-Dongle, StickC)
- Custom Partition Manager "PMan" (no more hardcoded partitions on Cardputer)
- Automatic partition maker, firmware sanity checker, and flash optimizer.
- Ability to install more than one firmware at a time
- Encrypted WiFi passwords within config.conf and NVS
- Remodeled WebUI, adding the ability to edit text files and NVS fields saved in memory
- Changed items on CFG for better understanding
- Optimized WiFi/WebUI functions to save Flash
- Enabled OTA for CYD-3248S035C and CYD-3248S035R
- Port to M5-DinMeter
- Port to Arduino Nesso N1
- Port to Reaper Board
-
2.6.10:
- Fixed navigation on 3-button devices that were triggering EscPress when pressing Next or Prev buttons.
-
2.6.9:
- Port to NM-CYD-C5
- Port to 3248W535C
- Port to Waveshare-ESP32-S3-LCD-1.47
- Port to T-Dongle-C5 (tft)
- Port to T-Display S3 AMOLED Plus
- Fix issue where brightness wasn't being saved
- Fix issue where custom "downloads" folder wasn't being used
- Fix issue where some firmware downloads weren't working due to prohibited characters in firmware names
- Fixed SD card not mounting on T-Watch Ultra and adjusted UI for rounded edges on the main menu and file listings
- Enabled WASD navigation for Lilygo T-LoraPager, T-Deck, T-Deck Plus, and T-Deck Pro
- 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 Touchor by sending "calibrate" over Serial. - Added an "OFF" option to the main screen to turn off the device (DeepSleep when PMIC is not available).
- Centralized main libraries using git submodules, so it doesn't download many copies of the same library to the
.pio/libdeps/**/folder - Speed up workflow using GitHub cache for framework and libs
-
2.6.8:
- Increased Game Station partition sizes. #299
- Added an option to erase the app partition
- Added an option to always boot into Launcher #292
- Added "APP" menu item to reboot into the last installed firmware
- Enhanced NVS partition and partition schemes for UiFlow2
- Fix M5Stack Tab5 WiFi scan and WebUI in AP mode.
- New Device: Lilygo T-Watch-S3
- New Device: Lilygo T-Watch-Ultra
- New Device: Lilygo E-Paper S3 Pro H752-x
-
2.6.7:
- 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.
- Tab5 now has a Mass Storage interface!
- Fixed M5Stack Paper S3 USB Mass Storage issue #287 and OTA will show only S3 firmware.
- Added app offset parameter to allow Launcher to be updated in Tab5, and firmware that is placed at different factory/app0 addresses.
- Set StickC and CPlus devices to see only ESP32 firmware on OTA, excluding ESP32-S3 (StickS3) firmware
- 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. #289
-
2.6.6:
- M5-StickS3 port
- (Beta) M5-DinMeter port
- Arduino Nesso N1 port
-
2.6.5:
- M5-Tab5 using SDMMC driver for compatibility with other firmware
- Added the ability to order by "Latest update"
- Port to OpenSourceSRDLabs WaveSentry and WaveSentry Pro
- Battery ADC measurement fix for Cardputer, Tdeck, StickCPlus2, T-Display S3, T-HMI
-
2.6.4:
- Fixed CYD 3243S035R touchscreen rotation
- Fixed Marauder V7 screen issues
- Enhanced M5-PaperS3 display, using Sprites now for better drawing resolution
- Fixed M5Stack Cardputer ADV keyboard not adding '*' and '('
- 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:
- Fixed Marauder keyboard
- Changed from EEPROM to NVS to save configs and WiFi credentials 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:
-
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 device lists with the M5Burner API, and counting downloads in 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 by choosing
SPIFFS Yesduring install, and backup binaries now have incremental names. - New Feature: Added filter and ordering to the firmware list.
- New Feature: Added a Starred firmware list (controlled by me; support the project to have your firmware added to the starred list.).
- 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.
- 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:
- Restored T-Deck OTA
- Refined T-Deck Touchscreen inputs
-
2.5.2:
-
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 installation
- 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
- Moving to pioarduino 3.3 based framework (ESP-IDF 5.5)
-
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:
- Enabled OTA function to: CYD 2432S028R, 2-USB, S024R, W328C/R, Marauder boards, Awok boards, Phantom, Lilygo T-Embed CC1101 and T-Deck (regular and plus)
- Port to AWOK Mini v2 and AWOK Touch v2
- Port to RabbitLabs Phantom
- Ports to 8048S043C, 8048W550C
- Port to Lilygo T-Deck Pro (e-paper display)
- Enhancements on Touchscreen devices for responsive file lists and menu options
- New Main menu with all items, with items touchable.
- fixed ports to Marauder v4, v6, v7, mini.
- fix for 2432s032C misaligned touchscreen
-
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 restarts 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:
-
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 Btn now act as up controls in menus; long press to exit menu
-
2.2.5:
-
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 firmware.
-
2.2.2:
- Port for CYD-2432S028R and CYD-2-Usb
- Added a check after downloads finish that will delete failed downloaded files
-
2.2.1:
- Port for Lilygo T-Display S3 Touch
- Fixed JSON read/write
-
2.2.0:
- M5Launcher 2.2+ can now be updated over the air or using an SD card
- UI color settings (can be customized in /config.conf file)
- Reduced flickering on SD files navigation
- Fixed problem where firmware names with "/" prevented downloads
- Appended firmware version to the download name.
- Added Dim time to lower brightness and CPU freq while idle
- Added "Charge Mode" in settings, reducing CPU frequency to 80MHz and brightness to 5%, #40
- Fixed download progress bar #41
- Change default folder for download (manually on /config.conf) #15
- Save more SSIDs and passwords, and connect automatically if it is a known network (config.conf) #30
- Slightly 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
- Made SPIFFS update optional (turned 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 it 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 to your device and make a backup to restore after reinstalling UIFlow, MicroHydra, or CircuitPython
-
2.0.1:
-
2.0.0:
- SD: added folder creation, delete and rename files and folders, and copy and paste files
- OTA (Over-The-Air update): Added feature to list the programs available in M5Burner and install them from the internet.
- WebUI: Added a WebUI where you can manage your SD Card and install new binaries wirelessly
- Some other minor features
-
1.3.0:
- Added support for MicroPython-based binaries (MicroHydra), with a 1MB FAT partition for Cardputer and StickCPlus2 and 64KB for StickC and Plus1.1
-
1.2.1:
- Launcher now lowers the LCD power and fills 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 from .csv files because I found out it is not needed
- Reallocated free space into the "SPIFFS" partition, giving room for improvements and support for applications that use it (OrcaOne)
- Added Bootscreen with battery monitor
- Added Restart option and battery monitor to launcher
- Added auto orientation to M5StickCs
- Launcher 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 were 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 from launching apps on Cardputer
-
1.0.1:
- Fixed black screen and keyboard capture on Cardputer.


