m5stack-tab5listed
Install: claude install-skill iot-forge/m5stack-skills
# M5Stack Tab5 development
The Tab5 is M5Stack's ESP32-P4-based touchscreen terminal: a 5" 1280x720
MIPI-DSI display, MIPI-CSI camera, ES8388 audio codec with AEC front-end,
BMI270 IMU, RX8130CE RTC, RS485 port, and a removable 2000mAh NP-F550
battery, with an ESP32-C6-MINI-1U handling WiFi 6 / BLE / Thread / Zigbee as
a co-processor over SDIO. It targets industrial HMI, kiosk, and IoT-gateway
use cases rather than being a general "big Core2" — expect RS485, camera,
and multi-protocol wireless to matter more here than on other M5Stack
Controllers. Official docs: https://docs.m5stack.com/en/core/Tab5
Use this skill to write correct firmware for it (Arduino, PlatformIO,
ESP-IDF, or UIFlow2/MicroPython), to explain what a pin or peripheral does,
or to debug hardware-facing code (wrong I2C address, WiFi not connecting,
touch not responding, display not initializing, etc).
## Important: this is an ESP32-P4, not an ESP32/ESP32-S3
Most M5Stack Controllers (Cardputer Adv, Core2, CoreS3, AtomS3, ...) run on
an ESP32 or ESP32-S3 — Xtensa cores. The Tab5's main SoC is an
**ESP32-P4**, which is **RISC-V**, has **no built-in WiFi/Bluetooth radio**,
and needs its own toolchain target (`esp32p4`)/board entry. WiFi and BLE
come from a *separate* ESP32-C6 co-processor on the board, bridged over
SDIO — this is why WiFi init code looks different from every other M5Stack
board (see "WiFi needs pin setup" below). Don't reuse ESP32/ESP32-S3-specific
assumptions (Xtensa intrinsics, single-chip