Skip to content

ST7735 GM00 address orientations — authored guest qualified

This test-only P3 follow-up extends the captured-command SAM controls. It changes no production model, panel descriptor, consumer pin, capture or performance floor. All seven guest tests passed in both feature configurations. This qualifies authored GM00 controller-memory controls, not a production panel.

Landed qualification — 2026-10-07

PR168 merged as 02f6abafb432a3ee3e9461c1c0d3ad3e2b44e094, from reviewed source 3c52bd9a4d271041de71610292940c1fff58bae3. The tested merge checkout c2e3683bbbd99fd60b1d7000db03bb26a90fd7b3 and landed main have identical tree a23646d415f18ccd7495b8cfa3934e85a3a22629. All 20 enabled checks passed; four declared full/warm/image jobs skipped.

Core CI37639536439 executed seven tests, zero failed/ignored/filtered in both the feature-off retry and feature-on scheduler job. The original feature-off attempt never acquired a runner and executed no tests; its infrastructure failure remains recorded. One targeted retry passed without source or workflow changes. The live original CODAL trace also passed. No new benchmark, panel binding or consumer adoption is claimed.

Independent address vectors

ST7735R v0.2 section 9.11.2 describes GM00's eight address-pointer orientations. The authored guest targets a fixed physical-memory crop: columns 11–12, rows 7–10. Its RGBSET and eight packed pixels are unchanged from the width-four original-driver capture. MADCTL and address-window commands are independently authored, not a capture of the original driver's rotated execution. Expectations call neither the model's mapping helper nor its colour decoder.

MADCTL CASET RASET Physical row-major pixel indices
00 11–12 7–10 1, 2, 3, 4, 5, 6, 7, 8
40 119–120 7–10 2, 1, 4, 3, 6, 5, 8, 7
80 11–12 151–154 7, 8, 5, 6, 3, 4, 1, 2
C0 119–120 151–154 8, 7, 6, 5, 4, 3, 2, 1
20 7–10 11–12 1, 5, 2, 6, 3, 7, 4, 8
60 7–10 119–120 5, 1, 6, 2, 7, 3, 8, 4
A0 151–154 11–12 4, 8, 3, 7, 2, 6, 1, 5
E0 151–154 119–120 8, 4, 7, 3, 6, 2, 5, 1

Literal RGB888 colours distinguish all eight indices, including the non-extreme colour [16, 52, 85]. All eight orientations run in ordinary and forced-legacy SPI modes. A named negative clears MV in the 20 case without changing its windows: guest TXC polling must still complete, but the fixed crop must contain zero known and eight unknown pixels, with frame bytes withheld. The host only attaches the fixture crop; it performs no guest MMIO setup or pixel injection.

Acceptance and exclusions

Execute all seven tests in crates/core/tests/st7735_sam_guest.rs in both feature configurations, retain the live original-driver/fixture comparison, and require every enabled exact-head check to pass before landing. Record the tested source, guest hash and tested/landed tree identities. Static source review or formatting is not guest execution.

These vectors cover valid GM00 controller-memory addresses only. They establish no deployed aperture/GM, BGR/glass parity, direct Adafruit RGB444 renderer, original CODAL ARM execution, IRQ/DMA, active-frame RTx or new-panel WASM result. Range-ignore semantics, odd-height production packing, retained RAM/LUT controls and effective deployed build/CF2 configuration remain separate P3 requirements. P3 and CP14 remain open.