Tab5 OS launcher with touch controls for files, notes, GPIO, settings, chat, browser, ebooks, and clock.
A screen capture of the Tab5 OS application launcher running on the device.

Overview

Tab5 OS turns an M5Stack Tab5 into a small operating environment with a touch launcher and a collection of applications. The goal is a device that can move between useful tasks instead of booting into a single demonstration.

The project integrates the ESP32-P4 hardware, display, touch input, storage, networking, and application interface. It builds on ESP-IDF, LVGL, and M5Stack’s board-support components.

Applications

The launcher groups several kinds of work:

Area Applications and features
Everyday tools Notes, counter, clock, persistent alarms, and weather
Files and reading File browser, SD-card ebooks, and a reader-mode web browser
Hardware GPIO controls and an eight-channel ADC oscilloscope
Connectivity Wi-Fi settings and system controls
Network services Chat and start/stop microphone transcription

The reader-mode browser handles text-oriented web use with HTTPS and clickable links. It is a focused reader on embedded hardware, rather than a full desktop browser engine.

Chat and transcription use an authenticated HTTPS relay. Those network features sit alongside local tools with different connectivity requirements.

Hardware and display support

The supported target is the M5Stack Tab5. The board-support layer accommodates the original ILI9881C/GT911 display and touch combination and the newer ST7123/ST7121 variant.

The repository retains the board’s required memory and display settings. Its notes call out QIO, 200 MHz PSRAM, and L2-cache configuration as important to avoiding display underruns on the 720p panel.

This makes the platform integration part of the project: an application screen depends on the display, memory, touch driver, and board configuration agreeing.

Build and development loop

The documented toolchain is ESP-IDF 5.4.2. An ESP-IDF shell sets the target to esp32p4, builds with idf.py build, and flashes the selected serial port.

Windows helper scripts preserve the build tree and support app-only flashing for ordinary source edits. Bootloader or partition-table changes require a full flash.

A USB remote-desktop tool mirrors the Tab5 screen and turns mouse clicks and drags into touch input. It provides a practical way to inspect UI behavior while the actual firmware runs on the device.

Updates and configuration

The System app can install tagged GitHub releases over Wi-Fi, with automatic rollback support. A release tag builds the firmware binary through the repository workflow.

Device-specific chat configuration lives separately from public release binaries. OTA updates preserve that configuration, allowing the application to be updated without placing a device credential in distributed firmware.

Source and current state

The Tab5 OS repository includes source, supported display variants, build/flash wrappers, the USB desktop tool, and the feature checklist. Managed dependencies are pinned, and upstream board-support components keep their attribution.

The cover is an actual launcher screen captured from the device. This project documents a working embedded environment, with the limitations and supported hardware of that specific platform.