GC9A01 round TFT
GalaxyCore GC9A01A 1.28″ round 240×240 RGB565 IPS TFT over 4-wire SPI.
Live catalog
Prefer labwired_describe with the catalog id over guessing pins or addresses.
Status at a glance
| Aspect | Status |
|---|---|
| Catalog id | gc9a01 |
| Bus | SPI (4-wire, D/C pin) |
| Address / select | cs_pin + dc_pin (required) |
| Source | configs/devices/gc9a01.yaml (declarative display, no Rust model) |
| Datasheet | GalaxyCore GC9A01A LCD-DST-3014 Rev 1.0 Preliminary (2019-07-02): §2, §4.1.12, §5.2, §6.1, §6.2 |
| Tier | smoke-proven (crates/core/tests/everyday_display_set.rs) |
Pins / attachment
| Pin / net | Role |
|---|---|
| SCL / SDA | SPI clock / data |
| CS | Chip select (cs_pin) |
| DC | Data / command (dc_pin) |
| VCC/GND | Power (powered: false darkens the panel) |
Support matrix
| Behavior | Status | Notes |
|---|---|---|
| CASET / RASET / RAMWR / WRMEMC (2Ah/2Bh/2Ch/3Ch) | ✅ | 16-bit window, clamped to 239 |
| MADCTL MY / MX / MV (36h) | ✅ | §5.2 mirror is (239 − pointer) |
| SLPIN/SLPOUT, DISPON/DISPOFF, INVON/INVOFF | ✅ | lit = DISPON and awake |
| CS pause mid-blit | ✅ | §4.1.12: the stream resumes |
| Round glass | ✅ | A bezel over the square RAM; all 240×240 pixels are addressable and published |
| SWRESET (01h) | ❌ | Not in the GC9A01A command list; consumed as an unlisted opcode |
| COLMOD (3Ah) | ⚠️ | Consumed; the model is RGB565 throughout (reset value is 18-bit) |
| Vendor init (FEh/EFh, power, gamma, frame rate) | ❌ | Consumed; parameters dropped |
How to run
- Place the part and an MCU in Playground, or add it to a system YAML:
- Agent:
labwired_list→labwired_describe id=gc9a01→ wire →labwired_validate→labwired_run/labwired_verify. - Smoke:
cargo test -p labwired-core --test everyday_display_set. It runs the same RGB565 check as the ST7735 against a 240×240 memory. Thegc9a01_*tests then cover the artifact'spainted_bytes/lit, the missing SWRESET and the 239 − pointer mirror.
Limitations
- Rev 1.0 of the datasheet contradicts itself on the memory size. §2 and §5.2 describe 240×240; §4.4, §5.1 and the CASET notes print 320×240 and EC = 013Fh. The model follows §2 and §5.2.
- Out-of-range CASET/RASET values are clamped, not ignored.
See the YAML header for the full datasheet trace and every named approximation.