Very low link quality gcs (MP) and high loss rate (QControl)

Is it normal for the packet loss rate to be around 50% for RC link-telemetry combined hardware like crossfire/SiyiFM30/Elrs? I don’t have a dedicated telemetry radio such as SiK/3DR/RFD900.

I get the same result in both Mission Planner and QControl, so I don’t think it is ground station software related. I am only running Arduplane so I can’t compare the results to iNav/BF. But I’ve tried everything: swapping telem1 with telem2, different UARTs, different serial baudrate, adjusting the telemetry stream rates in both MP and QGC (all to 1Hz), adjusting SRx_ parameters (slight improvement by setting everything to 1), and even increasing and decreasing the SCHED_LOOP_RATE. No luck. Any ideas please?

Usually it means there are selected packets being dropped, look at mavlink inspector in mission planner to see what packets are missing.

Before GPS fix lock, mavlink inspector shows total data stream rate of 1966Bps. After GPS fix, not only does the plane try to send more parameters, but doing so at an even lower rate of 1553Bps. Both are way below the default 57600 baud rate.

Github has an open issue on this very similar to mine, where the stream is being limited at a much lower rate. screenshot attached, Thanks.

https://github.com/ArduPilot/ardupilot/issues/14067

what radio are you using? you just showed a list of them. can you load parameters over the link?

it looks like lack of flow control on the link, normally I only seen this on really slow links that lacked flow control like old openlrsng radios before gitsly added " RADIO_STATUS" to slow it down. they are just sending select messages rather than trying to get it all through thats why so much is lost.

Your problem is the SiyiFM30 not ardupilot or mission planner. the other thing your posting on is totally unrelated.
https://www.rcgroups.com/forums/showpost.php?p=47916791&postcount=1295

Thanks for looking into this. I am using SiyiFM30. They have updated their firmware several times this month, so all functions such as bidirectional communication, gps_raw_int, and yaapu are working. I can load/write parameters. I have done some more testings, and there is definitely some differences between QGC vs MP.

In QGC, if the “All Streams Controlled by Vehicle Settings” box is unchecked under Telemetry Stream Rates (ArduPilot Only), essentially using QGC default stream rates, the result is the best. Loss rate around 4% (increasing to 14% after GPS fixlock). If the box is checked, the loss rate is around 23% (increasing to 33% after GPS fixlock). Interesting to note that I have already mirror exactly the QGC stream rates onto SR1_parameters/MP Telemetry rates, so why the big jump in loss rate after checking the box.

In MP, the loss rate can fluctuate quite a bit as shown in linkqualitygcs. It averages around 25~40%, and 45%~65% after GPS fixlock.

the problem is still the FM30, you need to take it up with them. they are either sending select packets or are using an incompatible mavlink library, or lack flow control. have you tried changing it to mavlink 1?