From 730652bfefd07e11d4b351940a5b75d01c44e719 Mon Sep 17 00:00:00 2001 From: David Montero Crespo Date: Wed, 12 Aug 2026 16:39:37 +0200 Subject: [PATCH] =?UTF-8?q?feat(registry):=20spiPanelId=20=E2=80=94=20a=20?= =?UTF-8?q?board=20declares=20its=20display's=20autodetect=20identity?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Vendor autodetects read the panel's RDDID with the display's own CS and reject or misdetect the board on the bus's idle 0xFF. The answer is board DATA (which CS, which id byte), not bridge code, so it moves to the def: the M5Stack Core is {14, 0xE3}, the Cardputer ADV {37, 0x85}. Bridges that support the probe consume it generically. --- frontend/src/lib/proBoardRegistry.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/frontend/src/lib/proBoardRegistry.ts b/frontend/src/lib/proBoardRegistry.ts index 71d42c29..166ba3bb 100644 --- a/frontend/src/lib/proBoardRegistry.ts +++ b/frontend/src/lib/proBoardRegistry.ts @@ -105,6 +105,15 @@ export interface ProBoardDef { * setMicrophoneSource (I2S RX sample injection): shows the canvas-header * Mic toggle that streams the computer's microphone into it. */ builtInMicrophone?: boolean; + /** Display-controller identity for panel autodetect probes. Vendor + * libraries (M5GFX and friends) identify a board by reading the panel's + * RDDID over SPI with the display's own chip-select — and reject the + * board, or misdetect it as something else entirely, when the answer is + * the bus's idle 0xFF. A bridge that supports this answers `idByte` on + * MISO while `csPin` is low. Board DATA, not bridge code: the M5Stack + * Core is `{ csPin: 14, idByte: 0xE3 }` (ILI9342C), the Cardputer ADV + * `{ csPin: 37, idByte: 0x85 }` (ST7789V2). */ + spiPanelId?: { csPin: number; idByte: number }; /** Board carries an IMU whose bridge implements setImuAcceleration / * setImuGyro: shows the canvas-header tilt pad. Without it the emulated * part faithfully reports the board lying flat for the whole run. */