An orientation parameter holds a number that is not an orientation
What ArduPilot says:
- Internal errors 0x400000 (bad_rotation)
Orientation parameters (AHRS_ORIENTATION for the board, COMPASS_ORIENT for a compass and others) take a number from a fixed list: 0 to 43 for the built-in rotations, 101 and 102 for the two custom ones. ArduPilot was asked to turn a measurement by a rotation outside that list, could not, and left the measurement unturned. The sensor that uses the parameter is therefore read in the wrong direction.
What to do, most likely first
A value was typed by hand, or came with a parameter file from another firmware.
CheckRead every parameter whose name contains ORIENT and compare each value with the list in its description.
FixChoose the orientation from the list, reboot, and check on the ground station that the horizon and the heading move the right way before flying.
A custom rotation (101 or 102) is selected on a firmware built without custom rotations.
FixUse one of the built-in orientations, or a firmware that includes custom rotations.
The old value 100 for the board is turned into 101 by itself at start-up; it is not the cause.
Parameters to look at
| Parameter | What it is |
|---|---|
AHRS_ORIENTATION | Board Orientation |
COMPASS_ORIENT | Compass orientation |
COMPASS_ORIENT2 | Compass2 orientation |
Where to do it:Parameter Compare & MigrateBoard & Wiring Planner