Documentation review: current-firmware-only, Matrix Gateway naming, full feature coverage
- every old-firmware version tag/caveat removed across all pages (headings
de-tagged with inbound anchors fixed in lockstep); Matrix-Gateway's intro
changelog replaced with current-state prose
- naming: Matrix Portal -> Matrix Gateway (wire strings/repo URLs kept)
- accuracy: capabilities sample matches fw 3.13 (opsBin boolean, compositing,
33 ops, 12 effects, conditional feature tokens, no api/effectParams/ha);
opsb endpoint + stream record 0x06 documented; scope/spectro/maze added;
Weather Sky references replaced (merged into Weather); BTC min-wall,
Photo Frame badge, Livestream badge, broken images -> gallery raw URLs
- new-feature coverage: icon_svg + interactive manifest rows, takeover /
quiet-in-attract / taps+presses in the games section, paginate +
get_ha_states helpers, dependency list (httpx2, Pillow, babel, dateutil),
can_* flag inventory, OpenAPI discovery (gateways + companion)
Restructure app-authoring docs: Writing-Matrix-Apps split out of Writing-Apps (1160->941 lines), new Canvas-Ops-Reference with every op documented in detail (params/defaults/semantics/examples incl. the v3.5 additions); sidebar + cross-links
Writing Apps: the Surface text toolkit (fit_font/wrap/wrap_fit/message/text_card/mix/dim) — the panel-app text vocabulary, hoisted from per-app helpers; all fitters floor at 8px
Self-describing effects (fw 3.4 effectDefs): per-effect knobs come from the wall's own description — canvas.effect(params=), canvas.effect_defs, Effects app description incl. spectrum/soundwall + Audio reactive
Accuracy sweep: twelve MCP tools (FAQ), no armv7 image (Home Assistant), settings mirror is local-primary (Multiple Displays), caps field is named_colors not named_colours (Writing Apps, Compatibility), HTTP frame-push is ~40 fps since fw 3.0.1 (Writing Apps)
Merge Date Card→Date and Weather Panel→Weather Sky in docs
Merge Overview→Dashboard and HA Dashboard→Home Assistant in docs; refresh screenshots
Every functional app is dual-surface: matrix views for all 43 apps + screenshots; toggle now matrix-only at top of settings
Writing-Apps §7: rewrite the multi-surface model — manifest surfaces[] + fetch/fetch_matrix entry points (replaces surface:canvas, canvas_view, the fetch(canvas=) branch)
Dual-view apps: document canvas_view + the matrix_view toggle (Writing-Apps §7); fold World Time/Countdown Bars into World Clock/Countdown as dual-view + add Public Holidays desk-calendar panel view (Built-in-Apps, Matrix-Gateway)
Writing-Apps: Aquarium is an op-drawing app (sprites), not Pillow frame()
Docs update for companion 2.9.x: quiz app type, channels/quizzes on the Matrix panel (canvas_art + Show on Matrix toggle), new apps (Stock Graph, Movie Quotes, Weather Panel, Scoreboard, HA Dashboard, Aquarium), firmware 3.1 delta frames + named atlases, smart-refresh cadence; new panel screenshots
Wiki: rewrite backward-looking phrasing in present tense
Drop 'as it always did / was', 'no longer', 'it did not always work that way'
and similar comparisons to prior behaviour — they only make sense to readers who
saw earlier versions. State the current behaviour as simply how it works.
Matrix Gateway + canvas: bring the wiki up to firmware 1.24 / companion 2.8
- New Canvas API page (full /api/canvas/* reference) + sidebar entry.
- Gateway-API: Matrix send paths are /api/frames/* (not /api/rs485/*); module
rows are {id, flapIndex, flapChar}; MQTT frames/tx + frames/send, rx removed;
maintenance is SplitFlap-only; panel.depth in status; canvas/effects/effectParams
in capabilities; features list corrected.
- Matrix-Gateway: frames are one-way (no v/A queries, no replies, no serials);
no module registry; canvas section rewritten to point at the Canvas page;
bit-depth auto-clamp note for large panels.
- Built-in-Apps / Writing-Apps: six effects with hue/density, new Animation and
Ticker apps, QOI, and the canvas helper's ticker/anim/paste methods.
RS-485 SplitFlap Gateway content left unchanged (correct as-is).
Big-panel apps: Overview (new), Weather Sky / Date Card big-panel layouts, denser flap Dashboard
Remove News Ticker (deleted: HTTP frame-push can't scroll smoothly)
Canvas apps: Lumina Clock (rename), Weather Sky v2, + News Ticker / Date Card / World Time / Countdown Bars; document the rich-render helpers
Canvas clock: replace Analog Clock with Aurora Clock (time as flowing colour)
Canvas capability: drawing apps, on-device effects, and image push
Writing-Apps §7 (canvas apps: surface:canvas, the canvas helper, lifecycle),
Built-in-Apps (Effects / Analog Clock / Image), Matrix-Gateway (the panel as
a raw canvas). Cross-checked against the firmware openapi + web.cpp.
Writing-Apps: the groups channel format (you write text, the engine wraps; grouping is structural)
Writing-Apps: channel page order (sequential/random) with item grouping
Writing-Apps: document the native date/time picker field types
Writing-Apps: house rules from the app audit; get_location coordinates; trigger helpers. Built-in-Apps: refreshed badges and minimums.
The library is the companion's own — 'vendored snapshot' retired
Some apps originated in splitflap-os and have been enhanced since; many
more were created here. Using-splitflap-os said the companion ships a
vendored snapshot of csader's library; it and every remaining 'vendored'
phrasing across the wiki now say built-in / its own library.
Two gateways, two names — plus Provisioning and Calibration get their own pages
SplitFlap Gateway drives real modules; Matrix Gateway draws a simulated
wall on an LED matrix. The Gateway and Matrix-Portal-Gateway pages are
renamed (redirect stubs left at the old names), 21 pages re-worded, and
both diagrams regenerated with the new labels — the configurations
diagram also aligns all seven Modules boxes on one row.
New: Module provisioning (the full process — the SplitFlap Gateway's
Provision tab and bare-metal provision.py in detail, splitflap-os's
built-in equivalent acknowledged without detail) and Module calibration
(the CALIBRATION_GUIDE ported: the three quantities, the golden order,
nudge vs exact offset, per-flap tuning, the wizard and whole-board pass,
the control reference). Linked from the sidebar's Build-it section,
Home, Module-Firmware and the SplitFlap Gateway tab tour.
The companion has its own app library — the csader relationship, stated honestly
The ecosystem graphic claimed the companion 'runs the splitflap-os app
library (csader)'; it ships its OWN library and speaks the splitflap-os
plugin format. Regenerated, and the framing aligned across the wiki:
splitflap-os is an acknowledged alternative content engine (A/B/E/F);
apps written for it drop in and run here — that inbound direction stays
a hard contract; apps written here MAY run there, without the injected
helpers and unoptimized, with no guarantees. Compatibility's goal
paragraph now says exactly that.
Also: Writing-Apps documents the grown get_weather surface (sky tokens,
days=N forecast + hourly, air=True with labels and canonical bands), and
Built-in Apps gains the countdown's per-unit colour-bar panel and the
weather app's forecast/AQI/UV/pollen in their rows.
The motion capability: the wall states how it moves
Gateway-API documents the new /api/capabilities motion key (Gateway 3.10+,
Matrix Portal 1.12+); Writing-Apps' caps table gains instant — the flag an
app gates any ticking display on; Compatibility lists it with the other
caps fields.
Wiki: five reference pages close the repo-doc gaps; provisioning is in splitflap-os now
A census of all four repos found documentation living only in repo READMEs;
the wiki now carries it:
- Bus Protocol — the RS-485 wire reference: frames, addressing, every module
command with reply grammars and result codes, EEPROM layout, boot sequence.
- Gateway API — REST + MQTT for both gateways, /api/capabilities set
arithmetic, the companion registration + settings-blob contract.
- Companion without Home Assistant — Docker, the install script, the full
COMPANION_* configuration reference, settings storage & disaster recovery.
- Languages & Localization — every language surface and how to contribute one.
- Serial Bridge — splitflap-os over the gateway's MQTT via a virtual PTY,
including Mosquitto setup.
Corrections: splitflap-os now provisions from its own UI (provision.py is
optional, three pages updated); Multiple Displays documents the network scan;
Gateway links its API reference; Home lists all 22 pages + release-notes
links; sidebar gains Reference entries; Built-in Apps adds the Binary Clock
and the Matrix-Portal-only seconds options. Every GitHub link curl-verified.
Writing Apps: anim_speed default is now 2 s (sized for a physical wall)
Wiki: Writing Apps + Compatibility move in from the repo, fact-checked against the code
Every claim audited against the companion source; the wrong ones fixed:
loop_delay default is 8, 'id' is a fallback not an override, lowercase
colour codes are animation-only, the real date app (i18n, rows>=4),
per-app anim_speed/anim_style, the full catalog-globals list, global_key
is ignored, /sports_search is the only sports endpoint, a trigger shows
the first page only, the safety audit also blocks threads/processes,
and app directories are NOT importable (single-module apps only).
Sidebar gains an 'Extend it' section; external repo-doc links become
wiki links.