Hello,
I'm having trouble getting RFM95W to work with Arduino Uno and my problems are the following :
-
On the sender setup, sending packets stop at 0, 1 or 2 (LoraSender example, Image1).
I tried to measure the input voltage of the RFM95W during transmission and it was stable at 3.27V. Strangely, when I measured the voltage, the sending packet didn't stop at 0, 1 or 2 and kept going until I removed the probes of my multimeter from the RFM95W (Image2).
-
On the receiver setup, there were 3 cases:
- Nothing happens, serial monitor stays clear.
- I'm receiving the packet with very low RSSI (-157) (first line of Image3).
- I'm receiving the packet with low RSSI (-109) and the message keeps spamming in the serial monitor (Image3).
I have the following setup for both sender and receiver :
- Arduino Uno board with screw shield
- Buck converter (5V to 3.3V to power the RFM95W) connected to Arduino 5v output and RFM95W 3.3v input
- 8 channel 5V/3.3V bidirectionnal logic level converter
- RFM95W
A scheme and a picture of the setup are given in the message below (sorry I'm a new user, I can't post more than 3 media at a time). Antenna in the scheme is not representative of my real antenna, which is a helical antenna as you can see on the picture. I forgot to put a ground cable between the buck converter and the RFM95W in the scheme but it is present in the real setup
Each RF95W are connected to Arduino Uno following sandeepmistry instructions (GitHub - sandeepmistry/arduino-LoRa: An Arduino library for sending and receiving data using LoRa radios.) (I'm using his LoRa library) :
RFM95W | Arduino Uno |
---|---|
VCC | 3.3V (from buck converter) |
GND | GND (from buck converter) |
SCK | D13 |
MISO | D12 |
MOSI | D11 |
NSS | D10 |
NRESET | D9 |
DIO0 | D2 |
And I'm using the examples of Sender and Receiver supplied by sandeepmistry , where I've only changed the frequency (868 MHz instead of 915 MHz).
Sender :
#include <SPI.h>
#include <LoRa.h>
int counter = 0;
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("LoRa Sender");
if (!LoRa.begin(868E6)) {
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);
}
Receiver :
#include <SPI.h>
#include <LoRa.h>
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("LoRa Receiver");
if (!LoRa.begin(868E6)) {
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());
}
}
I don't understand why the sending setup is working when I'm putting the multimeter probes to 3.3V and GDN pins of the RFM95W. And why is the RSSI so low while both setups are 1 meter apart.