ArduCopter does not send ACKs over MAVLink

I have somehow got my Pixhawk into a situation whereby it does not send ACKs in response to a command.

In fact, if I run QGroundControl and connect it to my Pixhawk, and then re-attempt MAVLink communcation, it now does send ACKs,

What could be causing this?

I previously disabled all stream params that I could find because I want to reduce latency between Pixhawk and companion computer. I thought this may have been the problem, but re-enabling these:
SR0_EXT_STAT, SR0_EXTRA1, SR0_EXTRA2, SR0_RAW_SENS, SR0_RC_CHAN
did not fix the solution.

Anyone know why ACKs are not being received unless I run QGroundControl first? Thanks.

Well, after much messing around thinking firstly that I had misconfigured ArduCopter, and then thinking I had a bad serial connection, the problem was another process accessing the serial port.

Glad to say it had absolutely nothing to do with ArduCopter.

Top debugging tools:

mavproxy.py --master=/dev/ttyTHS1 --baudrate 115200 –show-errors

and

sudo lsof /dev/ttyTHS1

The problem was made difficult because the other program that accessed the serial port only ran intermittently. In addition, mavproxy.py by default does not display errors and appears to be robust when in fact it is dropping packets left right and centre.

1 Like