Hardware 320x820 portrait ST7701S panel rendering LVGL 9 animations and real-time Siri waves at 60 FPS.
Makerfabs MaTouch 3.16 ESP32-S3 Cybernetic Companion
The Story: When standard SPI screens capped frame rates at 18 FPS with choppy waveforms, I ported the entire workbench client to the Makerfabs MaTouch 3.16. Featuring an ultra-wide portrait 320x820 ST7701S panel driven by a 16-bit parallel RGB bus, a reverse-mounted 6-axis IMU for table pickup detection, and FreeRTOS audio DSP running LVGL 9 at a butter-smooth 60 FPS.
| Parameter | Engineering Specification | Design Notes |
|---|---|---|
| Microcontroller Module | ESP32-S3-WROOM-1-N16R8 | Xtensa LX7 Dual-Core 240MHz, 16MB Flash, 8MB PSRAM |
| Display Panel | ST7701S 3.16" Portrait IPS LCD (320x820) | 16-bit RGB565 parallel bus running at 60 FPS |
| Inertial Sensing | QMI8658 6-Axis Accelerometer & Gyroscope | Reverse-mount PCB orientation: face-down Z > 4500 |
| Audio Subsystem | ES8311 Low-Power I2S Codec + Onboard Amp | 60ms Opus frames (960 samples @ 16kHz mono) |
| Physical Jog Dial | PCF8574 I2C Expander (I2C Addr 0x20) | 5-Way Navigation: UP, DOWN, LEFT, RIGHT, OK CLICK |
| Backlight Driver | GPIO 46 PWM with Active-Low Inverter | Duty cycle 0 = 100% full brightness (inverted logic) |
| Thread Safety Architecture | Application::Schedule + DisplayLockGuard | External sensor tasks NEVER touch LVGL directly |
| Signal Name | Wire Color | ESP32-S3 Pin | Target Peripheral | Protocol / Notes |
|---|---|---|---|---|
| RGB Data Bus (16-bit) | Lime | GPIO 1..16 | ST7701S RGB D0..D15 | RGB565 High-speed DMA framebuffer stream |
| Critical Hardware Note | Red | GPIO 0 | LCD Green Bit G0 | NEVER TOGGLE GPIO 0 (corrupts LCD rasterizer) |
| LCD Pixel Clock | Orange | GPIO 39 | ST7701S PCLK | Parallel 20MHz dot clock |
| LCD Data Enable | Cyan | GPIO 40 | ST7701S DE | Parallel Display data enable gating signal |
| LCD Backlight PWM | Yellow | GPIO 46 | NPN Backlight Inverter | Active-Low inverted PWM (duty 0 = 100% brightness) |
| I2C Data (SDA) | Blue | GPIO 17 | QMI8658 / PCF8574 / ES8311 | I2C Shared sensor bus with 4.7kΩ pull-ups |
| I2C Clock (SCL) | Violet | GPIO 18 | QMI8658 / PCF8574 / ES8311 | I2C 400kHz fast-mode clock |
| I2S Audio Bit Clock | Orange | GPIO 44 | ES8311 BCLK | I2S 512kHz continuous DMA clock |
| I2S Word Select | Green | GPIO 43 | ES8311 WS/LRCK | I2S 16kHz audio frame sync |
- Zero-Redraw LVGL 9 Optimization: Flatline bypass drops redraw calls when voice wave amplitude == 0, saving 40% CPU overhead.
- Pre-Calculated Lookups: Siri wave multi-sine envelopes precomputed as static const arrays to eliminate runtime floating point math.
- Reverse Mount Inertial Tracking: Compensates for Makerfabs upside-down IMU solder mount to provide seamless table wakeup.
ESP32-S3 N16R8
ST7701S RGB Parallel
LVGL 9 (60 FPS)
QMI8658 IMU
ES8311 I2S
FreeRTOS