I am noticing a difference in how the APM behaves using MAVLink.
First, when using serial (under Linux) to connect to the APM and using MAVLink to get the current mode I receive values that are incorrect. Using my RC transmitter, I switch between Stabilize, Alt-Hold, and Loiter, while the MAVLink mode return value shows Stabilize, Alt-Hold, and Stabilize respectively.
Second, if I boot into Windows, load Mission Planner, connect to the APM, disconnect, switch to Linux, and then perform the above test, I get the desired result. Using my RC transmitter, I switch between Stabilize, Alt-Hold, and Loiter, while the MAVLink mode return value shows Stabilize, Alt-Hold, and Loiter (with guided selected) respectively.
Finally, if I pull power after the second test, connect power, and then test again, the first result is back.
It seems that either Mission Planner seems to be doing something special when connecting to the APM through MAVLink, or the parameters are being loaded and lost on the power restart. Can anyone shed some light on this.