Hello,
On all Waveshare RP2040-LoRa boards, reception is severely degraded while transmission works correctly. The board receives almost nothing, or only very close/strong signals.
The board uses a PE4259 RF switch with two complementary control lines:
Signal Pin Driven by
CTRL SX1262 DIO2 SX1262 internally via SX126X_DIO2_AS_RF_SWITCH
!CTRL GPIO17 not configured in MeshCore
The PE4259 requires both pins to be driven in complementary logic. Without !CTRL being driven:
TX: DIO2=HIGH forces the TX path — works correctly
RX: DIO2=LOW but !CTRL floats — the switch never selects the LNA/RX path → reception is completely degraded
Fix :
Add SX126X_RXEN=17 to variants/waveshare_rp2040_lora/platformio.ini. This tells RadioLib to drive GPIO17 as the complement of DIO2, correctly switching the PE4259 to the LNA path during receive.
Additionally, SX126X_DIO3_TCXO_VOLTAGE should be 1.8 (not 0): the board uses an active TCXO on DIO3 at 1.8V according to the hardware schematic.
-D SX126X_DIO2_AS_RF_SWITCH=true
-D SX126X_RXEN=17 ← add this
-D SX126X_DIO3_TCXO_VOLTAGE=1.8 ← fix from 0
References :
Waveshare RP2040-LoRa schematic: https://files.waveshare.com/wiki/RP2040-LoRa/Rp2040-lora-sch.pdf
PE4259 datasheet page 4 (complementary-pin control logic)
We have tested this patch on multiple RP2040 nodes, and the result is very good. We start from -10SNR to something like +9SNR. Depending on each node conditions.
Example after patching (around 12:00) :
The PR is coming very soon.
Hello,
On all Waveshare RP2040-LoRa boards, reception is severely degraded while transmission works correctly. The board receives almost nothing, or only very close/strong signals.
The board uses a PE4259 RF switch with two complementary control lines:
Signal Pin Driven by
CTRL SX1262 DIO2 SX1262 internally via SX126X_DIO2_AS_RF_SWITCH
!CTRL GPIO17 not configured in MeshCore
The PE4259 requires both pins to be driven in complementary logic. Without !CTRL being driven:
TX: DIO2=HIGH forces the TX path — works correctly
RX: DIO2=LOW but !CTRL floats — the switch never selects the LNA/RX path → reception is completely degraded
Fix :
Add SX126X_RXEN=17 to variants/waveshare_rp2040_lora/platformio.ini. This tells RadioLib to drive GPIO17 as the complement of DIO2, correctly switching the PE4259 to the LNA path during receive.
Additionally, SX126X_DIO3_TCXO_VOLTAGE should be 1.8 (not 0): the board uses an active TCXO on DIO3 at 1.8V according to the hardware schematic.
-D SX126X_DIO2_AS_RF_SWITCH=true
-D SX126X_RXEN=17 ← add this
-D SX126X_DIO3_TCXO_VOLTAGE=1.8 ← fix from 0
References :
Waveshare RP2040-LoRa schematic: https://files.waveshare.com/wiki/RP2040-LoRa/Rp2040-lora-sch.pdf
PE4259 datasheet page 4 (complementary-pin control logic)
We have tested this patch on multiple RP2040 nodes, and the result is very good. We start from -10SNR to something like +9SNR. Depending on each node conditions.
Example after patching (around 12:00) :
The PR is coming very soon.