Primary Display
Spec hygiene (canonical-spec.md rule 1). This document does not restate canonical values (resolution, framebuffer dims, cell size, color palette). Those live in the Canonical Hardware Specification. Any value inline is a bug — fix it.
The Elecrow 7” IPS is the primary visible surface — a 1024×600 RGB565 framebuffer the operator looks at, rendered by the KN-86 native renderer per ADR-0036. Cell density is per-region via integer-scaled 8×8 glyphs: 128×75 is the 1× cell ceiling (8 px per cell on a 1024×600 panel — 1024 = 128×8, 600 = 75×8), with 2×, 3×, and larger scales available for headlines and dense overlays. The 128×150 half-block pseudo-pixel canvas (sub-cell vertical resolution via U+2580 / U+2584) is preserved from ADR-0027. The default phosphor is AMBER #E6A020 on black, with WHITE #F0F0F0 and GREEN #33F033 selectable via the SYS-tab aesthetic-mode picker per ADR-0034.
Row layout is non-negotiable:
- Row 0 — firmware status bar (top). nOSh-runtime-owned.
- Rows 1–73 — cartridge content area. 73 rows of usable surface.
- Row 74 — firmware action bar (bottom). nOSh-runtime-owned.
Cartridges never draw on Row 0 or Row 74. CIPHER glyphs never render on the primary grid (one sanctioned exception: the Null cartridge, per canonical-spec.md Spec Hygiene Rule 6 + ADR-0015 §3a). All other CIPHER content goes to the auxiliary-display.md.
For the panel model, resolution, text grid dimensions, font cell, color, and display modes, see Canonical Hardware Specification.
Geometry
Section titled “Geometry”⚠ LEGACY (superseded twice — by ADR-0027 on 2026-06-07, then by ADR-0036 on 2026-06-13). The 960×600 logical framebuffer / 12×24 cell / 32 px letterbox / SDL composition model below is retired. Canonical geometry is now a 1024×600 RGB565 framebuffer with per-region cell density via integer-scaled 8×8 glyphs (128×75 = 1× cell ceiling: 1024 = 128×8, 600 = 75×8), rendered by the KN-86 native framebuffer renderer into an SDL3 RGB565 surface — no logical framebuffer, no Linux console PSF, no
setfont, no tty1 handoff, no letterbox. (Updated 2026-07-27: the/dev/fb0kiosk bring-up this note used to promise never shipped. The device runs the same SDL3 host as the desktop, over KMSDRM — see ADR-0036 Amendment Log 2026-07-27.) The detailed rewrite of this section is tracked in the nOSh re-flow task. Retained here as design history until that lands.
Per ADR-0014 (Accepted 2026-04-21 — superseded):
- Logical framebuffer: 960×600 pixels.
KN86_FRAMEBUFFER_WIDTH= 960;KN86_FRAMEBUFFER_HEIGHT= 600 inruntime/src/types.h. - Physical cell: 12×24 px on the Elecrow.
KN86_CELL_WIDTH= 12;KN86_CELL_HEIGHT= 24. - Source font: 8×8 Press Start 2P bitmap (
KN86_FONT_WIDTH = 8,KN86_FONT_HEIGHT = 8), rendered at 1× horizontal / 2× vertical scale, centered in the 12×24 cell with 2 px horizontal / 4 px vertical padding. Glyph origin:(col × 12 + 2, row × 24 + 4). - Composition onto the 1024×600 panel:
scale = 1, 32 px horizontal letterbox per side, 0 px vertical letterbox. Integer scale throughout the pipeline. The 32 px bands read as intentional bezel. - BITMAP mode canvas: the full 960×600 logical framebuffer. The 32 px horizontal letterbox is invisible to cartridges.
The font asset stays at 8×8; a native 12×24 cut is queued as quality-upgrade follow-up (ADR-0014 §F1).
Interface
Section titled “Interface”| Signal | From | To | Notes |
|---|---|---|---|
| mini-HDMI | Pi Zero 2 W mini-HDMI port | Elecrow HDMI input | Use a mini-HDMI to full-HDMI adapter or short cable (BOM line 4). |
| Power | KN-86 main 5 V rail (Waveshare UPS Module 3S, ADR-0038) | Display 5 V input | The display runs off the device’s main 5 V / 5 A rail — the dominant load on it (~1.5–2 A typical with the panel on). See power.md. |
The Pi drives HDMI from /boot/config.txt overrides (see Bring-up below). SDL3 on Linux composes the 960×600 logical framebuffer onto the 1024×600 panel surface with the 32 px letterbox baked in.
Color and rendering
Section titled “Color and rendering”AMBER #E6A020 foreground on #000000 background by default — selectable between three phosphor schemes (AMBER / WHITE / GREEN) via the SYS-tab aesthetic-mode picker per ADR-0034 (as amended 2026-06-13 per ADR-0036). The grid is single-foreground at any given moment; inversion (fg/bg swap) provides the semantic “second color.” The font is Press Start 2P 8×8 plus a CP437 box-drawing subset for layout work. See software/api-reference/grammars/character-set.md for the full glyph set, the KN-86 Code Page (extended for ADR-0036), and the planned ~2,000-glyph Unicode subset (Layer 2).
Native framebuffer rendering means there is no 12×24 logical cell, no 8×8-with-padding step, and no letterbox — glyphs blit directly into the RGB565 surface at the per-region integer scale per ADR-0036.
The Elecrow runs off the KN-86 main 5 V rail from the Waveshare UPS Module 3S (ADR-0038) — it is the dominant load on that rail. Power topology lives in power.md. Because the display is now on the battery, backlight dim/blank during nOSh soft-idle is the highest-leverage runtime saving; it is a Pi-driven HDMI command, not a hardware switch.
Mechanical
Section titled “Mechanical”The display module mounts behind a 3D-printed bezel cutout in the lid panel of the Pelican 1170 inset. Foam in the lid is cut to seat the display; the Pelican shell itself is unmodified. See enclosure.md. A clear acrylic / polycarbonate sheet sits behind the bezel as a display window.
Bring-up
Section titled “Bring-up”Stage 1 in build-specification.md §4:
- Power the Elecrow from the KN-86 main 5 V rail (Waveshare UPS Module 3S; see
power.md). - Connect mini-HDMI from the Pi to the Elecrow input.
- Edit
/boot/config.txtto force HDMI at 1024×600 native and disable HDMI compensation modes. - Boot, verify SDL3 renders at 960×600 logical with 32/0 letterbox onto 1024×600 physical.
- Verify the 80×25 grid lays out correctly with Row 0 / Rows 1–23 / Row 24 partitioning.
The bitmap-rendering perf pass on Pi Zero 2 W (ADR-0014 §F2) measures the 960×600 render path under typical cartridge load. File a perf-optimisation task only on a real budget miss.
Sourcing
Section titled “Sourcing”BOM line 2 in sourcing-guide.md. Single supplier: Elecrow direct. Locked to this specific panel — discontinuation forces a display-swap ADR and CAD respin. Buy a spare panel early; this is one of the high-risk sourcing items.
The mini-HDMI adapter / cable is BOM line 4 (Adafruit / Amazon).
See also
Section titled “See also”auxiliary-display.md— CIPHER-LINE OLED (separate surface, exclusive home of the Cipher voice).processor.md— Pi Zero 2 W drives HDMI.software/runtime/— what nOSh renders to this surface (mission board, phase chain, bare-deck terminal, input dispatch).software/api-reference/grammars/character-set.md— glyph set + font path.