I installed two sets of GPS/Compass module on Pixhawk with 3.5RC2. The compasses linked together with I2C expend board to Pixhawk I2C and enabled in MP. But in live calibration, only internal compass and one ext compass show the data, no 3nd compass. How can I make 3nd compass work?
It would be good if @proficnc could chime in here with his design knowledge of the Pixhawk1 and Pixhawk2. (or any other hardware dev.)
I am currently chasing the same issue with a Pixhawk2 which @proficnc had stated can take 1 external compass on the external I2C bus and another external on the internal I2C bus (now an accessible port on Pixhawk2).
This indicates there is a reason the external I2C bus will not handle 2 compasses.
got your point, thanks lot.
Let me search if there is another compass chip or vendor available. But not sure all compass have fix assigned address or not, the code can identify different address as compass. would like to learn some about I2C protocol.
It’s not so much the actual application use of 3 compasses (I know we only use one) but the documented redundancy of having 3 compasses, multiple IMU, CPU’s, GPS’s, etc, etc, which is a requirement for some places that want drone work done.
We fly at Power Stations, Refineries, mines, that sort of thing, which require a ridiculous amount of safety requirements for people and machinery.
If we couldn’t claim redundancy in the equipment then some places would not let us operate there.
@mboland +1 here. The internal compasses are very often disturbed badly by local magnetic noises (Frames, high current through wide wires, magnetic interference from gimbal motors etc…)
While the external compass mounted 15 or 20 cm away from the frame, above on a small tower, seems happy. So if you find a good external one recognised by the current arducopter 3.5 please let us know.
so , I am running two here gps, on gps port 1 and 2 , but when I try to calibrate compas 1 and 2 (set as extern and use on boath) calibration on compas 2 wont go throught … it stand still on half way … am I missing something …
Compass redundancy sounds great, but it doesn’t actually really work like that. Today, ArduPilot does not have a process to detect a compass that going bad, reject it, and use another one instead. That would be great, but we’re not there yet. That among other things would be great improvements on the compass handling
All it can do today is look at them both and monitor for consistency. If they become inconsistent due failure or calibration problems, it will generate an EKF error and stop using them altogether. It cannot pick one or the other. It can only tell you “hey, something is wrong with my compasses”.
As such, the more compasses you introduce, the more likely it is one will fail or get confused, and the more likely it is to cause a problem rather than solving one.