Skip to content

Fix RAK3401 SKY66122-11 FEM control: enable CSD/CPS for proper PA/LNA operation#6

Merged
weebl2000 merged 12 commits into
devfrom
fix-rak3401-sky66122-11-fem
Mar 3, 2026
Merged

Fix RAK3401 SKY66122-11 FEM control: enable CSD/CPS for proper PA/LNA operation#6
weebl2000 merged 12 commits into
devfrom
fix-rak3401-sky66122-11-fem

Conversation

@weebl2000
Copy link
Copy Markdown
Owner

preamble: I was talking to someone about their RAK3401 board on Discord and dived into datasheets and current implementation. I asked them to test and come back with findings, but I strongly believe the FEM isn't being controlled properly and this can cause RX sensitivity to be bad and perhaps even cause power/overheating issues.

The RAK13302 1W module uses a Skyworks SKY66122-11 front-end module with three digital control pins (CSD, CTX, CPS) that must be actively driven by the host MCU. The previous code only managed CTX (GPIO 31) — toggling it for TX/RX — but never initialized CSD (GPIO 24) or CPS (GPIO 21), leaving them floating with no pull-up/pull-down resistors on the PCB.

With floating CSD and CPS, the SKY66122 was in an undefined operating mode:

  • The 30 dB TX PA may not have been reliably engaging
  • The 16 dB RX LNA was never reliably active, degrading receive sensitivity

I have 4 variants for you to try:

  1. This PR, fix SKY66122-11 FEM being driven correctly
  2. This PR, fix SKY66122-11 FEM being driven correctly, and SX126X register patch
  3. This PR, fix SKY66122-11 FEM being driven correctly + AGC reset SX1262
  4. This PR, fix SKY66122-11 FEM being driven correctly + AGC reset SX1262 + SX126X register patch

I expect variant number 4 to have the best improvement. When replying with your findings please mention the builds you have tested!

Following the comment from Heltec engineer I also applied the register patch here. It should help with keeping AGC in check.

I don't have a RAK13302 device so I cannot test this myself.

References:

rak13302-schematic rak13302-power-explanation

Mirror of meshcore-dev#1836

IoTThinks and others added 12 commits February 18, 2026 22:32
…rect-Release-of-RefCountedDigitalPin

Fixed RefCountedDigitalPin.h and SSD1306Display for Heltec v4
…reply

`gps sync` reply: fill buffer with text
… LNA operation

The RAK13302 1W module uses a Skyworks SKY66122-11 front-end module with
three digital control pins (CSD, CTX, CPS) that must be actively driven
by the host MCU. The previous code only managed CTX (GPIO 31) — toggling
it for TX/RX — but never initialized CSD (GPIO 24) or CPS (GPIO 21),
leaving them floating with no pull-up/pull-down resistors on the PCB.

With floating CSD and CPS, the SKY66122 was in an undefined operating
mode:
- The 30 dB TX PA may not have been reliably engaging
- The 16 dB RX LNA was never reliably active, degrading receive
sensitivity
@weebl2000 weebl2000 force-pushed the fix-rak3401-sky66122-11-fem branch from e44a9dd to 49d8313 Compare February 28, 2026 18:09
@ndoo
Copy link
Copy Markdown

ndoo commented Feb 28, 2026

Needs to be rebased at least after #9777

@weebl2000 weebl2000 merged commit ba3d9e2 into dev Mar 3, 2026
9 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.

6 participants