docs: plan for updating the user manual for rev4 hardware - #572
Merged
Conversation
v2.6.1 ships full software support for rev4, but docs/source/ still describes rev3 exclusively -- and in the power/charging area it is actively wrong for a rev4 owner (states there is no battery indicator and no low-battery warning, documents a slide switch and a PiSugar board that rev4 does not have). This is a plan document only; no .rst is changed. It records the rev3 -> rev4 delta with sources, four structural decisions that need confirming before agents start, six agent-sized work packages with dependencies, the hardware photos that have to be shot by hand, the screenshots agents can produce themselves, and the hardware facts that are not in the repo and must not be guessed. Follows the bringup-implementation-plan.md precedent of keeping plan docs at the repo root. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The plan described rev4's directional input as a "cluster" of separate switches moved to the right-hand column, following the language in keypad.py and the bring-up glossary. Physically it is one 5-way joystick: four directions plus a centre press that duplicates SQUARE. This matters in two places. For the manual, the joystick is the fastest visual tell between rev3 and rev4 and needs a one-time explanation of how it is operated -- the logical key names are unchanged, so nothing else in the prose moves. For bring-up, a builder whose grid shows one dead direction is reflowing a single component, not hunting for one of five switches that does not exist. Also flags the underlying terminology gap as a grill-with-docs candidate: the bring-up glossary defines "switch" as one physical pushbutton, which a multi-contact joystick is not. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Decisions from Rich, now folded into the plan: - rev4 becomes the default voice; v3/v2.5 differences go in notes. - "rev4" is introduced alongside "v3"/"v2.5" with no retro-rename. - 176px is the default for new screenshots, no mass replacement, and a page's existing shots get re-taken when that page is edited anyway. - The rev4 DIY build path is out of scope and gets no scoping note, which deletes WP5 outright. WP0 is implemented here rather than left for an agent, because the plan should not document a flag that does not exist. pf_remote.py launch now takes --display (defaulting to headless_176, rev4's panel) and -fb for the rev4 battery monitor. Verified end to end: launched headless with -fb, captured /api/screen at 176x176 with the battery icon in the title bar, converted to a 352x352 doc-ready PNG. Both skills are updated to match, and the docs skill's product knowledge base is rewritten -- it described rev4 as a planned future revision with no working prototype, which would have poisoned anything written from it. Docs build stays clean: zero warnings under sphinx-build -n. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The bench campaign closed 2026-07-26 (ADR 0020 updated in PR #573), so WP1 no longer has to leave a TODO where the battery-life number goes: about 10 hours, measured on two units under the pinned worst-case load. Framed as a floor rather than a typical figure, since it was measured with the camera solving continuously, the screen at full brightness and sleep disabled -- ordinary observing is lighter and runs longer. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Two things agents need before they start. The measured runtime figure now appears in the rev3->rev4 delta table in §1, not only in the resolved open question at the bottom, since §1 is where an agent looks first. Branching guidance: WP1-WP4 must not branch from main while #572 is open. They depend on the pf_remote 176px flags, the docs skill's rev4 rules and the corrected product knowledge base, all of which live only on this branch -- and a branch cut from main looks healthy while silently producing 128px screenshots and rev3-default prose. Preferred fix is to merge #572 first; otherwise reset the worktree onto this branch and open WP PRs with --base pointing here. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
brickbots
marked this pull request as ready for review
August 6, 2026 23:52
brickbots
added a commit
that referenced
this pull request
Aug 7, 2026
The plan file was scaffolding for the rev4 documentation pass (PR #572). With the work packages delivered it is stale in two places — it lists an error tone that has no producer, and says the Volume setting is gated on buzzer hardware when it is not (see #580, #581) — so leaving it in the repo would be actively misleading. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
brickbots
added a commit
that referenced
this pull request
Aug 7, 2026
* docs: rewrite Power & Charging for rev4 (WP1) The manual described power and charging as a v3 PiSugar unit with a slide switch, and stated outright that there is no battery indicator, no low-battery warning, and that a flat PiFinder "simply shuts off" — all three false on rev4. Rewrites the Power & Charging section of user_guide.rst with rev4 as the default voice and v3/v2.5 differences scoped into notes: - Power button and shutdown: press to start; press and hold to reach the shutdown confirmation, second press confirms, the unit powers itself off. - Charging: the faceplate-labelled POWER and DATA ports, the CHG indicator (and an honest word about it being bright at night), ~1.5 A charge current, ~6 h from empty, and that the unit can be used while charging. - The battery indicator: a state-of-charge estimate expressed as remaining runtime, not capacity remaining; no percentage while charging; empty once the charger's ADC goes blind. - Low-battery warnings and automatic shutdown: advisories at 10% and 5%, once per discharge, re-armed by plugging in; then an orderly shutdown that exists to avoid an SD-corrupting hard cut. - Battery life: about ten hours from the 8,000 mAh cell, quoted as a measured floor under a continuously solving load rather than a typical figure. The old "four to five hours" was a v3/PiSugar number and is gone. - Running on external power and Battery safety & care: PiSugar-specific advice moved into v3-scoped notes. Also updates the Shutdown section to lead with the power button, the Quick Start's Powering / Shutting down passages, and the troubleshooting entry for "The PiFinder won't turn on". New 176 px screenshots for the battery buckets, the charging bolt, the 10% warning and the low-battery shutdown; shutdown_confirm.png re-taken at 176 px per the opportunistic-conversion rule. Docs build clean: sphinx-build -n reports zero warnings. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs: fix the battery-life FAQ for rev4 (WP1 follow-up) The "How long does the battery last?" FAQ entry carried the same three claims the plan flagged at user_guide.rst:773-776 — "four to five hours", "there's no battery gauge", and "the unit shuts off abruptly when empty" — all false on rev4. It survived the first pass because WP1's brief scoped troubleshooting.rst to the power-on symptom near the top of the page. Rewritten in the rev4-default voice: about ten hours as a measured floor, the activity-dependence point kept, and cross-references to the battery indicator and low-battery shutdown sections rather than restating them. The USB-C power-bank hot-plug tip stays. v3/v2.5's four-to-five hours, missing indicator and abrupt cutoff move into a scoped note — which also gives v3 owners back the runtime figure this pass removed elsewhere. Docs build clean: sphinx-build -n reports zero warnings. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs: remove the rev4 docs update plan now that the work has landed The plan file was scaffolding for the rev4 documentation pass (PR #572). With the work packages delivered it is stale in two places — it lists an error tone that has no producer, and says the Volume setting is gated on buzzer hardware when it is not (see #580, #581) — so leaving it in the repo would be actively misleading. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * docs(skill): scope the product KB for rev4 as the default case WP0 rewrote this reference's Hardware Versions entry for rev4 but left the rest of the file describing v3 as though it were current. Since this is the file every future docs agent reads before writing, it now contradicted the manual and would have actively misled the next agent — most sharply at "no on-screen battery level indicator… no auto-shutdown… will abruptly shut off… A future hardware revision will address this." That future shipped in 2.6.1. Applies the same D1 rule as the manual: rev4 is the default case, v3/v2.5 facts are kept but explicitly labelled. Sections reworked: Hardware Versions, Initial Power On, Power & Charging Details, Brightness Control, GPS Lock, Status Screen Icons, Title Bar Display, Camera Configuration & Focus, Button Mapping, SD Card Problems, Power & Battery Issues, Device Freezing, Shutdown, plus the battery, cable, weight and dimensions FAQ answers and two branches of the decision tree. Adds a Sound & Volume section, which the file lacked entirely. Facts added: power button with the ~1s hold; POWER/DATA ports and the red CHG LED; 8,000 mAh at 1.5 A, so roughly 6 hours to charge — marked as calculated rather than measured; about 10 hours runtime as a measured floor; the 10%/5% advisories and orderly shutdown; UBlox 10 at 115,200 baud; side-mounted push-to- eject SD card; unchanged cameras; AS = Analog Sky. Two traps called out explicitly for the next agent: the 8,000 mAh capacity must not bleed into how the on-screen percentage is described, since that is a runtime fraction with no fuel gauge behind it (ADR 0020); and there is no error tone, so don't list one (issue #581). The remaining unknowns are narrowed to whether the rev4 case differs further and whether a rev4 DIY build path exists, with the DIY section given a scoping header and build_guide/BOM noted as v3/v2.5 only. Sphinx is unaffected by this file; the nitpicky docs build still reports zero warnings. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds
rev4-docs-update-plan.mdat the repo root (following thebringup-implementation-plan.mdprecedent), plus the tooling needed to act on it. No.rstis changed — the manual itself is untouched.Why
v2.6.1 ships full software support for rev4, but
docs/source/still describes rev3 exclusively. In the power/charging area it is not merely incomplete — it is actively wrong for a rev4 owner:user_guide.rst:773-776— "There is no battery-level indicator on the screen and no low-battery warning: when the charge is depleted the PiFinder simply shuts off." False in all three claims on rev4.user_guide.rst:819-841— PiSugar S Plus as the charging story. rev4 has an on-board BQ25895.quick_start.rst:48-68,troubleshooting.rst:16-33— a white slide switch. rev4 has a momentary power button.Settings → User Pref) shipped in 2.6.1 with zero documentation, in neitheruser_guide.rstnormenu_map.rst.Decisions (settled — recorded in §2)
.. note::blocks.build_guide.rstandBOM.rstuntouched. This deleted WP5.Battery life: now a real number
The bench campaign closed 2026-07-26 (six discharges, two units — ADR 0020 updated in #573). Runtime is about 10 hours: 9h55m and 10h03m under a deliberate worst case — camera solving continuously, screen at full brightness, display sleep off. The plan tells WP1 to quote it as a floor and note that ordinary observing runs longer, and to drop the v3/PiSugar "four to five hours" entirely. This closed the plan's first open question.
Branching — where WP agents start
WP1–WP4 depend on three things that exist only on this branch: the
pf_remote.py --display headless_176/-fbflags, thedocsskill's rev4 rules plus the corrected product knowledge base, and the plan file itself. A WP branch cut frommainlooks perfectly healthy and quietly produces 128 px screenshots and rev3-default prose.mainnormally. It is a plan doc, a skill/tooling change and no product code, so it is cheap to land.git reset --hard origin/worktree-rev4-docs-planafterEnterWorktree(the harness bases worktrees onorigin/HEAD, which can resolve toreleasein this clone), and open WP PRs with--base worktree-rev4-docs-plan. GitHub retargets them tomainon merge.WP0 is implemented here
The plan shouldn't document a flag that doesn't exist, so this branch adds it:
pf_remote.py launch --display {headless_176,headless,headless_320}, defaulting toheadless_176— rev4's panel without asking.pf_remote.py launch -fb/--fakebattery— the rev4 battery monitor, needed for any title-bar shot (plain-fhemulates rev3, so the icon is simply absent).product-knowledge-base.mdrewritten — it described rev4 as "a planned future revision… still in early design… no working prototype on a scope yet," which would have poisoned anything an agent wrote from it.Verified end to end, not by inspection: launched headless with
-fb, captured/api/screenat 176×176 with the battery icon present, converted throughscreenshot_to_doc.pyto a 352×352 amber PNG.What remains
WP1 (Power & Charging rewrite) · WP2 (Sound + Volume) · WP3 (screen, joystick, "Which PiFinder do I have?") · WP4 (new bring-up page). WP1/WP2/WP3 all edit
user_guide.rst, so they need separate worktrees or sequencing; WP4 is the safe one to parallelise, since it only adds a page and one toctree line.Notable findings
docs/ax/bringup/CONTEXT.mddescribe it in switch language against a glossary defining switch as "one physical pushbutton" — flagged as a/grill-with-docscandidate. It matters for bring-up: a builder with one dead direction is reflowing one component, not hunting five switches.Verification
sphinx-build -nreports zero warnings on this branch, matching theorigin/mainbaseline — so any warning a later agent sees is one they introduced. That build needs a throwaway venv; the project venv lackssphinxcontrib-mermaid, whichmenu_map.rstrequires. Both facts are recorded in §5.🤖 Generated with Claude Code