Beta#102
Merged
Merged
Conversation
…oc-52alwc SensorEgg wireless EGT POC: passive observer, Temp1/Junction1 DOVEX columns, Temp1 race page
…poc-52alwc Claude/sensoregg wireless poc 52alwc
Coverage — host-testable units📂 Overall coverage
📄 File coverage
|
…lf-heal First bench soak showed the egg flapping - ~1 s of readings then 1-30 s of NA - with everything 'connected'. Three scanner-side causes, verified against the Bluefruit source: 1. Bluefruit pauses scanning from report acceptance until the DEFERRED rx callback resumes it, and our only inline filter was RSSI - so every ambient desk packet above -90 dBm (phone/PC/X4) took the slow accepted path just to be magic-rejected in our callback, collapsing scan duty in bursts. Scanner.filterMSD(0xFFFF) now rejects+resumes foreign packets inline in Bluefruit's event handler. 2. The spec's equal 100 ms adv / 100 ms scan periods phase-lock; with a 40 ms window the egg could park in the 60 ms deaf zone for seconds (an egg reboot re-rolls the phase - which is why it 'fixed' it). Window widened to 60 ms; the egg side moves its adv interval off 100 ms in the companion commit. 3. A lost deferred rx callback halts the scanner silently and forever (resume is only called from the callback). SENSOREGG_LOOP now kicks stop+start after 30 s with no accepted packet - harmless when the egg is off, curative when the scanner wedged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Vk8qn6sc87B9wFy3S7siaf
…poc-52alwc Fix SensorEgg reception flapping: inline MSD filter, wider scan window, scanner self-heal
The Temp1 race page (big EGT + junction subtext) and the camera bench page's egg: soak readout now render in F, converted at display time via sensoregg_protocol::celsiusToFahrenheit() (pure unit, host-tested, NaN propagates so a stale/invalid probe still renders '---'). DOVEX logging is unchanged — Temp1/Junction1 stay Celsius — and a C/F display setting will follow in a later release. sensoregg_protocol.cpp joins the sim source list since display_pages.ino now links against it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013BCdGxqExj9ojEQgZj4f6G
…tained 5 s Field incident (2026-07-19): a failed pull start — and, reproduced, any engine kill before GPS acquired its time lock — left the device looking bricked: pinned to the RPM page, buttons dead, no WDT reset. The loop was healthy; the GPS-lock hold (which pins the UI while a session waits for a time lock to create its log file) latched on any tach pulse (pull-cord ignition blips included), had no engine-off release, and its only automatic session-enders were blocked: auto-idle's 3-minute grace, then full auto-idle suppression once the camera was recording. Cranking blips above the 500 RPM wake threshold had also started that camera recording. Fixes: - camera_fsm: record start now requires RPM >= kRecordRpmThreshold (1500) held continuously for kRecordStartDelayMs (5 s); any dip below restarts the clock. Wake and the 30 s stop keep the 500/300 band. Cranking can clear 500 but cannot sustain 1500. New host tests: cranking-band never records, threshold boundary, strict-dip clock restart. - updateGpsLockHold: the pin releases after 10 s of engine-off (session stays active and navigable; a restart re-latches). - displayPage_tachometer: shows "WAITING GPS LOCK.." while pinned so the hold never reads as a crash. - checkAutoIdle: may end a still-fileless session even while the camera records — there is no log to protect yet, and this was the only session-ender left when the hold was active. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013BCdGxqExj9ojEQgZj4f6G
…ork-ssd2ft Fahrenheit temp display + pull-start/engine-kill lockup fix + 1500 RPM record gate
…dings Field incident (2026-07-19, ~3-4 h runtime): the egg's application hung but its radio kept rebroadcasting the last advertising payload at 10 Hz (BLE stacks beacon the set buffer autonomously, no app involvement), so the logger reported rf:OK with a value that never updated — a flat line indistinguishable from real data, violating the module's own staleness principle. The payload's free-running uint16 sequence counter is the application's only sign of life. New host-tested sensoregg_protocol::SeqMonitor stamps every accepted packet and marks the reading dead when the sequence has not changed within kStalenessMs despite packets arriving (wrap-safe; 65535->0 counts as a change; duplicate receptions of one advertising event do not false-trigger). While hung: sensoreggEgtC/JunctionC return NaN (DOVEX logs nan, display shows ---), tcFault is suppressed (frozen flag = stale information), and the Temp1 page rf: field shows HUNG instead of OK so the fix is a visible power-cycle prompt, not a silent dropout. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013BCdGxqExj9ojEQgZj4f6G
…ork-ssd2ft Detect zombie SensorEgg: frozen sequence counter → rf:HUNG + NaN readings
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.
No description provided.