Поизучал я проблему с загрузкой параметров и миссий в qgc.
Вообщем иногда ardupilot пишет в uart напрочь игнорируя тот факт, что буфер передачи может быть заполнен. Например в GCS_MAVLINK::handle_mission_request_list. Соответственно сообщения теряются.
Предложение :
1. Увеличить буфер uart (в px4 вообще txbuf=1024/rxbuf=512 , а для uart1 ещё больше)
2. В методе txspace не возвращать все оставшееся место буфера, а резерировать скажем 30% (если заполнен на 70%, возвращать 0). Т.е. держать это место на случай если кто-то без проверки txspace пишет.