Hi
I am trying to setup a basic LoRa communication between two Arduino UNO boards and SX1278, 433MHz modules, one as RX and other as TX. LoRA module and Arduino are connected using a 5V-3.3V level convertor. I have used 3dbi gain antennas both are TX and RX side. However, I am hardly getting a range of 200mts between transmitter and receiver.
when I place TX and RX close by, by about 10 cms, the RSSI on RX side reads -10dbm. The moment the range exceeds 2mts, RSSI on RX side goes down to -70dbm.
I see in various forums that LORA gives a range between 2kms and 10kms, depending on non-line of sight or line of sight. However, in my case, it is not exceeding 200mts.
What could be the reason..? The LoRA module has a total of 4 ground pins. Should I be connecting all ground pins of LoRA module to UNO board..? I have connected only one ground pin of LoRA module to GND pin of UNO board.
The wired settings are as follows
// LoRa-02 SX1278 module PINs:
// 3.3 V and ground : Connected to 3V3 and GND of Arduino UNO
// RST : Connected to PIN-9 of Arduino UNO, after level convertor
// NSS : Connected to PIN-10 of Arduino UNO, after level convertor
// MOSI : Connected to PIN-11 of Arduino UNO, after level convertor
// MISO : Connected to PIN-12 of Arduino UNO, after level convertor
// SCK : Connected to PIN-13 of Arduino UNO, after level convertor
// DIO0 : : Connected to PIN-2 of Arduino UNO, after level convertor
The connections are same for both RX and TX side.
I am using LoRa Library of Sandeep Mistry version 0.8.0 and used example programs LoRa Sender, which is as below
#include <SPI.h>
#include <LoRa.h>
int counter = 0;
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("LoRa Sender");
if (!LoRa.begin(433E6)) {
Serial.println("Starting LoRa failed!");
while (1);
}
}
void loop() {
Serial.print("Sending packet: ");
Serial.println(counter);
// send packet
LoRa.beginPacket();
LoRa.print("hello ");
LoRa.print(counter);
LoRa.endPacket();
counter++;
delay(5000);
}
LoRA Receive:
#include <SPI.h>
#include <LoRa.h>
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("LoRa Receiver");
if (!LoRa.begin(433E6)) {
Serial.println("Starting LoRa failed!");
while (1);
}
}
void loop() {
// try to parse packet
int packetSize = LoRa.parsePacket();
if (packetSize) {
// received a packet
Serial.print("Received packet '");
// read packet
while (LoRa.available()) {
Serial.print((char)LoRa.read());
}
// print RSSI of packet
Serial.print("' with RSSI ");
Serial.println(LoRa.packetRssi());
}
}
Except for the frequency, I have not changed any thing in code.
The LoRa Module which I use reads on case as
RA-02
ISM: 410-525MHz
PA: +18dBm
LoRa/FSK/00k

