Launcher
Application launcher for M5Stack, Lilygo, SeeedStudio, Waveshare, CYD, Marauder, and many other 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 to flash the file
Launcher-{YourDevice}.bin to your device.
How to Use
- Turn your device on
- Press 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
- Although exFAT and bigger SDCards are supported since 2.8.0, smaller ones are recommended.
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
* 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)
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
Latest Changelog
-
2.10.0:
- [x] Port to SeeedStudio Wio Tracker L2" Beta
- [x] Port to Elecrow ThinkNode M9"
- [x] Port to SeeedStudio XIAO ESP32C5 on Headless environment
- [x] Port to SeeedStudio XIAO 1.47'' Touch Display (ESP32-S3)
- [x] Port to SeeedStudio XIAO ESP32S3 Plus on Headless environment
- [x] Port to SeeedStudio reTerminal D1001 8"
- [x] Port to SeeedStudio reTerminal E1001 Monochrome e-Paper Display
- [x] Port to SeeedStudio SenseCAP Indicator
- [x] Port to Waveshare ESP32-S3 2.06inch AMOLED Touch Watch, thanks to @nevelate
- [x] BETA: XTeink X4 Pro Validated UC8xxx display.
- [x] Added Changing Icon over battery bar on supported devices.
- [x] Added Option to control bootscreen time (from 1 to 5 seconds).
- [x] Added Option to disable starting Launcher from DeepSleep. Some e-ink firmwares (CrossInk, CrossPoint etc..) use agressive deepsleep controls to save energy, and by default it used to trigger Launcher bootscreen, adding time to the device/firmware recovery. Now you can Disable this behaviour and trigger Launcher only on Power On reason. Use it with care, and in devices with exposed RST button, otherwise getting back to Launcher can be impossible on some devices
- [x] Added Option to start Launcher when a button is pressed during a restart. This is a siruation where you will only see the Launcher bootscreen if you Turn on/Restart/recover from deepsleep the device if that configured button is pressed. Combined with the previous option it makes Launcher stealthy, and will only show up if you want. Boot Button can't be configured for this function, and it is available only on devices with GPIO driven buttons available (Touchscreen/keyboard/encoder only devices will not have this option)
- [x] FIXED Serial command now accept spaces on wifi SSID and Passwords using quotes
wifi add "My SSID Network" "my p@sSw0rd" issue
- [x] FIXED
Lilygo T-Watch Ultra and Lilygo T-Display S3 Amoled Plus touchscreen
- [x] FIXED
M5Stack Tab5 OTA function randomly crashing.
- [x] Changed
M4Stack Paper Mono display backend.
-
2.9.1:
- [x] Fix M5-Paper Mono rendering and touch issues.
- [x] Fix SeeedStudio ReTerminal Sticky back from Deepsleep issue, allowing CrossPoint and other firmware to reboot.
- [x] Fix Lilygo T-Deck Pro touchscreen issue.
-
2.9.0:
- [x] Port to M5-Paper
- [x] Port to M5-Paper Mono
- [x] Port to M5-Paper Color - Different workflow, Prints on scren but works only through WebUI. Display takes long time to render, making navigation almost impossible for Launcher.
- [x] Port to T-Display P4
- [x] Port to T-Display C5
- [x] Port to ESP32-S3 ES3C28P 2.8" aka
Cheap Black Display, thanks to @AlexeOnTheShip
- [x] Port to Elecrow Crowpanel Advance ESP32-S3 5.0in
- [x] Port to Elecrow Crowpanel Advance ESP32-P4 7.0in
- [x] Port to ESP32 E32R40T 4"
- [x] Port to SeeedStudio ReTerminal Sticky, thaks to @limengdu
- [x] Port to Waveshare-ESP32-C5-LCD-1.47
- [x] Port to Waveshare-ESP32-C6-LCD-1.47
- [x] Port to Waveshare-ESP32-C6-LCD-1.3
- [x] Port to XTeink X3
- [x] BETA: Port to XTeink X4 Pro - Need validating touchscreen and display
- [x] ATENTION: Arduino Nesso N1 and M5Stack StickS3 Navigation has changed, Front button short press to move Next and Long press to Select, Side button short press to mode Previous an long press to Escape.. on Keyboard, holding Escape will change the moviment from Left/Up to Right/Down, so typing will be easier to handle (after you master it).
- [x] Added option to opt-out from Automatically connect to a known Network.
- [x] Added possibility to create new files using the WebUI.
- [x] Changed brightness control, now it uses a slider bar with 5% steps.
- [x] Moved display drivers handling to DisplayDrivers lib, using its superclass to handle all display drivers used by Launcher. This removed
tft.h/tft_inits.h and the Arduino_GFX DSI patch scripts from the project.
- [x] Reorganized boards files to make porting easier. It now needs only 2 files and add it to CI/CD. Per-board JSON files were replaced by one per chip family (
esp32, esp32s2, esp32s3, esp32c3, esp32c5, esp32c6, esp32p4), and envs that only differ by pinout were merged (m5stack-plus, lilygo-t-embed-all, xteink-x3-x4).
- [x] Removed
phy_init partition and increased NVS to 0x5000
- [x]