Skip to content

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

  1. Place the part and an MCU in Playground, or add it to a system YAML:
    external_devices:
      - id: "round"
        type: "gc9a01"
        connection: "spi1"
        config: { cs_pin: "PA4", dc_pin: "PA3" }
    
  2. Agent: labwired_list → labwired_describe id=gc9a01 → wire → labwired_validate → labwired_run / labwired_verify.
  3. Smoke: cargo test -p labwired-core --test everyday_display_set. It runs the same RGB565 check as the ST7735 against a 240×240 memory. The gc9a01_* tests then cover the artifact's painted_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.