I have been trying to set up a pair of lora transceivers to communicate over a long distance (~3km). However after setting them up and trying them out, the maximum range i can achieve seems to be 1.5km. After further testing, i found out the rssi is terrible even in short range. With the tx and rx antennas parallel and touching i get -35dBm while when they're around 1m apart i get -65dBm. The tx side is an AI-Thinker Ra-02 module based on the sx1278 chip connected to an Arduino Uno R3. The rx is a Waveshare RP2040-LoRa-LF module based on the sx1262 chip. I use the RadioLib library to control both modules. I tried a few different quarter wave antennas and even modified one to a half wave dipole which made no real difference. However i tried unplugging the receiver's antenna and the rssi dropped to -90 so the antenna is at least doing something. I also tried using random lengths of wire and that didn't seem to change the rssi although i don't know if that's expected for such a small distance. I have verified the Ra-02 is transmitting through the PA_BOOST path and not RF0. I tried both 17 and 20db output power settings but that made no difference either. I also tried externally powering the arduino's 3.3V rail in case it couldn't properly power the transmitter but nothing changed.
Any ideas on what the cause may be and what to try next would be greatly appreciated. Thanks in advance
Note: I found another question about issues with lora range on this site but the situation appeared to be quite different so i think i can ask this question. If not let me know and i'll delete it.