Repository navigation
Conversation
…sh's modem radio.preset copied the preset table's coding rate, which is MeshCore's denominator, into a field that holds it minus four, so EU/UK (Narrow) became 4/12: half again the airtime in the engine, and a companion told CR 12 refused it. It now uses the preset's own conversion. nodes.place left the radio empty, so a placed node fell back to the engine's SF10 at 250 kHz while its firmware booted on SF8 at 62.5 kHz, and on a narrow mesh it never heard anybody. It now takes the modem the mesh shares, or the documented default.
This branch has not been deployed
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.
Two ways a node ended up on a different radio from the mesh it was in, both silent.
radio.presetmade every preset's coding rate four too high. It copied the preset table's coding rate, MeshCore's denominator (8 for 4/8), intoRadioConfig.CodingRate, which holds it minus four. EU/UK (Narrow) became 4/12: half again the airtime in the engine, and a companion sent CR 12 refused it ("firmware rejected an argument as out of range"). It now usesRadioPreset.Config(), which already converted correctly. The table's comment said "denominator minus four" over a column of denominators; it now says what the column holds.A placed node had no radio.
nodes.placeleft it empty, so the engine fell back to its own SF10 at 250 kHz while the firmware booted on SF8 at 62.5 kHz. On any narrow mesh the node shared a channel with nothing and never heard anybody. A placed node now takes the modem every other node shares, orscenario.DefaultRadio()where they disagree or there are none.DefaultRadiodocumented itself as "the modem configuration a new or imported node gets" and was called from nowhere.In the GUI: the map's place tool calls
nodes.place.Tests: a preset keeps its coding rate; a placed node joins the mesh's modem; with no agreed modem it gets the default.
Docs: MeshBench/docs#45