docs(0011): record the wall-clocked hardware run — the board question… - #159
Merged
Merged
Conversation
… is answered 9134 Hz, 96 us mean, 37 ms worst iteration, SLP 12.0, with a GPS lock, logging and the camera recording. The instrument validates itself: 9134 Hz x 96 us = 87.7% of the second inside loop(), and SLP — computed by a different route — reads 12.0%. All fourteen slots sum to ~99.8. SLP 12% also settles what the previous build could not distinguish: the CPU is not sleeping through the second, so the loop genuinely runs at ~9 kHz and the old pegged rate was the display clamp rather than the timebase bug. There was no way to know that until the window was wall-clocked. Headroom, against the binding constraint (one iteration per 40 ms PVT frame): ~420x on the mean, 43x on the worst iteration against the 4 KB GPS ring, 108x against the watchdog. Nothing here justifies an nRF5340 on throughput, and SLP 12% caps what leaving the Arduino core could reclaim. Also records where the 88% goes — it is polling, not work. GPS is called 9134 times a second to service a 25 Hz stream; DSP renders 3 times and early-returns ~9000; BTN is six digitalReads per iteration with nobody touching a button. Rate-limiting the polls would reclaim most of it without changing silicon. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CqENxo91S1VL3sM9PTWMf1
Coverage — host-testable units📂 Overall coverage
📄 File coverage
|
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.
… is answered
9134 Hz, 96 us mean, 37 ms worst iteration, SLP 12.0, with a GPS lock, logging and the camera recording.
The instrument validates itself: 9134 Hz x 96 us = 87.7% of the second inside loop(), and SLP — computed by a different route — reads 12.0%. All fourteen slots sum to ~99.8.
SLP 12% also settles what the previous build could not distinguish: the CPU is not sleeping through the second, so the loop genuinely runs at ~9 kHz and the old pegged rate was the display clamp rather than the timebase bug. There was no way to know that until the window was wall-clocked.
Headroom, against the binding constraint (one iteration per 40 ms PVT frame): ~420x on the mean, 43x on the worst iteration against the 4 KB GPS ring, 108x against the watchdog. Nothing here justifies an nRF5340 on throughput, and SLP 12% caps what leaving the Arduino core could reclaim.
Also records where the 88% goes — it is polling, not work. GPS is called 9134 times a second to service a 25 Hz stream; DSP renders 3 times and early-returns ~9000; BTN is six digitalReads per iteration with nobody touching a button. Rate-limiting the polls would reclaim most of it without changing silicon.
Claude-Session: https://claude.ai/code/session_01CqENxo91S1VL3sM9PTWMf1
Summary
Type of change
How it was verified
ctest --test-dir tests/build)clang-tidycleanChecklist
CHANGELOG.mdupdated under[Unreleased](if user-visible)ARCHITECTURE.md/CLAUDE.mdupdated (if a module or interface changed)tests/Related issues