Repository navigation
Session Handoff [rv3028-eeprom]: #3433 cut to a one-liner; Copilot triage answered on #3545 and #3421 #20
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
- Read Copilot's round on #3433 at
bbacf47a, once Pieter has re-requested it in the web UI. Done when every headline point and finding is judged against the code and answered. Read the review body, not juststatus: headline-only points open no thread. - Watch for replies to the 2026-10-05 triage comments. These are #3545 and #3421. The Read and write the RV3028 clock atomically, and reject switchover-garbled transfers 🤖🤖 meshcore-dev/MeshCore#3421 reply asks Copilot or a maintainer to name the "BSF handling" path it meant. If someone names a real path, judge it, and tell the ZephCore and Zephyr sessions before changing anything (the parity rule).
- Sweep every upstream PR and issue authored by ptr727. The commands are in link Session Handoff [rv3028-eeprom]: All upstream PRs answered; watch for maintainer review #18, step 1. Anything with
updatedAtafter 2026-10-05T21:00Z is new. Watch #3434 for a maintainer verdict. - Keep MeshCore, ZephCore and Zephyr in sync (project memory
cross-firmware-parity-policy). ZephCore's handoff is ptr727/liquidraver-ZephCore#46. - The two new MeshCore bugs are still ON HOLD until the RTC work lands. These are the CLI reply overrun and ClientACL
out_path_len; details are in link Session Handoff [rv3028-eeprom]: Two RTC PRs re-pushed with cross-firmware fixes; triage Copilot headlines #19, step 4. Don't start them before then. - If upstream
devmoves, or a PR merges or is declined: follow link Session Handoff [rv3028-eeprom]: Three MeshCore PRs upstream; watch and respond to review #17, steps 3 and 4. Adopt an RTC only if its time registers read like that chip 🤖🤖 meshcore-dev/MeshCore#3544, Store RV3028 backup switchover and trickle charger config in EEPROM 🤖🤖 meshcore-dev/MeshCore#3545 and Read and write the RV3028 clock atomically, and reject switchover-garbled transfers 🤖🤖 meshcore-dev/MeshCore#3421 all touchAutoDiscoverRTCClock.cpp. - Cleanup, once Pieter is done with hardware: the
-hw-3545,-hw-3421,local/rv3028-probe-*andlocal/rtc-probe-testworktrees, and the board's final firmware. Ask Pieter about each.
External blockers
- Copilot on Reject a negative
sensor liststart index 🤖🤖 meshcore-dev/MeshCore#3433 needs Pieter to re-request it in the web UI. It wasn't requested by the 2026-10-05 force-push. - MeshCore maintainers: review and merge of Adopt an RTC only if its time registers read like that chip 🤖🤖 meshcore-dev/MeshCore#3544, Store RV3028 backup switchover and trickle charger config in EEPROM 🤖🤖 meshcore-dev/MeshCore#3545, Write and read the RX8130CE WEEK register as one-hot 🤖🤖 meshcore-dev/MeshCore#3550, Read and write the RV3028 clock atomically, and reject switchover-garbled transfers 🤖🤖 meshcore-dev/MeshCore#3421, Do not feed an invalid GPS time into the RTC 🤖🤖 meshcore-dev/MeshCore#3422, Make GPS status reporting say what was actually checked 🤖🤖 meshcore-dev/MeshCore#3423, Treat the GPS enable pin as a pin number, not a truth value 🤖🤖 meshcore-dev/MeshCore#3425 (draft), Reject a negative
sensor liststart index 🤖🤖 meshcore-dev/MeshCore#3433 and PassTELEM_RAK12500_ADDRESSto the RAK12500 I2C probe 🤖🤖 meshcore-dev/MeshCore#3434. - Zephyr: its BSF guard (local
67fda87) waits on Pieter in that session. zephyrproject-rtos/zephyr#121252 waits on maintainer approval of its CI workflows.
Internal dependencies
- Step 1 waits on Pieter's re-request. Steps 2 and 3 can run at any time.
- Step 5 waits for the RTC PRs (Adopt an RTC only if its time registers read like that chip 🤖🤖 meshcore-dev/MeshCore#3544, Store RV3028 backup switchover and trickle charger config in EEPROM 🤖🤖 meshcore-dev/MeshCore#3545, Read and write the RV3028 clock atomically, and reject switchover-garbled transfers 🤖🤖 meshcore-dev/MeshCore#3421) to land, at Pieter's decision. The CLI overrun fix touches
CommonCLI.cppbounds next tosensor list, so check Reject a negativesensor liststart index 🤖🤖 meshcore-dev/MeshCore#3433 first, if it has merged by then.
State
| Upstream PR | Fix branch @ head (work branch @ head) | Copilot on head |
|---|---|---|
| #3544 RTC identity | fix/rtc-probe-identity @ 9d0d5e31 (c36cb9ee) |
approval recommended |
| #3545 RV3028 EEPROM | fix/rv3028-eeprom-config @ 23b23b24 (e74c5c60) |
needs a closer look, findings none, answered |
| #3550 RX8130CE weekday | fix/rx8130ce-week-onehot @ 8c9c9772 (4cdd5d71) |
approval recommended |
| #3421 RV3028 time read/write | fix/rv3028-atomic-read @ c408f88b (65907457) |
needs a closer look, findings none, answered |
#3433 sensor list |
fix/sensor-list-paging @ bbacf47a (ec05125f, fork PR #8) |
not yet on head (step 1) |
- Reject a negative
sensor liststart index 🤖🤖 meshcore-dev/MeshCore#3433 was cut to one line at Pieter's go-ahead:if (start < 0 || start >= end). It matches liquidraver/ZephCore#100, which merged as d1cc647 after its owner called the larger fix over-engineered.- It has a new title, "Reject a negative
sensor liststart index". - Every MeshCore sensor manager exposes at most one setting, so the old paging bound guarded nothing reachable.
- The body keeps that bound under "Not fixed here".
- It has a new title, "Reject a negative
- ZephCore counterparts:
- #98 and Feature Request: Graph Traversal & Signal Quality Mapping for MeshCore Networks meshcore-dev/MeshCore#99 merged.
- Added Support for the LilyGo TBeam v1.1 and v1.2 with the SX1276 meshcore-dev/MeshCore#100 merged.
- RX8130CE weekday is upstream as liquidraver/ZephCore#101 (0e93948). It also sets the meshtracker_x1 YSN8900 one-hot. MeshCore never drives that chip, because its meshtracker_x1 uses
VolatileRTCClock.
- Upstream
devis still3e3150c8, and the forkdevmirror matches it. - Hardware: board 1CAB is back on the Read and write the RV3028 clock atomically, and reject switchover-garbled transfers 🤖🤖 meshcore-dev/MeshCore#3421 test build (
c3f0566b, envRAK_4631_hwtest), and its RTC was on time at 20:43Z. ZephCore's board 26B9 is attached too, so leave it alone.
The parked decision queue
0 parked. The fork has no decision label and no open decision issue. Every question this round was answered in the session: post both triage replies, cut meshcore-dev#3433, hardware re-test, push.
What the last round did
- Triaged Copilot's 2026-10-05 headline points on Store RV3028 backup switchover and trickle charger config in EEPROM 🤖🤖 meshcore-dev/MeshCore#3545 (retry bypass, EERD) and Read and write the RV3028 clock atomically, and reject switchover-garbled transfers 🤖🤖 meshcore-dev/MeshCore#3421 (12-hour mode, BSF, year 2000). Each was checked against the code at the pushed head and against the RV-3028-C7 manual Rev. 1.4. None needs a code change, and both replies are posted.
- Checked ZephCore's two parity notes against MeshCore:
sensor listled to cutting Reject a negativesensor liststart index 🤖🤖 meshcore-dev/MeshCore#3433 down.- The YSN8900 note doesn't apply to MeshCore.
- Reject a negative
sensor liststart index 🤖🤖 meshcore-dev/MeshCore#3433:- merged
devinto the work branch; - committed the cut-down
ec05125f; - strict review found nothing, recorded;
- built on two envs;
- hardware-tested on 1CAB, 11 cases;
- re-squashed to
bbacf47a; - pushed with an explicit lease;
- updated the title and body, and checked that the links resolve.
- merged
What not to repeat
ENV_SKIP_GPS_DETECTdoes nothing on a RAK4631. RAK builds detect the GPS throughrakGPSInit()/gpsIsAwake(), which need live UART data. OnlyinitBasicGPS()reads the flag. On the bench board, three reboots and one forced build all gave zero settings. To test a one-setting path there, you need a GPS that is actually talking at boot.- Check the manual before citing it in a reply. Two claims in the first Read and write the RV3028 clock atomically, and reject switchover-garbled transfers 🤖🤖 meshcore-dev/MeshCore#3421 draft were wrong: the section holding 12-hour mode, and "writing 1 to a flag leaves it unchanged". The manual says only that a flag clears when 0 is written. Both were fixed before posting.
- "No caller can set year 2000" was too strong at first. The CLI and the companion refuse a backwards time, but GPS sets whatever the receiver reports. Check every
setCurrentTimecaller, GPS included, before making a claim like that. - Everything in the "What not to repeat" sections of links Session Handoff [rv3028-eeprom]: Two RTC PRs re-pushed with cross-firmware fixes; triage Copilot headlines #19, Session Handoff [rv3028-eeprom]: All upstream PRs answered; watch for maintainer review #18 and Session Handoff [rv3028-eeprom]: Three MeshCore PRs upstream; watch and respond to review #17 still holds.
New learnings
- The RAK serial-DFU bootloader enumerates as
usb-RAKWireless_WisBlock_RAK4631_<serial>-if00. Flashing by by-id path, with the touch on the app by-id, worked first time on all three flashes this round. The project memorymeshcore-hardware-ground-truthis updated.
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
Step 1 done (2026-10-05 21:20Z): Copilot's round on meshcore-dev#3433
bbacf47aran degraded during the Actions outage and raised one finding, thatstart < 0is meaningless ifstartis unsigned.startis declaredint(L321), so the finding is wrong. At Pieter's choice it was answered and resolved with no code change: meshcore-dev#3433 (comment). Thestatuscoverage warning (no file table, since the round on ccff85f was on a different file set) is the lite-effort shape, so re-requesting on the same head isn't the remedy. meshcore-dev#3433 now waits on maintainers.ptr727 commentedon Oct 5, 2026
Continued in #21, round 6 on track
rv3028-eeprom.