seed the radio's noise per node, and say what the chip binned - #17
Merged
Merged
Conversation
Three things the chip model needed a host for. A seed for its receiver noise, from MESHBENCH_NOISE_SEED. Firmware takes its entropy from the radio and derives its identity from it, so a chip that answers the same numbers to every node hands every node the same keypair - two nRF52 boards really did report one public key. Seeded rather than sampled so a run stays reproducible. A count of frames handed to a chip that was not listening and binned. It accuses this side rather than the firmware, and a node that hears everything and forwards nothing looks identical either way, so it is worth a line at exit. And a timestamp on each traced SPI transaction. The question a trace gets asked is almost always "what did the firmware do after DIO1 went high", and an unstamped list of commands cannot be lined up against the pin, the chip's own state, or the engine's events. Also picks up the model's noise fixes, which is what the seed is for. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q9HbD44EKWWTRYgxbFGxf6
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.
Firmware takes its entropy from the radio: RadioLib reads
REG_RANDOM_NUMBER_0eight times for a random byte, MeshCore seeds its PRNG with it and derives its
identity from the PRNG. The model's random-number registers were backed by
storage, so the byte was always zero and every emulated node came up with the
same keypair - two different nRF52 boards reported one public key.
MESHBENCH_NOISE_SEEDseeds this chip's receiver noise, per node. Seededrather than sampled so a run stays reproducible.
accuses this side rather than the firmware, and the two look identical from
outside.
up against DIO1 and the engine's events.
Picks up the model's matching fixes via the submodule.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Q9HbD44EKWWTRYgxbFGxf6