Looking to speed up LoRa transmission

Hi guys!
I'm using two MicroChip WLR089u0 LoRa modules, and I can communicate between them without an issue. The only problem I have is the time between transmissions.
Between every transmission, theres a minimum of 1 second of delay, no matter what. Even when I send the shortest message possible.
When I send 2 bytes, I get around 1010 milliseconds of delay, when I send 300, I get around 1200 ms. This tells me, that for some reason, the module has a fix 1 second delay between transmissions.
Maybe it has something to do with ETSI duty cycle regulations? I'm not sure.
This LoRa module is quite special, cause it takes instructions trough the serial monitor, and Serial.println.

Here are the parameters I'm using for the transmission:
SF7
Bandwidth 500 MHz (only for testing, I'll go lower once I find the issue)
CR 4/5
PA Boost ON
PWR 20 (around 18 dBm)

Here is my code for the shortest message possible.

void setup() {
  Serial.begin(9600);
  Serial2.begin(115200);
  delay(1000);
}

void loop() {

  Serial2.println("radio tx aa 1");
  
  String data = Serial2.readString();
  Serial.println(data);

}

and here is the serial monitor response with timestamps.

23:16:06.918 -> ok
23:16:06.918 -> radio_tx_ok
23:16:06.918 -> Total packet: 1,Sent: 1,Channel busy: 0
23:16:06.950 -> 
23:16:07.929 -> ok
23:16:07.929 -> radio_tx_ok
23:16:07.929 -> Total packet: 1,Sent: 1,Channel busy: 0

Thanks in advance!

Since the device listens for a clear channel before transmitting, perhaps there are other users in your area.

I doubt it, I tested it at different times and different places, with different sync bits, but thanks for the suggestion!

And that will be part of your problem, its a UART fron ended device, with a specialist interface.

The problem you are having probably has nothing to do with LoRa at all but is issues with the specialist interface. Serial based modules usually have some form of timeout, whereby the wait for a period when there are no serial characters to assume the 'packet' data has ended and can be sent.

So you probably need help from someone who understands that specialist module or approach the manufacturer for assistance.

Or the easier soluton is to use a standard SPI based LoRa module where its easy to acheive communications without the 'delays'.

you are using Serial.readString() which has a timeout by which it waits for data then timesout (default 1 second) and returns
this may be your problem
terminate you transmitted text with a new line \n and use readStringUntil, e.g.

String data = Serial2.readStringUntil('\n');

it will return when '\n' is received

also change your Serial baudrate to 115200 to match Serial2
what microcontroller are you using as host

Edit: not used the MicroChip WLR089u0 but have used the MicroChip 2483 without problems to communicate over LoRaWAN with the Things V3 server

I see, thank you.
To be honest, I don't really like this module eighter, so we might end up buying an other one.

if you do you could save yourself trouble by moving to a board which incorporates a microcontroller and a LoRa module, e.g. ttgo-lora32 , Adafruit Feather 32u4 LoRa, TTGO-Beam, Hiltec LoRa 32, The Things UNO, Adafruit RP2040 with RFM95, etc
this saves the problems of level shifters, jumper wires which give poor connections and intermittent faults, etc, e.g. see river level monitoring

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.