Multi-app installer for M5 CardPuter - A comprehensive application launcher and management system that allows you to install and run multiple applications on your M5 CardPuter device.
M5Apps is a full-featured firmware bundle that transforms your M5 CardPuter into a versatile multi-application platform. Install up to 16 applications (limited only by your CardPuter flash size) and manage them through an intuitive user interface. The system supports remote repositories, SD cards, and USB drives for easy app installation.
- Multi-App Support: Install and manage up to 16 applications
- Multiple Installation Sources:
- Remote repositories (WiFi-enabled)
- SD card
- USB drive
- Application Launcher: Beautiful menu-based launcher with boot animation
- Built in apps: Installer, Settings, FDISK, Finder, Flood
- Launcher - Main application launcher with smooth menu navigation. Use
Ikey for information about the app. UseENTERkey to open the app. UseHomebutton (on the side) to go back to the launcher. - Installer - Install apps from various sources (cloud, SD card, USB)

- Settings - System configuration and user preferences

- FDISK - Partition management tool for flash storage

- Finder - Two-panel file manager for SD card and USB drive

- Flood - Advanced mesh chat application with channels and history using ESP-NOW
UI hints for Flood app:

- WiFi Support: Connect to networks, scan available networks, remote repository access
- USB MSC Support: Access USB mass storage devices (FAT32, exFAT)
- SD Card Support: Full SD card file system access (FAT32, exFAT)
- Screenshot Capability: Capture screenshots with CTRL + SPACE key combination
- LED Indicators: System event notifications (WiFi heartbeat, etc.)
- Screen Dimming: Automatic screen dimming with timeout
- Boot Sound & Logo: Customizable boot experience
- Keyboard Navigation: Full keyboard support with improved navigation
- Battery Monitoring: Real-time battery status display
- Settings Export/Import: Backup and restore your configuration
- M5 CardPuter v1.x (Original with IOMatrix)
- M5 CardPuter ADV (with TCA8418)
- ESP-IDF: v5.5.2
- PATCH required to enable exFAT filesystem support in ESP-IDF components:
esp-idf\components\fatfs\src\ffconf.h
#define FF_LBA64 1
#define FF_FS_EXFAT 1- M5 CardPuter or M5 CardPuter ADV
- USB-C cable for flashing
- Optional: SD card or USB drive for app storage
- Open M5Burner
- Select "CardPuter" group in the left sidebar
- Select "M5Apps" in the list of apps
- Click "Burn" to flash the firmware
Install ESP-IDF following the official guide
- Clone the repository:
git clone https://github.com/d4rkmen/M5Apps.git
cd M5Apps- Configure the project:
idf.py menuconfig- Build the project:
idf.py build- Flash the firmware:
idf.py flash- Monitor the output:
idf.py monitorThe build process generates:
build/M5Apps.bin- Main application binary
M5Apps/
├── main/ # Main application code
│ ├── apps/ # Application implementations
│ │ ├── launcher/ # Main launcher app
│ │ ├── app_installer/ # App installer
│ │ ├── app_settings/ # Settings app
│ │ ├── app_fdisk/ # Partition manager
│ │ ├── app_finder/ # File manager
│ │ ├── app_flood/ # Mesh chat app
│ │ └── app_ota/ # OTA app
│ ├── hal/ # Hardware abstraction layer
│ ├── settings/ # Settings management
│ └── main.cpp # Application entry point
├── components/ # Custom components
│ ├── M5GFX/ # Graphics library
│ ├── esp-now/ # ESP-NOW communication
│ ├── mooncake/ # Application framework
│ └── flood/ # Flood app components
├── bootloader_components/ # Custom bootloader components
├── partitions.csv # Partition table
└── CMakeLists.txt # Build configuration
Name Type SubType Offset Size
phy_init data phy 0x9000 0x1000
apps_nvs data nvs 0xA000 0x4000
apps_ota data ota 0xE000 0x2000
apps_app app factory 0x10000 0x180000
- Power on your M5 CardPuter
- The boot animation will play
- You'll be presented with the launcher menu
- Navigate using the keyboard arrow keys
- Select apps using ENTER
-
Launch the Installer app from the launcher
-
Choose your installation source:
- Cloud: Browse remote repositories (requires WiFi)
- SD Card: Install from SD card
- USB: Install from USB drive
-
Select the app you want to install
-
Follow the installation prompts
Cloud source: has a mirror of
M5BurnerCardPuter category, refreshing automtically once an hour.TOP-20is the list of tested and usefull apps by the community. Remote files are flashed to the device directly, without need to download to the SD card or USB drive. Apps distributed as single partition images are flashing to the device directly. Multiple partition images are also supported. User can remove all installed apps, or useCustom installoption in settings to install ony selected partitions of multiple partition images (confirmation request dialog is shown).
Access the Settings app to configure:
- WiFi network connection
- Auto-boot preferences
- Screen timeout
- Sound settings
- Installer preferences
- Export/import settings
- Arrow Keys: Navigate menus
- ENTER: Select/Confirm
- ESC: Cancel/Go back
- CTRL + SPACE: Take screenshot, save to
/sdcard/m5apps/screenshotsin BMP format
- Go to Settings → WiFi
- Scan for available networks
- Select your network and enter password
- Or hold Fn to manually enter network name
Configure auto-boot behavior in Settings:
- Enable/disable auto-boot of last app
- Set auto-boot timeout
Apps are implemented as classes inheriting from the Mooncake framework. See existing apps in main/apps/ for examples.
M5Apps uses the Mooncake application framework, which provides:
- Application lifecycle management
- Database for inter-app communication
- UI components and dialogs
- Hardware abstraction layer
See CHANGELOG.md for detailed version history.
Contributions are welcome! Please feel free to submit a Pull Request.
See LICENSE file for details.
- Discussion: M5Stack Community
- Issues: Report bugs and request features via GitHub Issues
- M5Stack for the CardPuter hardware
- ESP-IDF team for the framework
- All contributors and testers
Author: d4rkmen

