RAK5146-115 SPI on RPi.4 not receiving RF signals

Hi everyone…

Have a RAK5146 - 115 (SPI) mounted on a RPi 4.

Installed the RAK firmware rak_common_for_gateway. The software seems to be working properly:

$ sudo systemctl status ttn-gateway.service
● ttn-gateway.service - The Things Network Gateway
     Loaded: loaded (/lib/systemd/system/ttn-gateway.service; enabled; preset: enabled)
     Active: active (running) since Sat 2025-10-04 04:27:16 UTC; 32min ago
   Main PID: 626 (start.sh)
      Tasks: 7 (limit: 3913)
        CPU: 1min 11.886s
     CGroup: /system.slice/ttn-gateway.service
             ├─626 /bin/bash /opt/ttn-gateway/packet_forwarder/lora_pkt_fwd/start.sh
             └─866 ./lora_pkt_fwd

But I do not get any RF signals on the concentrator as shown below:

    RF packets sent to concentrator: 0 (0 bytes)
...
rak-gateway ttn-gateway[866]: # PULL_RESP(onse) datagrams received: 0 (0 bytes)
rak-gateway ttn-gateway[866]: # RF packets sent to concentrator: 0 (0 bytes)
rak-gateway ttn-gateway[866]: # TX errors: 0
rak-gateway ttn-gateway[866]: ### SX1302 Status ###
rak-gateway ttn-gateway[866]: # SX1302 counter (INST): 1650769730
rak-gateway ttn-gateway[866]: # SX1302 counter (PPS):  0
rak-gateway ttn-gateway[866]: # BEACON queued: 0
rak-gateway ttn-gateway[866]: # BEACON sent so far: 0
rak-gateway ttn-gateway[866]: # BEACON rejected: 0
rak-gateway ttn-gateway[866]: ### [JIT] ###
...

The configuration file (global_conf.json) is standard…

/opt/ttn-gateway/packet_forwarder/lora_pkt_fwd/global_conf.json

...
"chan_multiSF_All": {"spreading_factor_enable": [ 5, 6, 7, 8, 9, 10, 11, 12 ]},
        "chan_multiSF_0": {"enable": true, "radio": 0, "if": -400000},  /* Freq : 903.9 MHz*/
        "chan_multiSF_1": {"enable": true, "radio": 0, "if": -200000},  /* Freq : 904.1 MHz*/
        "chan_multiSF_2": {"enable": true, "radio": 0, "if":  0},       /* Freq : 904.3 MHz*/
        "chan_multiSF_3": {"enable": true, "radio": 0, "if":  200000},  /* Freq : 904.5 MHz*/
        "chan_multiSF_4": {"enable": true, "radio": 1, "if": -300000},  /* Freq : 904.7 MHz*/
        "chan_multiSF_5": {"enable": true, "radio": 1, "if": -100000},  /* Freq : 904.9 MHz*/
        "chan_multiSF_6": {"enable": true, "radio": 1, "if":  100000},  /* Freq : 905.1 MHz*/
        "chan_multiSF_7": {"enable": true, "radio": 1, "if":  300000},  /* Freq : 905.3 MHz*/
        "chan_Lora_std":  {"enable": true, "radio": 0, "if":  300000, "bandwidth": 500000, "spread_factor": 8,						/* Freq : 904.6 MHz*/
                           "implicit_hdr": false, "implicit_payload_length": 17, "implicit_crc_en": false, "implicit_coderate": 1},
        "chan_FSK":       {"enable": false, "radio": 1, "if":  300000, "bandwidth": 125000, "datarate": 50000}						/* Freq : 868.8 MHz*/

...

Have a Seed SX1262 as a remote end-sensor with the following configuration…

...
  radio.setSpreadingFactor(9);
  radio.setBandwidth(125.0);
  radio.setCodingRate(6);         // LoRa coding rate denominator.
  radio.setFrequency(904.7);      // US
  state = radio.setSyncWord(0x12); 
...

Still no RF signal detected by the RAK5146. A second SX1262 receives the LoRa RF signal as expected…

[SX1262] Received packet!
[SX1262] Data:		Seeed Studio
[SX1262] RSSI:		-57.00 dBm
[SX1262] SNR:		13.25 dB
[SX1262] Frequency error:	189. Hz

I have read and learned for a few days now what others have done, but everyone is eventually successful. At this point it should be trivial for the RAK5146 to receive RF signals. The documentation is plentiful and the software seems to work well.

Question: what settings should the end-sensor (SX1262), or any other sensor for that matter, should have for its signal to be received by the RAX5146? The above setup does not seem to do the trick.

My guess is that I am missing something rather simple but I cannot find it.

Thank you.

Regards…

Hello Miguel,

First, let’s clarify that you are willing to communicate using LoRaWAN or using LoRa but some other protocol?

If LoRaWAN, what is the LoRaWAN Network Server used? TTN, ChirpStack, other?

In the Seed SX1262 configuration snippet, there is a syn word configured. The current in a Private LoRaWAN. The sync word needs to match between the end device and the forwarder configuration. In your case, if you want to use Private, you need to set the flag in the global_conf.json to "lorawan_public": false.