Device specification: Aksara Node
Status: DRAFT v0.1 (2026-07-10, promoted from STUB). Working language English
(Yose 2026-07-10); Indonesian pass later. Sources: blueprint ADK-DEV-BP-002
v0.4 "Plakat" (blueprints/blueprint_gen.py, regenerable), D19 (display),
v4.1 §24-§25 (subsystems, voice tiers, load-shedding),
research/2026-07-05_stack-hardware-sota.md §C+§F,
research/2026-07-07_flexible-paper-displays.md,
research/2026-07-10_voice-and-model-stack.md,
research/2026-07-10_e2e-audio-landscape.md. Numbers carry their source;
TBV = to be verified, honest label.
1. Form: Plakat (v0.4)
A 200 x 252.5 mm portrait slab floating 30 mm off the wall on four stainless
signage standoffs (O16 x 30, inset 12 mm). The slab is a cold-assembled
sandwich: 2.0 mm anti-glare polycarbonate front, the flexible 0.647 mm
10.3 inch e-ink panel held FLAT, 3.0 mm polycarbonate back; total about
5.6 mm, face 35.6 mm off the wall. All electronics live in a hidden
wall-side aluminium cassette 160 x 140 x 22 mm hung behind the slab. From
the front: paper, four bolts, a wall-washing corona of light. Full geometry,
parts balloons, and section details are in the blueprint (live on the hub
site at /blueprint-perangkat).
Cultural anchor (pattern observation, not regulation): standoff-mounted acrylic boards are the standard visual language of Indonesian public offices (maklumat pelayanan, struktur organisasi). The device reads as "the board that was always there", then turns out to listen and answer. The bottom-right bolt head is the fingerprint consent button (cap jempol: thumbprint-as-signature, widely understood).
Recorded fallback variants (blueprint note 11): B "Ambang" = thin lintel strip above the slab as the speaking face, if field tests show people do not know where to talk; C "Bingkai" = conservative TRMNL-style single frame about 28 mm deep. v0.3 Prisma is history.
2. Subsystem map
| # | Subsystem | Part (chosen) | Where | Receipt |
|---|---|---|---|---|
| 1 | Compute | Orange Pi 5 Pro 16 GB (RK3588S), flat + low heatsink | cassette | sota §F1 |
| 2 | Display | 10.3 inch e-ink ED103TC2 class, 1404 x 1872 @ 227 dpi (Seeed EE03 kit; Yose call 2026-07-11, option A) | slab sandwich | cheap-display 2026-07-11 |
| 3 | Display controller | ESP32-S3 display node (EE03 kit): OPi renders, ESP32 holds the page at microwatts; FPC folded once (S-fold, static) | cassette | cheap-display 2026-07-11; blueprint note 4 |
| 4 | Mic array | ReSpeaker XVF3800 (hardware AEC, DoA, beamforming) | cassette; O~1 mm ports on the slab's top edge | sota §F3 |
| 5 | Speaker | Rear-firing driver, wall as diffuse reflector | cassette | blueprint note 5, TBV acoustics |
| 6 | Presence | LD2410 24 GHz mmWave, behind the slab's bottom margin (PC-only zone) | slab margin | blueprint note 8 |
| 7 | Consent | Fingerprint sensor in the bottom-right bolt head (module TBD, R503 class) | standoff | sota §F4, LEDGER 16 |
| 8 | Security | ATECC608B breakout + RTC | cassette | sota §F5 |
| 9 | Connectivity | SIMCom A7672E LTE Cat-1 + WiFi/BT (SBC) + Ethernet; antenna at cassette edge, away from the panel | cassette | sota §F6 |
| 10 | Power | LiFePO4 flat pack 40-60 Wh + BMS, USB-C PD input | cassette | sota §F7, §7 below |
| 11 | Halo | Amber LED strip around the cassette perimeter, washes the WALL (corona); light never touches the e-ink | cassette rim | blueprint note 7 |
No camera, ever. No face recognition. The wall receives four anchors and one power feed.
3. Compute and model residency
RK3588S facts that gate every promise (sota §C1, must-fix list):
- The NPU path (RKLLM) is W8A8 only. Q4/GGUF runs on CPU via llama.cpp. Never write "NPU" and "4-bit" in the same sentence.
- Verified planning figure: 4B-class model about 6 tok/s decode on NPU (w8a8), about 4.6 GB RAM. 8B-on-NPU numbers are unverified; do not promise them.
Residency plan (voice report 2026-07-10, e2e report 2026-07-10):
- Main local LLM: Gemma 4 E4B (stays; the decision survived two research rounds). Cloud model is the primary brain when connectivity and budget allow; the local model is the sovereignty and availability floor, not a cost play (cloud inference verified at Rp 16-66rb/month).
- ASR + diarization: modular sherpa-onnx pipeline (Whisper small int8 + pyannote segmentation ONNX + speaker embeddings). The seams are load-bearing: receipts need verbatim transcripts, consent needs persistent voiceprints; no open-weights e2e audio model speaks Indonesian (e2e report, 2026-07-10). Watch triggers logged there (LFM2.5-Audio Indonesian checkpoint is trigger 1).
- TTS: Piper tier now, VoxCPM class later per v4.1 voice tiers 1-4 with per-mode residency policy.
- JSON workhorse candidate: Qwen3.5-4B for mechanical
extraction/structuring tasks (voice report). Memory consolidation follows
specs/memori-aksara/02_format.md§7: structure remembers, models dream; tidur runs incremental small windows, never whole-day piles.
RAM budget sketch (16 GB board): model resident ~5 GB, ASR+TTS ~2 GB (TBV measured), OS + runtime + aksara-cli the rest. The 8 GB SKU is rejected; 16 GB is the floor.
4. Display and waveform discipline (D19)
Prototype 1 keeps the 10.3 inch panel with waveform discipline: DU partial
refresh 0.22 s NO FLASH for the statline and strokes; GC16 full refresh only
on content change, masked as the daily-artwork page turn (flash becomes
ritual, not jolt). Production path: Good Display GDEP103TC2 (USD 98.90) +
DEJA-TC103 TCON; RLCD (Azumo) is the endgame inquiry. Cheap IPS rejected:
a 6-7 W backlight drains the outage battery in 7-15 h vs e-ink months.
All per D19 and research/2026-07-05_display-options.md.
UI: 1404 x 1872 grayscale layouts (queue, tasks, schedule, alerts,
self-published SLA numbers). Built browser-first in aksara-ui
(github.com/yohn-maistre/aksara-ui, renamed from aksara-papan 2026-07-10):
demos now, ships on device later.
5. Voice subsystem
Wake word + VAD on device; barge-in = VAD + the XVF3800's on-chip AEC (full-duplex models rejected for the kiosk, e2e report). Mic ports are O~1 mm holes on the slab's TOP edge, invisible from the front, ducted down to the XVF3800 in the cassette. Halo semantics (spec 05): listening, processing, speaking, direction; no visible emitters; the corona is the only functional gradient.
Primary acoustic risk of the v0.4 form: reverb in the 30 mm wall gap, for both the mic path and the wall-reflected speaker. TBV in the field with AEC on; fallback is variant B "Ambang" (blueprint note 6).
6. Consent and security hardware
- Pressing the bottom-right bolt = signing gesture. The fingerprint match
gates aksara-cli's consent-scoped writes (Buku Tamu rules,
specs/memori-aksara/02_format.md§6); the sensor never stores images off-module. - ATECC608B holds device identity keys; signed-record standard
(
specs/aksara-cli/) chains from it. RTC keeps honest timestamps through outages (bi-temporal store needs trustworthydicatattimes). - Threat model owner:
specs/security/(STUB; this section feeds it).
7. Power and the load-shedding ladder
Draw: 7-12 W passive envelope (v4.1 spec; sustained-LLM load TBV in field). Battery: 40-60 Wh flat pack (~90 x 60 x 15 mm) fits the 22 mm cassette. The Rp/Wh winner from research (12.8 V 12 Ah, 153.6 Wh, ~Rp 1.1 jt, ~1.25 kg) does NOT fit the cassette and would bust the ~1.0-1.3 kg hung weight; it is an option only for a desk-dock variant (§9 open questions).
Runtime estimates (honest arithmetic, TBV measured): 50 Wh at 10 W = ~5 h at full service. The ladder extends that:
- Full: local LLM + cloud, voice, display, halo.
- Cloud-inference-only: local model unloaded, ~TBV W.
- Intake-and-queue: ASR + receipts only, replies deferred.
- Panel-only: e-ink statline + queue display, radios duty-cycled; target ~1-2 W (TBV) = days, the e-ink advantage D19 exists for.
Ladder steps are announced on the panel (honest labels: the office sees which tier it is getting).
8. Thermal
Aluminium cassette back faces the 30 mm gap and acts as the radiator; the gap is open top and bottom = passive convection chimney (blueprint note 9). 7-12 W passive is comfortable for RK3588S class; sustained-LLM soak test is TBV field work. The slab itself carries no heat source (panel is passive), so the paper face stays cold to the touch.
9. Open questions (shaped)
- Power feed: (a) USB-C PD wall wart, cable hidden in a channel or through-wall grommet (blueprint assumption, RECOMMENDED for kampung offices); (b) PoE++ (802.3bt, ~25 W class) single-cable power + network for offices that already run switches; adds a splitter module to the cassette, TBV fit. Could be a per-site install option rather than a SKU split.
- Battery SKU: 40-60 Wh in-cassette (RECOMMENDED, fits geometry) vs 153 Wh desk-dock variant for outage-heavy sites. Needs the load-shed ladder's measured draws before the call means anything.
- Fingerprint module for the bolt head: R503 class fits the budget; O~25 mm bolt-head integration is custom mechanical work (LEDGER 16, Yose pick + a machining quote).
- Enclosure toolchain on a phone-only build environment: parametric OpenSCAD (code-first, reviewable in repo) vs external CAD collaborator. Blueprint stays the dimensional truth either way.
- Acoustic field test of the 30 mm gap (mic reverb + wall-bounce speaker) decides Plakat vs Ambang. Cannot be settled on paper.
- Compute alternative watch: Radxa Rock 5C 16 GB pricing (2026 unverified), CM3588 rejected as NAS-oriented (sota §F1). Re-check at pilot-batch time.
- Mounting plate material (Yose 2026-07-11: standoffs should land on a base plate, not bare wall; blueprint v0.4 draws them wall-direct, fix in v0.5): (a) powder-coated steel or aluminium plate (RECOMMENDED for pilot: rigid on any wall type, keyhole/cleat hanging, hides the cable entry, weather-indifferent); (b) sealed hardwood plate (warm, local material and craft, fits the artisan-edition path, needs outdoor-grade sealing and periodic care); (c) direct-to-wall (fewest parts, solid masonry only, no cable concealment; what v0.4 currently draws). Related rulings swept 2026-07-11: cables between slab and kotak run INSIDE the hollow standoffs (no visible cable from any angle); the electronics kotak is gasket-sealed to a splash-and-dust target (IP54-class intent, TBV at prototype) with a labyrinth vent path so the convection chimney still works; public-facing Indonesian wording uses "kotak", not "kaset".