Holybro Telemetry V3 Dataloss

Hello,

i have two Telemetry V3 modules. One of them is connected to my computer with USB Cable. The other one is powered and TX and RX are directly connected.

I wrote a program which sends packages with bytes and compares the sent packages with the received ones.

The bytes gets send via the serial port which is connected to my Module.

I noticed the following things:
Baudrate 9600 and Airspeed 64 : everything ok no package loss
Baudrate 19200 and Airspeed 64: package loss in gaps which are almost constant
Baudrate 38400 and Airspeed 64: even more package loss, much smaller gaps compared with 19200 test

Does anybody have an explanation for that bevavior? I expected that there won’t be any package loss.

Best wishes
Johannes

How did you decode data from serial port?

someone said that just using usb clutters the data:

You dont have flow control and are overloading the buffer.

The radios are very slow and use flow control to slow down the data from the flight controller so it can handle it.

you can do it in hardware using the RTS/CTS pins or if your sending mavlink you can use the mavlink flow control system using TXbuf.

Using RTS/CTS for flow control is standard.

But how to use MAVLink for flow-control and what is TXBuf? Does the modem send something like xon/xoff to the attached device?

it sends the the state of the buffer to the flight controller letting it know if it needs to slow down.
https://mavlink.io/en/messages/ardupilotmega.html#RADIO

if the buffer is over 90% it slows down, if its under 40% it speeds up.

So the messages from the remote-end-device and the messages from the modem itself are both send via the TX of the modem to the local-end-device?
What if the remote-end-device does not use the MAVLink protocol?

Then you need to use the hardware flow control.

So first of all thanks for your help. If the Mavlink flag is not set to 1 on the modem, the only way to detect buffer overflow is Hardware Flow Control.
If Mavlink is set to 1, one can send Heartbeat Packets. Then RADIO_STATUS packets get injected in the data stream.