Firmware Launcher for ESP32 boards like: M5Stack, Lilygo, Marauder and CYD devices.
2,115
stars
853
commits
C++
primary language
Sep 14, 2026
updated
Application launcher for M5Stack, Lilygo, SeeedStudio, Waveshare, CYD, Marauder, and many other ESP32 devices.
Join our Discord community
Launcher-{YourDevice}.bin to your device.Things that need to be done in future updates
2.10.0:
Lilygo T-Watch Ultra and Lilygo T-Display S3 Amoled Plus touchscreenM5Stack Tab5 OTA function randomly crashing.M4Stack Paper Mono display backend.2.9.1:
2.9.0:
Cheap Black Display, thanks to @AlexeOnTheShiptft.h/tft_inits.h and the Arduino_GFX DSI patch scripts from the project.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).phy_init partition and increased NVS to 0x5000nimble compatibility layer between firmwares. Now older and newer versions of nimble_bonds are saved per device (it happens only when using BLE to connect to a device, creating bound data) and it is switched and restored when changing firmware in runtime. relate to this issueHAS_2_BUTTONS/HAS_6_BUTTONS and long-press navigation, replacing the old per-board button workarounds.clang-format script and .gitattributes to keep the source formatted.2.8.0:
{dwn_path}/downloaded.json and check if there are new versions of these firmwares, and it can download all new files directly to your SDCard if you hit [Update All]./bkp/backupData.json and restores it when reinstalling. App icon will display backup data, and PMan too. Needs SD Card to use this feature.2.7.2:
2.7.1:
2.7.0:
2.6.10:
2.6.9:
CFG > Calibrate Touch or by sending "calibrate" over Serial..pio/libdeps/**/ folder2.6.8:
2.6.7:
2.6.6:
2.6.5:
2.6.4:
2.6.3:
2.6.2:
2.6.1:
2.6.0:
SPIFFS Yes during install, and backup binaries now have incremental names....
"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:
2.5.2:
2.5.1:
2.5.0:
2.4.10:
2.4.9:
2.4.8:
2.4.7:
2.4.6:
2.4.5:
2.4.4:
2.4.3:
2.4.2:
2.4.1:
2.4.0:
2.3.2:
2.3.1:
2.3.0:
2.2.5:
2.2.4:
2.2.3:
2.2.2:
2.2.1:
2.2.0:
2.1.2:
2.1.1:
2.1.0:
2.0.1:
2.0.0:
1.3.0:
1.2.1:
1.2.0:
1.1.3:
1.1.2:
1.1.1:
1.1.0:
1.0.1:
C++
79.6%
C
9.8%
JavaScript
5.2%
Python
4.7%
Firmware Launcher for ESP32 boards like: M5Stack, Lilygo, Marauder and CYD devices.
2,115
stars
853
commits
C++
primary language
Sep 14, 2026
updated
Application launcher for M5Stack, Lilygo, SeeedStudio, Waveshare, CYD, Marauder, and many other ESP32 devices.
Join our Discord community
Launcher-{YourDevice}.bin to your device.Things that need to be done in future updates
2.10.0:
Lilygo T-Watch Ultra and Lilygo T-Display S3 Amoled Plus touchscreenM5Stack Tab5 OTA function randomly crashing.M4Stack Paper Mono display backend.2.9.1:
2.9.0:
Cheap Black Display, thanks to @AlexeOnTheShiptft.h/tft_inits.h and the Arduino_GFX DSI patch scripts from the project.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).phy_init partition and increased NVS to 0x5000nimble compatibility layer between firmwares. Now older and newer versions of nimble_bonds are saved per device (it happens only when using BLE to connect to a device, creating bound data) and it is switched and restored when changing firmware in runtime. relate to this issueHAS_2_BUTTONS/HAS_6_BUTTONS and long-press navigation, replacing the old per-board button workarounds.clang-format script and .gitattributes to keep the source formatted.2.8.0:
{dwn_path}/downloaded.json and check if there are new versions of these firmwares, and it can download all new files directly to your SDCard if you hit [Update All]./bkp/backupData.json and restores it when reinstalling. App icon will display backup data, and PMan too. Needs SD Card to use this feature.2.7.2:
2.7.1:
2.7.0:
2.6.10:
2.6.9:
CFG > Calibrate Touch or by sending "calibrate" over Serial..pio/libdeps/**/ folder2.6.8:
2.6.7:
2.6.6:
2.6.5:
2.6.4:
2.6.3:
2.6.2:
2.6.1:
2.6.0:
SPIFFS Yes during install, and backup binaries now have incremental names....
"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:
2.5.2:
2.5.1:
2.5.0:
2.4.10:
2.4.9:
2.4.8:
2.4.7:
2.4.6:
2.4.5:
2.4.4:
2.4.3:
2.4.2:
2.4.1:
2.4.0:
2.3.2:
2.3.1:
2.3.0:
2.2.5:
2.2.4:
2.2.3:
2.2.2:
2.2.1:
2.2.0:
2.1.2:
2.1.1:
2.1.0:
2.0.1:
2.0.0:
1.3.0:
1.2.1:
1.2.0:
1.1.3:
1.1.2:
1.1.1:
1.1.0:
1.0.1:
C++
79.6%
C
9.8%
JavaScript
5.2%
Python
4.7%