LoRa data doesn't get recieved when over a certain length.

Started by dave_sausages, September 13, 2016, 08:36:49 PM

dave_sausages

I'm thinking I've found the maximum data length that you can transmit with a LoRa, but I'm not sure, it's always listed in octets and that confuses me.

When I send this "0,0,-6,0,0,0,0,0,0" it is received fine at the other end.

But when my sending unit collects some more data and fills in the zeros and makes this: "0,0,-6,0,0,0,389,0,398" the receiving node stops receiving the data and printing it on the serial interface.

Have I reached the message length limit on my LoRa module?

**edit** I have now found that if I comment out this line that puts it in slow and long distance mode on both modules, it works fine.
rf95.setModemConfig(RH_RF95::Bw31_25Cr48Sf512);


But I'm not using the reliable datagram library, so there should be no timeout's happening, and the data is sending once every 5 seconds, and takes 1.2 seconds to send according to rf95.mode(), so why's it not working with large data at slow rates? the units are 1m apart too.


Tostaki

According to the LoRa Calculator, you should have a 1381ms Air time.
So far I did not test which more than 15 Bytes payload. I had no issue to get data transfered. The library works, according to the code, with a maximum 251 bytes payload

By using the HeaderXXX() functions I prevented the payload to be transmitted and / or received. Did you used that ones ?


dave_sausages

Quote from: Tostaki on September 14, 2016, 03:51:27 AM
According to the LoRa Calculator, you should have a 1381ms Air time.
So far I did not test which more than 15 Bytes payload. I had no issue to get data transfered. The library works, according to the code, with a maximum 251 bytes payload

By using the HeaderXXX() functions I prevented the payload to be transmitted and / or received. Did you used that ones ?
Can you explain what you mean? I don't understand. I am just using this to send the data:
sendLen = strlen(buffer);  //get the length of buffer

  rf95.send((uint8_t*)buffer, sendLen + 1 );

Tostaki


Ok if you did not used the header function, that does not come from there. The +1 is a bit weird. According to the lib examples, there is no +1.
By the way, how is the RSSI value when transmitting ?

For the send code, just try

rf95.send((uint8_t*)buffer, sendLen);