Skip to content

docs: plan for updating the user manual for rev4 hardware - #572

Merged
brickbots merged 5 commits into
mainfrom
worktree-rev4-docs-plan
Aug 6, 2026
Merged

docs: plan for updating the user manual for rev4 hardware#572
brickbots merged 5 commits into
mainfrom
worktree-rev4-docs-plan

Conversation

@brickbots

@brickbots brickbots commented Aug 6, 2026

Copy link
Copy Markdown
Owner

Adds rev4-docs-update-plan.md at the repo root (following the bringup-implementation-plan.md precedent), plus the tooling needed to act on it. No .rst is changed — the manual itself is untouched.

⚠️ Agents working WP1–WP4: do not branch from main while this PR is open. See Branching below.

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.
  • Volume (Settings → User Pref) shipped in 2.6.1 with zero documentation, in neither user_guide.rst nor menu_map.rst.

Decisions (settled — recorded in §2)

  1. rev4 becomes the default voice; v3/v2.5 differences go in .. note:: blocks.
  2. "rev4" alongside "v3"/"v2.5", no retro-rename of the older names.
  3. 176 px is the default for new screenshots. No mass replacement of the 118 existing 256×256 shots; a page's shots get re-taken when that page is edited anyway.
  4. rev4 DIY build path out of scope, with no scoping notebuild_guide.rst and BOM.rst untouched. 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 / -fb flags, the docs skill's rev4 rules plus the corrected product knowledge base, and the plan file itself. A WP branch cut from main looks perfectly healthy and quietly produces 128 px screenshots and rev3-default prose.

  • Preferred: merge this PR first, then WP agents branch from main normally. It is a plan doc, a skill/tooling change and no product code, so it is cheap to land.
  • While it is open: git reset --hard origin/worktree-rev4-docs-plan after EnterWorktree (the harness bases worktrees on origin/HEAD, which can resolve to release in this clone), and open WP PRs with --base worktree-rev4-docs-plan. GitHub retargets them to main on merge.
  • Do not wait on ADR 0020: battery profiling complete — refit derived, deliberately not adopted #573. Nothing in WP1–WP4 depends on it.

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 to headless_176 — rev4's panel without asking.
  • pf_remote.py launch -fb/--fakebattery — the rev4 battery monitor, needed for any title-bar shot (plain -fh emulates rev3, so the icon is simply absent).
  • Both skills updated; the docs skill's product-knowledge-base.md rewritten — 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/screen at 176×176 with the battery icon present, converted through screenshot_to_doc.py to 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

  • rev4's directional input is a single 5-way joystick (centre press = SQUARE), not separate arrow buttons. The code and docs/ax/bringup/CONTEXT.md describe it in switch language against a glossary defining switch as "one physical pushbutton" — flagged as a /grill-with-docs candidate. It matters for bring-up: a builder with one dead direction is reflowing one component, not hunting five switches.
  • No rev4 case STLs, gerbers or KiCad project are tracked, so a rev4 build guide couldn't be written from the repo even if it were in scope.

Verification

sphinx-build -n reports zero warnings on this branch, matching the origin/main baseline — so any warning a later agent sees is one they introduced. That build needs a throwaway venv; the project venv lacks sphinxcontrib-mermaid, which menu_map.rst requires. Both facts are recorded in §5.

🤖 Generated with Claude Code

brickbots and others added 3 commits August 6, 2026 15:44
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>
brickbots and others added 2 commits August 6, 2026 16:40
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
brickbots marked this pull request as ready for review August 6, 2026 23:52
@brickbots
brickbots merged commit 511b599 into main Aug 6, 2026
4 checks passed
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant