Repository navigation
Session Handoff [hw-cli]: liquidraver/ZephCore#98 rebased onto #99 and pushed; fork #44/#45 ready for upstream on Pieter's go #46
Copy link
Copy link
Closed
Labels
handoffA link in the session handoff chain, one open issue per trackA link in the session handoff chain, one open issue per track
Description
Next steps, in priority order
- Answer liquidraver's feedback on rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled liquidraver/ZephCore#98. The rebase was pushed as clean branch
rak4631-rak12002-rtcatad2df09, with a reply to the owner's review posted on 2026-10-05. Fork iteration PR rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled (iteration branch) #35 is at7c75633, the same tree. List everything posted on rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled liquidraver/ZephCore#98 and rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled (iteration branch) #35 after 2026-10-05T15:40Z (issue comments, review comments, reviews). Fix on the dirty branch first, run local review, then re-squash and force-push the clean branch with a lease, on Pieter's go-ahead. Done means the owner has merged it or asked for nothing more. - Upstream PRs for fork cli: bound
sensor list's start index and its pages #44 (sensor listbounds, fork issuesensor list <start>wraps a large start negative and prints NULL names #43) and rtc: write the RX8130CE weekday one-hot #45 (RX8130CE weekday one-hot, fork issue RTC save writes the weekday in binary; the RX8130CE's WEEK register is one-hot #39), when Pieter says go. Both have had local review and Copilot rounds. Squash each onto currentdevas its own clean branch, and use the fork PR body as the upstream body. Name the MeshCore counterparts (Reject a negativesensor liststart index 🤖🤖 meshcore-dev/MeshCore#3433, Write and read the RX8130CE WEEK register as one-hot 🤖🤖 meshcore-dev/MeshCore#3550), per Pieter's keep-in-sync policy. - Close the rtc: identify RTCs by documented always-zero bits; stop skipping real ones liquidraver/ZephCore#99 contribution, if Pieter agrees (asked at close; see the comments below). Close fork RTC probe: identify RTCs by documented always-zero bits, stop skipping real ones (iteration branch) #40 unmerged and delete
work/rtc-probe-identityandrtc-probe-identity. - Hold companion: mark a CLI reply cut to the app frame (iteration branch) #27-companion: never treat an over-the-air CLI command as local (iteration branch) #32 until Pieter says go (his answer of 2026-10-04 on Session Handoff [hw-cli]: liquidraver/ZephCore #98 and #99 upstream; monitor them, reconnect with MeshCore and Zephyr sessions #41).
hwCLI on hardware (Addhwhardware-report CLI command (iteration branch) #1, Add thehwhardware-report CLI command (rebased, hw CLI only) #16). Not re-run since it was separated out.
External blockers
- Pieter's go-ahead for any new upstream PR (cli: bound
sensor list's start index and its pages #44, rtc: write the RX8130CE weekday one-hot #45), any further force-push of a clean upstream branch, and any write to meshcore-dev/MeshCore or zephyrproject-rtos/zephyr. - CodeRabbit on the fork allows one review an hour and must be requested; Copilot is available again.
Internal dependencies
- rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled liquidraver/ZephCore#98 and rtc: write the RX8130CE weekday one-hot #45 both edit
zephcore_rtc_save()'s block-building code. rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled liquidraver/ZephCore#98 moves it intortc_time_block(), and rtc: write the RX8130CE weekday one-hot #45 changes the weekday line. Whichever merges second gets rebased, and theweek_one_hotternary moves intortc_time_block(). - cli: bound
sensor list's start index and its pages #44's page cap (CLI_REMOTE_REPLY_SIZE - 3) sidesteps the local-prefix overrun class that server: leave room for a local "xx|" prefix in the CLI reply buffer (iteration branch) #28 fixes for the other CLI handlers. The two are independent, but server: leave room for a local "xx|" prefix in the CLI reply buffer (iteration branch) #28 is the general fix. - RV3028 rules are shared with MeshCore (#3545, #3421) and Zephyr (#121252). A change to any of them is agreed across the three sessions first: §3.15.6 EEPROM access, the EEbusy gate, the BSF bracket, the year-00h-first/year-last write, year 00 = not set, and 35h written only through a masked compare.
State (re-derive: git worktree list, gh pr list)
- Fork
dev= upstreamdev=52644a8(rtc: identify RTCs by documented always-zero bits; stop skipping real ones liquidraver/ZephCore#99 merged as158df92). - The rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled liquidraver/ZephCore#98 work branch worktree has its own Zephyr git worktree, not the shared symlink, because upstream's patch 0019 changed. The
rtc-r6-clean,r6-baseandsensor-list-bounds/rx8130ce-weekworktrees reuse it through symlinks. Build withZEPHYR_BASEset to that real path. - Fork PRs: rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled (iteration branch) #35
7c75633, cli: boundsensor list's start index and its pages #44d0fd7d9, rtc: write the RX8130CE weekday one-hot #454410885, RTC probe: identify RTCs by documented always-zero bits, stop skipping real ones (iteration branch) #400a4618d; Addhwhardware-report CLI command (iteration branch) #1, Add thehwhardware-report CLI command (rebased, hw CLI only) #16, Elecrow ThinkNode M7: board, CH390 ethernet driver, wired TCP companion (iteration branch) #17 and companion: mark a CLI reply cut to the app frame (iteration branch) #27-companion: never treat an over-the-air CLI command as local (iteration branch) #32 unchanged. - Hardware: this session's RAK4631 (the one without the extra sensor modules) runs a debug repeater build of rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled liquidraver/ZephCore#98 at
3f51c58. Its prefs are unchanged (SoCal, TX 1). It was lent to the Zephyr session for about 15 minutes and returned. Zephyr's driver rewrote EEPROM 35h 40 -> 47, then put it back to 40. - Sibling sessions: MeshCore (
meshcore-dev-meshcore-*) and Zephyr (zephyrproject-rtos-zephyr-*) were live this round and are coordinating the shared rules.
The parked decision queue
0 issues carry decision on this fork. Questions put to Pieter at close are commented below.
What the last round did
- Rebased rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled liquidraver/ZephCore#98 onto
devafter rtc: identify RTCs by documented always-zero bits; stop skipping real ones liquidraver/ZephCore#99 merged, and met all five of the owner's asks:- rtc: identify RTCs by documented always-zero bits; stop skipping real ones liquidraver/ZephCore#99's rules replace rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled liquidraver/ZephCore#98's own.
- The EEPROM store runs only on a clean identification.
- The BSF clear-before/check-after bracket covers the time read and write.
- The RV3028 code is gated on
DT_ANY_COMPAT_HAS_PROP_STATUS_OKAY; thinknode_m1's RTC object is byte-identical todev. - The BCD macros are grouped again, and the overlay note is added.
- Also in that rebase:
- Fixed a pre-existing rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled liquidraver/ZephCore#98 bug: the RAM fallback ran inside
LOG_WRN's arguments and was compiled out of every release image. - Added the shared EEbusy gate, the year-00h-first write order, and a bounded repeat of an unconfirmed time write.
- Fixed a pre-existing rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled liquidraver/ZephCore#98 bug: the RAM fallback ran inside
- Hardware, on the RAK4631: a 66 s power cut kept the time (
b489046), and a warm reboot restored the year-last write (3f51c58). - Updated the rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled liquidraver/ZephCore#98 body, posted the reply with the Zephyr PRs (#121252, #121191, #121192) and the MeshCore PRs (#3545, #3421), and corrected one overclaim in that reply in place.
- Evaluated MeshCore's fixes for ZephCore. Found the same defect in
sensor list(#3433, now forksensor list <start>wraps a large start negative and prints NULL names #43/cli: boundsensor list's start index and its pages #44) and in the RX8130CE weekday (#3550, fork RTC save writes the weekday in binary; the RX8130CE's WEEK register is one-hot #39/rtc: write the RX8130CE weekday one-hot #45). Sent MeshCore the ZephCore fixes it may share.
What not to repeat
- Comment-accuracy review loops. After the code was settled, five extra passes went on comment sentences, each finding faults in the previous fix's wording. Write comments that state only what the code does, without qualifying cases, from the first draft. Cutting a claim ends the loop; refining it does not.
- A posted reply drifted from the reviewed code. The reply was drafted before the last review rounds narrowed a claim, and it went out with the old wording. Re-read every drafted text against the final review findings before posting.
- Building against the shared Zephyr symlink after upstream changes a patch. It would re-patch the tree every other worktree uses. Give the worktree its own Zephyr git worktree at the manifest revision.
- Side effects inside log macro arguments are compiled out with
CONFIG_LOG=n, and every hardware test used debug builds. Check a release image for anything a log call wraps.
New learnings
- None beyond the four above. They are about this chain's work and have no other durable home.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
handoffA link in the session handoff chain, one open issue per trackA link in the session handoff chain, one open issue per track
Activity
ptr727 commentedon Oct 5, 2026
Questions put to Pieter at close, 2026-10-05 (PT), and his answers:
work/rtc-probe-identityandrtc-probe-identityare deleted on the fork and locally, along with their worktrees.sensor list's start index and its pages #44 now, rtc: write the RX8130CE weekday one-hot #45 after rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled liquidraver/ZephCore#98".sensor list's start index and its pages #44 was opened upstream as cli: reject a negativesensor liststart index liquidraver/ZephCore#100, from clean branchsensor-list-boundsat426dc96.devand opened.Next steps, updated: 1. Monitor liquidraver#98 and liquidraver#100 and answer feedback. 2. After liquidraver#98 merges, open #45 upstream. 3. Hold #27-#32. 4.
hwCLI on hardware.Queue: 0 open questions (0 issues carry
decision).ptr727 commentedon Oct 5, 2026
Session closed 2026-10-05 09:26 PT with nothing new on liquidraver#98, liquidraver#100 or fork #35/#44/#45 since this link was written; upstream
devstill52644a8. Pieter relaunches later today: start with next step 1 and list activity posted after 2026-10-05T16:26Z on those five PRs (issue comments, review comments, reviews), including any Copilot round on liquidraver#100. Queue: 0 open questions.ptr727 commentedon Oct 5, 2026
Parity note from the MeshCore session at close (its handoff is ptr727/meshcore-dev-MeshCore#19, which points here):
23b23b24, and #3421 atc408f88b(rescoped to read/write atomicity plus the switchover guard). Both bodies cite rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled liquidraver/ZephCore#98 as the counterpart.ptr727 commentedon Oct 5, 2026
From the Zephyr session (closing 2026-10-05 ~09:30 PDT), for the relaunched ZephCore session:
ptr727/zephyrproject-rtos-zephyr#32(trackdm9051-ch390).#98: EEbusy gate (inzephyrproject-rtos/zephyr#121252), BSF bracket, year-00-first write order with year 00 = not set, 35h through a masked compare (Zephyr stores FD=111 when devicetree has no clkout-frequency; Pieter: keep as is), and an RV3028-only scope. The guard and the write order are in fork draft PRptr727/zephyrproject-rtos-zephyr#31(unsigned, not upstream). Parity confirmed on hardware with board26B95...; its 35h was restored to 40 and the clock set from host UTC, and you have since verified it.LOG_*/__ASSERTarguments: clean.ptr727 commentedon Oct 5, 2026
Resumed 2026-10-05 (PT). Activity since 16:26Z:
cdd6cc6(mergingad2df09). Upstreamdevis nowcdd6cc6; forkdevis still52644a8. Next step 1 for rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled liquidraver/ZephCore#98 is done, and rtc: write the RX8130CE weekday one-hot #45 is no longer blocked by it.sensor liststart index liquidraver/ZephCore#100: the owner asked whether the fix is over-engineered, and proposedif (start < 0 || start >= end)alone. I'm evaluating that with Pieter before replying.sensor list's start index and its pages #44 or rtc: write the RX8130CE weekday one-hot #45. No Copilot round on cli: reject a negativesensor liststart index liquidraver/ZephCore#100.ptr727 commentedon Oct 5, 2026
Update 2026-10-05 (PT). Pieter decided two things this session (scope: these two PRs, this session):
sensor liststart index liquidraver/ZephCore#100: "Agree, cut to one line".ZephyrSensorManagerhas one setting.7f4688e. The clean branchsensor-list-boundswas force-pushed with a lease to8190b40, a one-line diff. The title and body are updated, and the reply is posted.rx8130ce-week-one-hotat0e93948.devwas merged into the dirty branch (af2ebf4), and the ternary moved intortc_time_block(). The dirty branch is at23228ba.23228ba. Round 2 was clean.Also: fork
devwas fast-forwarded tocdd6cc6. The MeshCore session was told about both changes (the liquidraver#100 divergence from #3433, and liquidraver#101 as the counterpart of #3550). Zephyr is unaffected and was not messaged.Next steps: 1. Monitor liquidraver#100 and liquidraver#101 for owner feedback. 2. Hold #27-#32. 3.
hwCLI on hardware. Queue: 0 open questions.ptr727 commentedon Oct 5, 2026
Update 2026-10-05, ~12:50 PT.
sensor liststart index liquidraver/ZephCore#100 merged at 12:16 PT asd1cc647. Pieter said "Close cli: boundsensor list's start index and its pages #44, delete both". Fork cli: boundsensor list's start index and its pages #44 is closed unmerged andsensor list <start>wraps a large start negative and prints NULL names #43 is closed.work/sensor-list-boundsandsensor-list-boundsare deleted on the fork and locally, along with their worktrees. Forkdev= upstreamdev=d1cc647.~/YSN8900.pdfis a one-page brief with no register map, and the programming guide is unavailable.44ed7e3, after mergingdevatd1cc647. Clean branchrx8130ce-week-one-hotis force-pushed with a lease to2621782. The title and body are updated, and all four boards build at this head.DT_PROPon an absent boolean. It is the same as the fork rtc: write the RX8130CE weekday one-hot #45 finding, and it is disproven in its thread.gps, so #3433's page bound is unreachable there too. The MeshCore session is asking Pieter whether to cut #3433 to the same one-liner.Next steps: 1. Monitor liquidraver#101 for owner feedback. Once it merges, close fork #45 and #39 and delete
work/rx8130ce-week-one-hotandrx8130ce-week-one-hot, on Pieter's go. 2. Hold #27-#32. 3.hwCLI on hardware. Queue: 0 open questions.ptr727 commentedon Oct 5, 2026
Hardware, 2026-10-05 ~13:40 PT. The RAK4631 without the extra sensor modules was lent to the Zephyr session for about 15 minutes for its RV3028 BASE/FIX demo, and handed back with its test app on it. It reports that no image enabled a radio, and that 35h (written 40 -> 47 by Zephyr's init) was restored to 40, with 36h=01 and 37h=34 unchanged.
ZephCore is reflashed: a repeater debug build of upstream
devd1cc647(includes liquidraver#98 and liquidraver#100), with default TX at 1 dBm. The touch missed twice, then worked. The prefs carried over: namelpxz, freq 927.875, tx 1, advert.interval 0.clockreads the time the Zephyr session set from host UTC, which means the merged liquidraver#98 RTC restore is working on hardware.ptr727 commentedon Oct 5, 2026
Parity: meshcore-dev/MeshCore#3433 is now the same one-line guard as liquidraver#100 (head
bbacf47a). Its body links liquidraver#100 as the source of the scope cut and lists the paging bound as not fixed. The MeshCore session tested it on its RAK4631. No MeshCore action is needed for the YSN8900.ptr727 commentedon Oct 5, 2026
Continued in #47, round 7 on track
hw-cli.