Skip to content

Waveshare RP2040 : RX path not enabled (very poor sensitivity) #2294

@TheMalkavien

Description

@TheMalkavien

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) :

Image

The PR is coming very soon.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions