M5Stack Cardputer
Credit-card-sized device with IPS LCD, I2C keyboard, and SD card. ESP32-S3 with no PSRAM.
Overview
| MCU | ESP32-S3 (dual-core Xtensa LX7, 240 MHz) |
| Flash | 8 MB |
| PSRAM | None (~320 KB internal SRAM only) |
| Battery | 120 mAh LiPo |
| Connectivity | WiFi 4 + BLE 5.0 (on-chip), USB-C |
| Status | Partial |
Components
| Component | Chip | Interface | Driver | Status |
|---|---|---|---|---|
| LCD display | ST7789 240×135 | SPI (DAT=35, SCK=36, CS=37, DC=34, RST=33, BL=38) | drv_lcd_st7789 | Proven |
| Keyboard | CardKB | I2C 0x5F | drv_kbd_cardkb | Fixed |
| SD Card | MicroSD | SPI (CS=12, separate bus) | drv_sdcard | Untested |
Pin assignments
| Function | GPIO |
|---|---|
| LCD DAT (MOSI) | 35 |
| LCD SCK | 36 |
| LCD CS | 37 |
| LCD DC | 34 |
| LCD RST | 33 |
| LCD Backlight | 38 |
| SD Card CS | 12 |
Board config
Config file: cardputer.json
Located at sdcard_layout/config/boards/cardputer.json in the source tree.
Notes
No PSRAM
The Cardputer has no PSRAM, limiting available heap to internal SRAM (~320 KB). Apps and drivers must be conservative with memory. Large framebuffers and multi-surface compositing may not be possible.
- Display uses a sub-window panel with offset x=40, y=52.
- CardKB keyboard driver had address and arrow key code issues that have been fixed.
- 120 mAh battery provides very limited runtime.