I need to push data (split into packets) more or less reliably.
After getting tens of messages to input buffer, radio reorders them and loses about 10-15%.
Is it possible to manage buffer in a pull/push way and get notified “Now i can send more messages, please continue”
On connect, MY_INFO response notifies about channel_utilisation and bitrate.
I can’t find a way to ping for MY_INFO timely to manually keep load within reasonable average channel_utilisation. is it possible?
Which firmware version are you running?
In principle the listen-before-talk feature from 1.3 should be able to handle high channel utilization quite well by waiting until the channel is not busy anymore. Even after that, it waits a random delay which is longer if the channel utilization is high.
Are you sending directly to another node or are there nodes in between that should relay it?
Did you determine the 10-15% loss by checking on the receiving node or by counting ACKs?
Not sure. I’m sending 10 packets. They come in order 1,5,4,10,9,7,3,8,6 (or alike).
Packet number 2 is lost.
But num 10 (the last one) comes in the middle.
So it means that all packets were succesfully swallowed by buffer, but one of them lost during sending…
I’m sending it from laptop through serial port with 5-seconds delay between packets.
Don’t think it can be lost in the USB-cable.
If I send them one-by-one, after previous packet came to receiving radio - it’s fine.
If I send them faster than 1 per ~1 minute and don’t wait for previous packets arrival - they are reordered and some of them are missed (
Yes the USB-Cable is unlikely to be the cause of this, and your test has shown, that it is caused by a buffer overflow, might not necessarily be in the serial input buffer, but clearly when waiting longer between each packet it works correctly. For a test you could increase the delay between each packet to say 5 minutes, that would most likely work correctly.