Servers by jDrones

External Compass via USB

Hi All,

I’m currently using a Navio2 which has 2 onboard compasses. With the location of the Navio2 I’m still getting EMI during calibrations.

I’ve been recommended an external IMU with a self calibrating magnetometer,

Problem is I don’t know how to hook it up to APM. Digging around in the compass code it looks like onboard and externally connected compasses talk via I2C. I don’t see anything that talks over serial like a GPS receiver etc where you can provide a tty.

Looking at adding serial for this would be quite a chore. From what I have gathered APM also wants to talk to the raw device and do internal calibrations etc. Using something like the IMU brick is all that is offloaded. I guess you could set offsets of 0.

Any thoughts or opinions or am I talking crazy!

You really do want an external compass to get it away from all the RF noise. Why not simply get a GPS/Compass combined module that plugs into the GPS port and I2C port respectively. These are the most common way of getting an external compass - most people have them on their ArduPilot systems.
External IMU isn’t a good idea - unless its over SPI its simply not going to be reporting updates fast enough.

Thanks, Grant.

Hi Grant,

Do you have a solid recommendation on external compass? In the past I’ve used something similar to this (non 3DR) and it so so. I already have RTK piped in so don’t need GPS.

Mainly I’m looking for something with a cable longer than 8 inches.

Use RaspberryPi and External IMU? you just as well use a RaspberryPI and a Pixhawk as the ‘external IMU’ and use MAVLink to command the Pixhawk

For an external compass, you can do that by using the combined compass and gps, or you can buy a $3 compass and attach it to an i2c port.

they even talk about that for Navio

Also see Companion: Pi 2/3/Zero

I’ll pass on the Rpi + Pixhawk :slight_smile:

I took your advice and got an external compass breakout, I was hesitant about this since I thought I2C was really short, like under a foot. After doing some researching it looks like for high frequency I2C depends on the capacitace of the cable, no more than 500pF. So using cat5 should be able to shoot the few meters I need.

Servers by jDrones