Hi all
May be this question for Development thread, i don’t know.
I have a trouble with my diy nodes in transmitting ‘long’ messages with certain settings.
My nodes:
promicro (nrf52840 ) + e22-900mm22s (sx1262)
ebyte E73-2G4M08S1C + heltec HT-RA62 (sx1262)
Using LongFast preset.
Both nodes has problems when I try to send message with more than ~20 symbols.
Short messages (1-10) has near 100% delivery, but long - dramatilally descrease to 1-5% of delivery.
I have a set of other nodes (esp32 and nrf5284 based), whey doesn’t have such problem.
SDR shows that node transmits, but no one other node replies (2-3 meters between nodes)
Everything works fine with medium fast/short fast/long moderate presets.
First mind was about frequency drifting with xtal module (900mm22s), but got the same problem with tcxo.
There are few caps before and after 3.3v LDO (as I remember 10uF and 220uF)
In the transmitting node logs all is ok - as normal transmission, but other nodes don’t reply (and problem node tries to transmit 3 times).
On receiving node - need to check again, early I saw logs that packet received but it is possible a noise. I’ll return with logs later.
What most odd is that the received ‘packets’ are all at maximum packet size (255) not sometimes less, its almost as if someone else it transmitting max size packets on purpose.
Are the reported RSSI and SNR for these ‘packets’ consistent ?
|#define|RADIOLIB_ERR_CRC_MISMATCH (-7)|
| — | — |
||The calculated and expected CRCs of received packet do not match. This means that the packet was damaged during transmission and should be sent again.|
Its possible its not printed, they might have given a clue as to where the packets are coming from.
LoRa devices dont tend to report ‘packets’ from noise.
Radiolib does define an error for a problem with the packet header;
RADIOLIB_ERR_LORA_HEADER_DAMAGED
(-24) LoRa packet header has been damaged
The packet header does have a seperate CRC so you might think that if no packet header damaged is being reported, then the header is geniune, further implying a LoRa packet is being received.
DEBUG | 14:24:18 105 [Router] handleReceived(REMOTE) (id=0x3c847ad9 fr=0x1c to=0xff, WantAck=0, HopLim=7 Ch=0x0 Portnum=1 rxtime=1719930258 rxSNR=6 rxRSSI=-31 hopStart=7)
DEBUG | 14:24:18 105 [Router] Module ‘text’ wantsPacket=1
INFO | 14:24:18 105 [Router] Received text msg from=0x88cbb31c, id=0x3c847ad9, msg=For the update on the same thing I think I have a new phonU ane it"doesn’t n!|ter%if yu have a nw phOn
Message was sent
For the update on the same thing I think I have a new phone and it doesn’t matter if you have a new phone and it doesn’t matter if you have a new phone and it doesn’t matter if you have a new phone and it doesn’t matter if you have a
Well, the problem you are seeing appears to be that the ‘error’ packet starts off OK, but that bit errors start occuring later on in the packet. One of the useful thing about LoRa devices is that the packet buffer is not lost when there is an error.
When the symbol time gets larger then LoRa packets are subject to this type of error for longer (as in more bytes) packets. I recall way back in time (2014) seeing the same issue and the cause was not setting the low data rate optimisation flag, which according to the datasheets you need to set at symbol lengths of greater than 16mS.
But the symbol time here, SF11, BW 250khz is 8mS, so the flag should not need to be set.
Thanks, my bad.
Forcing LDRO (forceLDRO() method ) makes all received messages as corrupted (on problem node) and it doesn’t transmit at all.
I just try to invoke it right after lora.begin() method.