Using platform_packages = framework-arduinocubecell@https://github.com/HelTecAutomation/CubeCell-Arduino@1.7.0
LoRaWAN.join() hardcodes NbTrials = 1 AND resets JoinRequestTrials = 0 on every call
RegionEU868AlternateDr returns DR5 for trial 1 (the else default)
Combined effect: every join attempt in EU868 is permanently stuck at SF7 — the step-down to lower DRs (at trials 8, 16, 24, 32, 48) is unreachable
Region: EU868
Expected: first join attempt should use a conservative DR (or at least step down on retry)
Actual: always joins at DR5/SF7 regardless of retries
Root cause: JoinRequestTrials reset in LoRaMacMlmeRequest + NbTrials=1 in LoRaWAN.join() means RegionEU868AlternateDr is always called with NbTrials=1 → always returns DR5
Suggested fix: either change the else default in RegionEU868AlternateDr to DR0, or don't reset JoinRequestTrials between outer retry loops
Fix/workaround if you need it is still the one-line patch to RegionEU868.c line 915 — change datarate = DR_5 to datarate = DR_0 in the else branch. It's in the pinned framework version so it won't get overwritten unless you deliberately update.
Using platform_packages = framework-arduinocubecell@https://github.com/HelTecAutomation/CubeCell-Arduino@1.7.0
LoRaWAN.join() hardcodes NbTrials = 1 AND resets JoinRequestTrials = 0 on every call
RegionEU868AlternateDr returns DR5 for trial 1 (the else default)
Combined effect: every join attempt in EU868 is permanently stuck at SF7 — the step-down to lower DRs (at trials 8, 16, 24, 32, 48) is unreachable
Region: EU868
Expected: first join attempt should use a conservative DR (or at least step down on retry)
Actual: always joins at DR5/SF7 regardless of retries
Root cause: JoinRequestTrials reset in LoRaMacMlmeRequest + NbTrials=1 in LoRaWAN.join() means RegionEU868AlternateDr is always called with NbTrials=1 → always returns DR5
Suggested fix: either change the else default in RegionEU868AlternateDr to DR0, or don't reset JoinRequestTrials between outer retry loops
Fix/workaround if you need it is still the one-line patch to RegionEU868.c line 915 — change datarate = DR_5 to datarate = DR_0 in the else branch. It's in the pinned framework version so it won't get overwritten unless you deliberately update.