Lora Based GPS Data Transmission Help

Hello There,

I have a project I'm working on, but I'm stuck on a problem. I want to send GPS data over Lora network. I have tested two Lora modules for its P2P connectivity and it did work very well communicating the data between each other , but when I connected them with the same configuration setup at each end (transmitter & receiver) to transfer GPS data it didn't work at all and showed no data at receiving end. Please refer to the attachment for the setup diagram to be reviewed by you to further assist in fixing the GPS data transmission problem over Lora. Thanking you.

are you sure you have the correct baudrate between the GPS and Lora device and have the Tx and Rx lines the correct way around
if you connect the GPS to an arduino can you see the NEMA data?

Hello @horace, Thank you very much for your feedback. Yes! i am very much sure and check that baudrate is set @115200bps on both the modules as a default as both modules are from the same company. I have been double check for Tx and Rx are correctly connected. Yes! its getting NEMA data when GPS module connect directly to Tx/Rx pins of used ESP32 MCU. Please check for the attached screenshot. Thanks.


does anything at all appear on the receiver? even rubbish
does the gps transmit data continuously?
lora is a low bandwidth low data rate system - you may be transmtting data too fast at 115200baud and receiver is overrunning
if you have a voltmeter can you check the Tx and Rx voltages?

post your original transmitter and receiver code (using code tags </>)?

Nothing appear on the receiver.


Yes! after code initialization command GPS start transmit continuously.
I have checked with o-scope signal start transmitting at Tx pin of GPS module as per the code running on ESP32 MCU.
Code is shown in the above screenshot.
Thanks.

rather than uploading screen dumps upload text - see forum instructions
from the screen dump I can see you are using the TinyGPS++ library which is parsing the NEMA data to give you latitude, etc
however, you should still be able to see the raw NEMA data arriving at the Lora receiver
what code are you running on the receiver? is it simply displaying the characters received from the Lora module?

Hello @horace, sorry for delayed reply.

Yes, i am using TinyGPS++ library parsing the NEMA data. This comes when GPS module connected directly through wires to ESP32, but when setup Lora modules no GPS data received at all.

Secondly, I haven't add any code to ESP MCU to retrieve GPS data over Lora while using Lora modules for transmitting and receiving. I have just setup the modules to for P2P communication between them and test to communicate data between each other and was thought that when connecting instead of using wires for Tx/Rx at ESP32 they would transfer the data between each other the same way. And I don't know how to Lora code for transmitter and receiver for this? Thanking you.

Adding that code would be an important step.

However, it seems that you don't yet understand how the basic data transmission examples work, so fix that first. Spend some time studying the code and any tutorials you can find.

Hello @jremington, Thank you very much coming for help.

You are requested could you please provide me the link(s) where i can study and review for Lora transmission Arduino IDE ESP32 codes with AT commands. Thanks.

Please follow the forum instructions.

Post the code you are using, using code tags, and links to the product pages for the devices you are using.

Hello @jremington, Thank you for keep supporting.

Code:

#include "TinyGPS++.h";
#define RXD2 16
#define TXD2 17

TinyGPSPlus gps;
int COUNT = 0;

void setup() {
  Serial.begin(115200);
  Serial2.begin(115200, SERIAL_8N1, RXD2, TXD2);
}

void loop() {

delay(1000);

if (COUNT ==0)
 {
  Serial2.write("@GSTP\r\n", 7);

  delay(500);

  Serial2.write("@GNS 0x0B\r\n", 11);

  delay(500);

  Serial2.write("@GSR\r\n", 7);

   delay(500);
   COUNT ++;
  }   
else   
  {
    while (Serial2.available() > 0)
    gps.encode(Serial2.read());
  }

   Serial.print("LAT=");  Serial.println(gps.location.lat(), 6);
    Serial.print("LONG="); Serial.println(gps.location.lng(), 6);
    Serial.print("ALT=");  Serial.println(gps.altitude.meters());
}

Product link:
https://reyax.com/products/rylr998/

Required application setup:

I doubt if you can connect a GPS module directly to the RYLR998 lora module as in the diagram of post #1 (and post #11)

ignoring the GPS for now get the Lora modules communicating - have a look at how-to-use-lora-rylr998-modules-with-arduino - connect the Lora modules to ESP32 micros make sure you can transmit data between the Lora modules and understand how it woulds

once you have the GPS module and Lora modules working independently I would suggest you

  1. connect the GPS module to a ESP32
  2. connect a Lora module to the same ESP32
  3. code on the esp32 initialises the modules and in a loop reads the GPS data and then transmits it over Lora to the other ESP32 equiped with the second Lora module

I have tested two Lora modules for its P2P connectivity and it did work very well communicating the data between each other

This is the example I referred to. First learn how that works, as suggested by @horace, then add code to read the GPS and send the GPS data instead.

Hello @horace

Thanks for keep helping. Please allow me sometime to workout on this and get back to you later with the same.

You mean with the RYLR998 lora module its not technically possible to send the required initialization command to start transmitting GPS data over Lora network? Thanks.

Hello @jremington

Okay! Got it. Thanks for keep supporting.

if you can setup a pair of RYLR998 lora modules to work like a pipe, e.g. data pushed in a one end appears at the other, it could work
can you set up a pair to default to operate like a pipe on power up? if so it could work
or do they require some initialisation commands on power up?
if you could set up a pipe the schematic of post #1 could work with the ESP32 sending GPS initialisation commands over lora and receiving the NEMA data and decoding it
could you upload your RYLR998 lora transmitter/receiver code?

Hello @horace,

Thanks for keep supporting.

Yes! i can setup a pair to default to operate like a pipe on power up and required no initialization commands on power up, but to send the data through pipe it requires AT commands.

Yes! i think so.

Sorry to say that I didn't get proper transmitter/receiver Arduino code for RYLR998 with AT commands to be loaded on the ESP32 to send initialization command to GPS module and receiving back NEMA data to decoding it. And this could be the major issue where i stuck with. Could you please share the codes for this? Thanking you.

Hello @horace

This is the data transfer setup between pair of RYLR998 modules to work like a pipe between two different serial monitors. Thanks.

if you can set up the pipe the schematic of post #1 should work

  1. when you tested the GPS with a ESP32 you sent it AT commands at 115200baud and it responded with NEMA data
  2. you should be able to setup the pipe and run the AT commands (code of post #11?) on the ESP32 with the Lora receiver being connected to to Serial2
    the AT should go over the pipe to the GPS device which responds with the NEMA data

Hello @horace

No i didn't use AT command when tested the GPS with a ESP32 directly by using Tx/Rx wires i just upload the code in esp32 which has mentioned in post #11 and GPS start sending NEMA data after sometime.

That is where i am stuck that how to code the AT command for Lora modules in the code mentioned in post #11 that should go over the pipe to the GPS device which responds back with the NEMA data.