cardputer-advlisted
Install: claude install-skill liukjx/cardputer-adv-skill
# M5Stack Cardputer-Adv firmware development
Cardputer-Adv (SKU K132-Adv) = **Stamp-S3A = ESP32-S3FN8**: dual-core LX7 @240 MHz,
**8 MB flash, no PSRAM**, ESP32-S3 **native USB** (USB-Serial/JTAG, VID:PID `303a:1001`),
1.14" **ST7789** 240×135, **TCA8418** I2C keyboard controller, **ES8311** audio codec.
Everything in this skill was verified on real hardware (2026-09, macOS 15, PlatformIO 6.2,
Arduino core 2.0.16 / espressif32@6.7.0). Timings, pins and failure modes are measured, not copied.
## Follow this workflow
1. Confirm the board enumerates: `ls /dev/cu.usbmodem*` and `ioreg -p IOUSB -w0 | grep -i jtag`.
2. Scaffold the PlatformIO project from [references/toolchain.md](references/toolchain.md).
The `dio` flash mode line is **not optional** — see rule 1.
3. Let **M5Unified auto-detect the board**. Do not hand-initialise the panel, keyboard or
codec; `M5Cardputer.begin()` already does all of it for `board_M5CardputerADV`.
4. Do **not** call `Serial.begin()` in the default build (rule 2). Report progress with the
**RGB LED** instead — it is the only status channel that survives a hang.
5. Build, then flash with [scripts/flash.sh](scripts/flash.sh) (esptool 5.x, not PlatformIO's).
6. Physically power-cycle the board (unplug/replug USB) and read the LED stage before
concluding anything about your code.
7. Only then debug functionally, with [references/debugging.md](references/debugging.md)
as the symptom → cause table.
## Non-negotiable rules
Each of the