Hi everyone, I’m working with ArduCopter firmware version 4.6.3.
My testing setup is pretty simple; I’m receiving a MAVLink RC_OVERRIDES message with id=70
Via the Sik radio on the drone, but I would like the command to be received only by another component (an ATMega) on the drone, and thus ignored by the Flight Controller.
The ATMega is able to receive and decode the message correctly.
On the FC, I have instead set the following in RC_OPTIONS:
- Ignore RC Receiver
- Ignore MAVLink Overrides
- Arming Check throttle for 0 input
And here’s the strange part: if I check in Radio Calibration and send the Override command, I won’t see any changes on any channel, so it would seem that the ignore_mavlink_overrides command is working; however, in automatic flight mode, the drone will start spinning on the yaw axis in the same constant, slow manner.
With firmware 4.5.7, this bug does not exist.
We compiled various versions of the ArduCopter 4.6.3 code and, after studying the various cases, we concluded that by commenting out the call to the read_radio() function in:
void Copter::rc_loop()
{
// Read radio and 3-position switch on radio
// ------ -----------------------------------
read_radio();
rc().read_mode_switch();
}
In Copter.cpp
The yaw rotation issue no longer occurs!
And now I have a few questions:
- Why, even though `ignore mavlink_overrides` is enabled, does the flight controller still seem to receive this command and appear to be affected by it?
- Why is the rotation behavior clearly visible in the log, but there is no `yaw` command in `RcIn`?
- Why doesn’t this problem exist in version 4.5.7?
Log with yaw rotating problem : Unique Download Link | WeTransfer
Thanks!