Repository navigation
docs: the v2.11.1 release gate, on both boards, and the bench as it stands - #259
Merged
Merged
Conversation
…tands The release gate of AGENTS.md §2 on the images release-ota.yml signed on main a8b7de5 (run 37259233322). The Pico W and the over-the-air steps of the Pico 2 W ran on 2026-10-05; the Pico 2 W's web suite and soak ran on 2026-10-12, after a week off the bench: - web suite on the candidate, as its admin: 67 passed, 0 failed, 1 skipped; - soak, 30 min: 115 samples and 4 reads whose chunked framing broke (#189), 0 restarts, the five sensors in every sample, free heap 299,876 to 299,908 B. The PicoHand's RESET wire stayed on RUN, the maintainer's choice against AGENTS.md §1, with the serial recorded: no line, no drop. The probe on GP0 had been swapped meanwhile; slot 0 adopted it first (sensor_accept), and it read 0.1 s later. The four images rebuilt from this tree are byte for byte the builds of a8b7de5 of 2026-10-05 and the image part of the CI's signed .bin; the Pico 2 W's partition table is v2.11.0's. - CHANGELOG x2: the bench section for both boards, the way back to v2.11.0 marked as checked on the Pico W, the release date moved to 2026-10-12, and two sensor findings under Known, both seen on the bench: adopting a probe or sensor_wipe does not start the slot's history anew (nothing reads provisionEpoch, and slot 0's readings of 2026-10-04 now come back under the new probe's id), and a probe that is not the slot's can have its first reading after a boot recorded, before the ROM check of every fifth read. - VERIFICATION x3: the two gate rows. - AGENTS.md §1: the bench as of 2026-10-12 (the Pico 2 W is the target, the hand runs on the Pico W that was the target, the old hand is still on the PC's USB), the ten scripts that still take the hand for the target, and "not only in a soak" for the RESET wire. - README x3, manual chapter 1 and appendix C: the release date; docs/MANUAL.pt-BR.html regenerated, three lines changed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013C6NHM2fJi3M7EMr47WyQ3
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.
The release gate of
AGENTS.md§2 for v2.11.1, recorded in the changelogs and the three verification logs, andAGENTS.md§1 brought up to the bench as it stands since today. The gate ran on the imagesrelease-ota.ymlsigned onmaina8b7de5 (run 37259233322, approved by the maintainer): the Pico W and the over-the-air steps of the Pico 2 W on 2026-10-05, the Pico 2 W's soak and web suite on 2026-10-12, after the board had been off the bench for a week.The candidate
Each of the four images verifies against
keys/:v=0, release signer serial 1, security version 1. Its image part is byte for byte the local build of a8b7de5. The Pico 2 W's is itsfirmware_ota.bin, flagged for trial. Rebuilt today from this branch, the four images came out byte for byte the same, and the Pico 2 W's partition table is v2.11.0's..bine05f93910ff1b340815fdba1936503116aa3559d86c45db2releasetwo)1daeff0caa0701b6The factory
.uf2, made from the artifact bytools/release_manifest.pyas the publish job will make it: 1,995,776 B, sha256f0de8055455821b8.The Pico 2 W
The bench board, an RP2350 A2, started from the published v2.11.0 in slot B, which trusts the release root alone (configuration CRC
AC385271, 555 values).v=9); an image signed by the bench key (v=12,SIG_SCOPE).uf2dragged onto BOOTSEL by the maintainerThe soak of 2026-10-05 did not count. It was cut at 6.3 min, when the board left the bench, and every sample had the GP0 probe in error: the probe on GP0 had been swapped for the Pico W's while the boards changed places, and the slot sat in the mismatch quarantine (
Hardware mismatch, by design: a slot reads only the ROM it was paired with). Today the maintainer chose to adopt the probe that is there:POST /api/action?op=sensor_accept&slot=0, the page's Adopt the probe wired here. It answered{"ok":true,"epoch_moved":true}, and the next/api/status, 0.1 s later, read the probe (23.56 °C): the reload of #255 on the RP2350. Slot 0 sits on GP0, so this does not exercise the other half of that fix, a slot on a GPIO of another number. In/api/configonly the slot'shwidchanged (STM0009→LIB_SENS: this board has no calibration curve for that probe).The RESET wire stayed on the RUN pin for this soak, against
AGENTS.md§1; the maintainer kept it on. The serial of the board was recorded throughout. No restart came, and the serial printed nothing in the 30 minutes.The Pico W
The bench board with the touch display and five sensors, from the published v2.11.0 with the bench's configuration, a throwaway admin account and the web on :8080. That start is the v2.11.0 gate's own, written by USB and read back, then updated over the air to v2.11.0 with its
.bkpput back. The board's flash was dumped first (two equal reads) and written back at the end, byte for byte.v=0in 35.6 s/api/config+ users, network, alarms, sensors.bkpback, dumpsystem.binidentical0xee000)0xf8000)v=0from the candidate)The four files that differ are the log, its previous file and two of the history's, which move while the device runs. The Air's
air.binwent with the update (idle777 → 300) and came back with the.bkp(777).On the release only:
v=8), the Air's signed image (v=7), the Pico 2 W's signed update (v=6, which the Files page now explains) and the candidate with one byte changed (v=9).v=0both ways (35.6 s each), 567 values equal; the telemetry queue rebuilt at each boot from the other version's cursor.SYS_BOOT, noWATCHDOG_REBOOTline). One came 33.8 s into an update from the board's arrival state on v2.10.0: it came back on v2.10.0 with its configuration identical byte for byte, as the cut step expects, and the same update passed on the next try.AGENTS.md§1 now says this is not only a soak's problem.The bench changed today
The maintainer moved the PicoHand from its Pico to a Pico W, the board that was the target until 2026-10-05; the old Pico went to another project and is still on this PC's USB. The Pico 2 W is now the target, with the five sensors and the TFT.
AGENTS.md§1 says so, with the three boards' USB ids and serials asudevreports them:2e8a:f00aE6642815E34C18242e8a:f00f6A73539D612923CA2e8a:000aE660C062131E3E27Ten scripts in
tools/still look for the target as a Pico W, byE6642815E34C1824or by the globusb-Raspberry_Pi_Pico_W_*, and both now land on the hand: a 1200 bps touch there puts the hand in BOOTSEL. Three (air_test_suite.py,bt_auth_test.py,rig_validate_history_clock.py) look for the hand by the old hand's serial, which is still plugged in. SettingSIMUT_TARGET_SERIALandPICO_HAND_SERIALdoes not help: they build theby-idpath with the old model names.AGENTS.md§1 says not to run them until they learn the new bench; that change is code and follows the release. The hand answeredPONG,VERIFYgave OK on both lines, and its firmware is the one intools/PicoHand/.Found on the way
git diff --stat v2.11.0 a8b7de5 -- src/lists the panel, the sensors, the access point, the PIN keypad and the version.sensor_wipe, does not start the slot's history anew. Both stampprovisionEpoch, and nothing insrc/or the web UI reads it (grep: five writers, the config table, no reader). The history keys every record of a slot by the slot's currenthwId(WebManager_History.cpp:593). On the bench, after today's adoption, slot 0's readings of 2026-10-04, taken by the board's own probe asSTM0009, come back from/api/history_multiastLIB_SENS. Chapter 26 of the manual sayssensor_wipe"grava a hora atual como início do histórico do slot", anddocs/API_POST.mdsays it erases the slot: neither is what happens. Under Known.totalReadings % 5 == 0, after the increment: from the fifth read on. On the bench the board booted at 17:25:56.8 with the swapped probe on GP0; the history's record of 17:26:17 holds 23.38 °C for slot 0, and the records of 17:27 to 17:34 hold nothing for it, the quarantine. Under Known.hwId, and a slot is matched by its GPIO (AppManager_HistoryAlarm.cpp:383): the records went on from 17:35 with the new probe, in the same day file.All three are older than this release, and none of them moves the gate: a fix needs a candidate of its own.
Docs
CHANGELOG.mdandCHANGELOG.pt-BR.md: the v2.11.1 The bench / A bancada section for both boards, the way back to v2.11.0 over the air marked as checked on the Pico W, two sensor findings under Known, and the release date moved to 2026-10-12, the day it is published.docs/VERIFICATION*.md×3: the two gate rows.AGENTS.md§1: the bench as it stands, the scripts that do not know it yet, and not only in a soak for the RESET wire.README*.md×3,docs/_manual/cap01-o-simut.md,docs/_manual/ap-c-versoes.md: the release date;docs/MANUAL.pt-BR.htmlregenerated bytools/build_manual.py, which changed only those three dates.Checked here:
check_angulo.py,check_readme_numbers.py,check_flash_budget.py --table,gen_logcodes.py --check,check_authz.py,check_license.py,gen_notices.py --checkandbuild_manual.py --check, all clean.🤖 Generated with Claude Code