From ba5ea4626b6c3c7f2227dab019a9296492830cc5 Mon Sep 17 00:00:00 2001 From: CyberMind-FR Date: Wed, 13 May 2026 08:43:52 +0200 Subject: [PATCH] docs(remote-ui): add Pi 400 as a supported target for square/ (ref #127) Pi 400 shares BCM2711 with Pi 4B, runs the same arm64 image. DTB auto-selection picks bcm2711-rpi-400.dtb at boot. firstboot.sh records the board flavour. USB peripheral mode requirement (GPIO 5V power) is unchanged. Integrated keyboard is recognised via libinput. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../2026-05-13-eye-square-variant-design.md | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/docs/superpowers/specs/2026-05-13-eye-square-variant-design.md b/docs/superpowers/specs/2026-05-13-eye-square-variant-design.md index cc550375..8200324c 100644 --- a/docs/superpowers/specs/2026-05-13-eye-square-variant-design.md +++ b/docs/superpowers/specs/2026-05-13-eye-square-variant-design.md @@ -37,20 +37,29 @@ The host-side `RemoteUIManager` adds a `form_factor: "round" | "square"` field t ### Phase 2 — add `remote-ui/square/` (purely additive) -New sibling targeting: +New sibling targeting two boards that share the same BCM2711 SoC and image: + +| | Pi 4 Model B (primary bench target) | Pi 400 (additional target) | +|---|---|---| +| SoC | BCM2711, arm64 | BCM2711, arm64 (identical silicon) | +| DTB | `bcm2711-rpi-4-b.dtb` | `bcm2711-rpi-400.dtb` | +| Display | Official Raspberry Pi 7" Touchscreen V1.1 (DSI, 800×480, 10-point capacitive) | DSI 7" panel via Pi 400's DSI connector, **or** micro-HDMI to external 800×480/1024×600 touchscreen (USB-touch device) | +| Keyboard | External USB | Integrated keyboard | +| Power | GPIO 5V (USB-C reserved for peripheral OTG) | GPIO 5V (USB-C reserved for peripheral OTG) | +| USB peripheral | dwc3 via `dwc2,dr_mode=peripheral` overlay | dwc3 via `dwc2,dr_mode=peripheral` overlay (identical) | + +Shared across both: | | Value | |---|---| -| Board | Raspberry Pi 4 Model B (BCM2711, arm64) | -| Display | Official Raspberry Pi 7" Touchscreen V1.1 (DSI, 800×480, 10-point capacitive) | | Compositor | Openbox on X11 (xinit-launched) | | Renderer left | Chromium kiosk consuming `common/`+`round/index.html` at (0,0)+480×480 | | Renderer right | PySide6 (LGPL Qt for Python) QMainWindow at (480,0)+320×480 | | IPC | WebSocket on `ws://127.0.0.1:9090/eye-square` hosted by the PySide6 process | | Privileged ops | `secubox-eye-square-helper` FastAPI on Unix socket `/run/secubox/eye-square-helper.sock` | -| Power | GPIO 5V (USB-C reserved for peripheral-mode OTG) | -| USB peripheral | dwc3 in peripheral mode via the `dwc2,dr_mode=peripheral` overlay | -| Input | Touchscreen + USB touchpad + USB mouse + USB keyboard | +| Input | Touchscreen + USB touchpad + USB mouse + USB keyboard (Pi 400 adds integrated keyboard automatically via libinput) | + +A single `secubox-eye-square_VERSION_arm64.img.xz` image boots on either board — the kernel's DTB selection at boot picks the right `bcm2711-rpi-*.dtb` based on the EEPROM model ID. `firstboot.sh` reads `/proc/device-tree/model` to record the board flavour and may set `hostname` accordingly (`secubox-eye-square-<6 hex>` on Pi 4B, `secubox-eye-square-400-<6 hex>` on Pi 400). All other configuration is identical. ### Out of scope (separate issues + specs)