raspberry-pi-picoloralorawan

FiPy gateway not receiving uplinks from Raspberry Pi Pico with sx1262 module LoRa node


I'm trying a setup for LoRa with a FiPy board as a gateway/forwarder and a Raspberry Pi Pico with the Waveshare sx1262-686m hat for LoRa. The FiPy is listening on the 868.1 Mhz frequency (EU868) and it works fine with a Lopy class C node that joins with ABP. The node is forced to send its uplink packets on the 868.1 MHz frequency. It's not able to receive downlinks but it is fine for now. These are the logs shown by the gateway when communicating with the Lopy:

enter image description here

txpk is packets coming from the Chirpsack network server while rxpk is uplinks coming from the node.

Then I tried to make the Pico communicate with the FiPy, using the lorawan library for pico developed by Waveshare for their hat.

The problem I'm facing is that the pico node seems to be sending out the uplink packets but the FiPy forwarder doesn't receive them. From the node logs it seems like it is sending out data just fine but nothing appears on the gateway. The module is of course switched on and the antenna is connected.

enter image description here

After using the LoPy-FiPy setup, I thought that the problem was in the frequencies used by the node that was sending data on the other frequencies, so I changed the RegionEU868.h file to force every channel on the 868.1 Mhz and use only the 3 default channels. But even though in the logs it is shown that the frequency is the desired one, the gateway still receives nothing.

I'm now trying to use a proper Kerlink gateway but if anyone knows where the problem lies (if any) help is appreciated.

EDIT: with the Kerlink gateway everything works fine, so if anyone knows a workaround for the FiPy it'll be appreciated.


Solution

  • I forgot that other than forcing the frequency there's the need to force the SF and the DR to the one that the gateway is listening to. So since the gateway is configured for SF7BW125 I changed the RegionEU868.h file so that every DATARATE variable is set to DR_5,that is SF7BW125.

    It works as a temporary solution. I will now procede to create dedicated functions to change those values instead of hardcoding them.