Skip to content

Merging latest master#49

Merged
attermann merged 3 commits into
csmafrom
master
May 5, 2026
Merged

Merging latest master#49
attermann merged 3 commits into
csmafrom
master

Conversation

@attermann
Copy link
Copy Markdown
Owner

No description provided.

0xSeren and others added 3 commits April 16, 2026 17:39
After reset, SX127x hardware leaves REG_MODEM_CONFIG_2 bit 2
(RxPayloadCrcOn) cleared, and RadioLib's SX127x::begin() does not
touch it. Upstream RNode firmware explicitly enables CRC on every
LoRa transmit and receive path (sx127x::enableCrc in
RNode_Firmware.ino:531, sx127x.cpp:160), so a real RNode will
silently drop frames that arrive without a valid CRC.

This means T-Beam and LoRa32 V2.1 users running the example
LoRaInterface cannot interop with real RNodes over LoRa today:
outbound packets are dropped at the RNode, inbound packets may be
accepted but silently corrupted.

Fix by calling chip->setCRC(true) after SX1276::begin() in the
SX127x branch of LoRaInterface::start(). The new call is gated on
the prior begin() having succeeded, and its own error is folded
into state so the existing RADIOLIB_ERR_NONE check catches it.

No change required on the SX126x branches: RadioLib's
SX126x::begin() already calls setCRC(2), so RAK4631, Heltec V3,
and Heltec V4 inherit CRC-on.
Replaces 10-byte random hash in announce with 5-byte random + 5-byte big-endian timestamp to resolve path issues caused by reliance on timestamp.
Suggested fix courtesy of @thatSFguy.
@attermann attermann merged commit 4177a77 into csma May 5, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants