A serial option has moved to the MAVLink link in 4.7
What ArduPilot says:
- SERIALN_OPTIONS bit 10 ('no forward mavlink') must not be set; use MAVn_OPTIONS bit 1 instead
- SERIALN_OPTIONS bit 12 ('no stream overrides') must not be set; use MAVn_OPTIONS bit 2 instead
4.7 moved two settings from the serial port to the MAVLink link that runs on it. “Do not forward MAVLink” was SERIALn_OPTIONS bit 10 and is now MAVn_OPTIONS bit 1; “ignore stream rate requests” was bit 12 and is now MAVn_OPTIONS bit 2. The upgrade converts both and clears the old bits. If an old bit is set again afterwards, arming is refused, so that a setting you rely on is not lost without notice. The number in the message is the serial port.
What to do, most likely first
A parameter file saved on 4.6 was loaded onto 4.7.
CheckParameter Compare & Migrate turns a 4.6 file into its 4.7 form and shows each change.
FixClear the bit in
SERIALn_OPTIONS(subtract 1024 for bit 10, 4096 for bit 12) and set the bit in theMAVn_OPTIONSof the link on that port (add 2 or 4). MAV1 is the first MAVLink port, usually USB, MAV2 the second, and so on.
Parameters to look at
| Parameter | What it is |
|---|---|
SERIAL1_OPTIONS | Telem1 options |
SERIAL2_OPTIONS | Telem2 options |
MAV1_OPTIONS | Bitmask for configuring this telemetry channel |
MAV2_OPTIONS | Bitmask for configuring this telemetry channel |
Where to do it:Parameter Compare & Migrate
The code that sends it
SERIALN_OPTIONS bit 10 ('no forward mavlink') must not be set; use MAVn_OPTIONS bit 1 instead
libraries/AP_SerialManager/AP_SerialManager.cpp AP_SerialManager::pre_arm_checks() · Open in ArduPilot Copter-4.7.1
SERIALN_OPTIONS bit 12 ('no stream overrides') must not be set; use MAVn_OPTIONS bit 2 instead
libraries/AP_SerialManager/AP_SerialManager.cpp AP_SerialManager::pre_arm_checks() · Open in ArduPilot Copter-4.7.1