Skip to content

Primary Processor

Spec hygiene (canonical-spec.md rule 1). This document does not restate concrete hardware values (clock speed, RAM, runtime envelope, etc.). Those live in the Canonical Hardware Specification. Any value that appears inline is a bug — file an issue and fix it.


The Raspberry Pi Zero 2 W is the sole primary processor for the KN-86 Deckline. It runs Linux userspace, owns the nOSh runtime (mission board, phase chain, deck state, Fe VM execution), drives the primary display over HDMI, hosts the internal USB hub for keyboard + cartridge bridge, and commands the Pi Pico 2 coprocessor for realtime I/O.

Architecture summary: Pi = compute brain. Pico = realtime I/O front-end (see coprocessor.md).

For the canonical processor specification (model, cores, clock, RAM, connectivity), see Canonical Hardware Specification — Processor row.


RPi Zero 2 W board layout with pinout

Source: eTechnophiles — Raspberry Pi Zero 2 W Board Layout, Pinout & Specs.


  • Zero W (original): Insufficient compute for the desktop emulator path; nOSh’s UI animations and PSG synthesis benefit meaningfully from the Cortex-A53 quad core.
  • Pi 4: Overpowered and too physically large to fit the Pelican 1170’s interior envelope (see enclosure.md). Power draw would also compromise the battery runtime target.
  • Zero 2 WH (pre-soldered header variant): Functionally identical to Zero 2 W for our purposes; either is acceptable at bench-rig scale. The build uses whichever is available.

InterfaceConnects toNotes
mini-HDMIElecrow 7” primary displaySee primary-display.md.
USB OTGInternal USB 2.0 hub IC (TUSB2036 / FE1.1s)Hub fans out to keyboard controller (see keyboard.md) + USB-to-SD bridge IC (see cartridge-interface.md).
UART0 (GPIO14 TX, GPIO15 RX)Pi Pico 2 coprocessor at 1 MbpsCommand link per ADR-0017. See coprocessor.md and software/api-reference/grammars/coprocessor-protocol.md.
GPIO22, GPIO23Pico 2 BOOTSEL + RESET control linesDrives the Pi-mediated Pico flash flow. Pin assignment is TBD during prototype bring-up if a conflict surfaces (ADR-0017 §6 + Known Unknowns #2).
microSDA/B partitioned system image + /home/sharedSee ADR-0011 for partition layout and device/os/ for the OS image build.
Wi-Fi (onboard)Time sync, OTA updates, dev-mode SSHProduction mode masks SSH; see build-specification.md §5.
5V VINMain 5 V rail from the Waveshare UPS Module 3S (ADR-0038)See power.md.
I²C (battery monitor)UPS module INA219nOSh reads pack voltage/current/power for the Row-0 battery glyph (ADR-0038). See power.md.

The Pi gives up SPI0 (was driving the SSD1322 per pre-ADR-0017 ADR-0015 §1) and the I2S pins (BCLK / LRCLK / DOUT — was driving the MAX98357A directly). It gains the four UART0 + control pins for the Pico link. Net: −5 freed, +4 claimed — slight net reduction in claimed Pi GPIOs (ADR-0017 §7).

Free Pi SPI0 / SPI1 / I2S pins remain available for a future peripheral (no current claim).


The Pi draws from the main 5V rail at its VIN pin. Typical draw and runtime envelope are canonical values — see canonical-spec.md Battery row. The post-coprocessor envelope is the load-bearing one (the pre-coprocessor figures are pre-2026-04-24 history; see coprocessor.md for the runtime-band shift). Power topology and idle behavior live in power.md.

The Zero 2 W has no built-in fuel gauge, but battery state is read from the Waveshare UPS Module 3S’s onboard INA219 over I²C (voltage/current/power) per ADR-0038 — this replaces the prior resistor-divider + MCP3008 ADC plan. nOSh polls at ~1 Hz. Below threshold: low-battery glyph on Row 0, best-effort deckstate checkpoint, clean shutdown before protection cuts power.


The Pi runs:

  • Linux userspace (Raspberry Pi OS or pi-gen-built variant — see device/os/).
  • nOSh runtime (single C/SDL3 process; see software/runtime/).
  • Fe VM for cartridge Lisp execution (ADR-0001, ADR-0004).
  • Coprocessor daemon owning /dev/serial0, exposing the Pico command surface to nOSh (ADR-0017 §F3).
  • udev subscriber for cartridge insertion / removal events (see cartridge-interface.md).

Cartridge code does not observe the Pi/Pico boundary — the NoshAPI FFI surface (ADR-0005) is identical regardless of which side fulfills the call.


Stage 0 in build-specification.md §4. Headless Wi-Fi + SSH from dev box, microSD provisioning, kn86 userspace install. The Pi-side bring-up completes before the coprocessor (Stage 1c — see coprocessor.md) and the auxiliary display (auxiliary-display.md).


BOM line 1 in sourcing-guide.md. Suppliers: Adafruit, Pimoroni, Raspberry Pi direct. Order 2 units up front (one for the rig, one as spare) — Pi global supply spikes into shortage during chip crunches.


  • coprocessor.md — Pi Pico 2 (RP2350) realtime I/O coprocessor.
  • build-specification.md — system-level topology, assembly plan.
  • device/os/ — system image build, kiosk mode, power idle, update system.
  • software/runtime/ — what nOSh does on this processor.