Hi.
Having last firmware V3.4.2 installed (sawtooth mag curves orientation above correct) I did some tests, with the following conclusions:
-Difficult starts continue. At mission start car goes left or right, and knocks the barriers.
-Occasional deviations elsewhere.
-Tried with three (ext/ext/int) and two (ext/ext) compasses, without difference. I will later post the logs, so it can be seen if the internal compass is affected by the motor. External compasses are HMC5883L and QMC5883.
-Tried the “learning” trick, driving previously in Manual, Auto and Steering. This indeed worked, and the car didn’t deviate at start.
-I have to check if just after reset (before any movement) and with GPS lock, the initial yaw indication is correct. If I try at home (without GPS) it is correct.
–
The COMPASS_AUTO_ROT parameter is very promising. I did what follows.
COMPASS_AUTO_ROT doesn’t appear in V3.4.2 or trying beta (which also shows now V3.4.2), so I flashed V3.5.0-dev.
Initial messages:
u-blox 1 HW: 00080000 SW: EXT CORE 3.01 (107900)
PX4v2 00320046 35365118 37353630
PX4: bb30641a NuttX: 1472b16c
ArduRover V3.5.0-dev (5ad1dee2)
After reset from Mission Planner:
u-blox 1 HW: 00080000 SW: EXT CORE 3.01 (107900)
EKF2 IMU0 tilt alignment complete
EKF2 IMU1 tilt alignment complete
EKF2 IMU1 initial yaw alignment complete
EKF2 IMU0 initial yaw alignment complete
GPS 2: detected as u-blox at 115200 baud
GPS 1: detected as u-blox at 115200 baud
RCInput: decoding PX4IO_PPM
Ready to drive
Initialising APM
Beginning INS calibration. Do not move vehicle
<startup_ground> Ground start
Barometer calibration complete
Initialising APM
so even the two GPS’s are detected, a line:
u-blox 1 HW: 00080000 SW: EXT CORE 3.01 (107900)
is missing.
Parameter COMPASS_AUTO_ROT appeared, with value 2 (correct external compasses orientation if wrong).
But when trying to calibrate the compasses (both the three ext/ext/int, and the two ext/ext) the second external one indication didn’t advance, as if the QMC5883 were not recognized in this version.
Anyhow, when the first external and the internal compasses calibration finished, these messages appeared:
Mag(2) good orientation: 0 7.5
Mag(0) good orientation: 10 1.0
From the documentation:
0 None
10 Roll180Yaw90
Mag(0) should be the first external compass, and Mag(2) the internal Pixhawk one, so it seems that the external recognized one is well oriented Roll180Yaw90 (chip towards sky (dot back right), image C) and D), X forward, Y left), as in above photo with pins pointing right, and the other external one is equally oriented.
If pins point forward (photo above, chip orientation as GPS/compass drone photo beside), image B), with X pointing left and Y pointing backwards, orientation should be Roll180, but pins are less protected so I rotated the compasses 90º cw (Roll180->Roll180Yaw90).