radioserver: report the DIO1 routing mask - #15
Merged
Merged
Conversation
The record already carried the IRQ enable mask. It did not carry the DIO1 routing mask, which is the narrower set SetDioIrqParams wires out to the pin, and the difference is not academic: reading the enable mask where the routing mask belongs is the fault that made an emulated board hear every advert and relay one in three. HeaderValid raised DIO1 part-way through a carrier, the pin was still high when RxDone arrived, and RadioLib attaches that pin on the rising edge, so recvRaw never ran. Nothing outside the chip could see which mask was which, so the fault had to be found by reading the datasheet against the source rather than by looking at a running node. Now it can be read off a node: RadioLib's receive default is RxDone alone against an enable mask that also carries Timeout, CrcErr, HeaderValid and HeaderErr, so the two being equal is a sign rather than a normal reading. Appended to the record, because the host reads it on length: an older host ignores the two new bytes and a newer host tells "did not say" from "said zero". Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q9HbD44EKWWTRYgxbFGxf6
A13xB0
force-pushed
the
report-dio1-mask
branch
from
September 3, 2026 16:14
865d9fc to
1f801d9
Compare
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.
The stats record carried the IRQ enable mask but not the DIO1 routing mask.
Those are two different fields of
SetDioIrqParams, and confusing them is thefault that made an emulated board hear every advert and relay about one in
three: the chip model read the enable mask where the routing mask belongs, so
HeaderValidraised DIO1 twelve symbols into the carrier. The pin was thenalready high when
RxDonearrived, which is no rising edge, and RadioLibattaches DIO1 on the rising edge, so MeshCore's
recvRawnever ran.Nothing outside the chip could see which mask was which, which is why that had
to be found by reading the datasheet against the source rather than by looking
at a running node. This makes it readable from one.
Two bytes appended. The host reads this record on length, so an older host
ignores them and a newer one can tell "did not say" from "said zero".
🤖 Generated with Claude Code
https://claude.ai/code/session_01Q9HbD44EKWWTRYgxbFGxf6