Cannot get flight controller to recognize external compass

Hello,

I have a Flywoo Goku GN745 nano that I can’t seem to get configured properly to utilize an external compass through the I2C port. I’ve connected the pins according to the directions listed on this page with regard to the SCL and SDA pins. I previously had a BN-880 GPS connected and recently picked up a FOXEER M10Q-250 and I haven’t been able to get the flight controller to recognize either compass.

Am I missing something in the configuration of the firmware?

Any help would be greatly appreciated.

Thanks,

Loren

Supplier seems to only have configuration instruction with BetaFlight.

The wiring option. Not sure why both uart and I2C are needed in the diagram.

It seems support ublox, not sure will this helpful and work. Maybe you try Uart protocol GPS and GPS type (ublox).

This post maybe helpful.

I think Foxeer sent me one of these - I can see whether it works for me

@andyp1per let me know if you are able to get it to work. I think my next move is to connect it to an arduino and see if I can read compass data via the serial terminal. If the compass works with the arduino I might try some other arducopter qualified flight controller.

This doesn’t sound like a compass problem if neither works - sounds more like a flight controller problem. I notice in betaflight on the nano that the external pads are on a separate i2c bus. I suppose the hwdef could be wrong for the AIO. It’s worth trying the nano firmware just in case that’s the problem. Did you try in betaflight? Did it work?

@andyp1per I did try beta flight but couldn’t get the compass to work with that firmware either. I did take a look at the nano features.txt and these are all of the lines with compass listed:

AP_COMPASS_AK09916_ENABLED
!AP_COMPASS_AK8963_ENABLED
AP_COMPASS_BMM150_ENABLED
!AP_COMPASS_DRONECAN_ENABLED
!AP_COMPASS_EXTERNALAHRS_ENABLED
AP_COMPASS_HMC5843_ENABLED
AP_COMPASS_ICM20948_ENABLED
AP_COMPASS_IST8308_ENABLED
AP_COMPASS_LIS3MDL_ENABLED
!AP_COMPASS_LSM303D_ENABLED
!AP_COMPASS_LSM9DS1_ENABLED
!AP_COMPASS_MAG3110_ENABLED
AP_COMPASS_MMC3416_ENABLED
!AP_COMPASS_MMC5XX3_ENABLED
AP_COMPASS_MSP_ENABLED
AP_COMPASS_QMC5883L_ENABLED
AP_COMPASS_RM3100_ENABLED
COMPASS_CAL_ENABLED

I looked at the specification for the compass on the M10Q-250 and it lists a QMC5883 but not the QMC5883L. Could that be my problem?

Thanks again

Loren

They are the same. If betaflight doesn’t work then maybe that is wrong also - might be a newer rev of the board I suppose. Did you try the nano firmware? It has a different I2C setup.

The FOXEER documentation doesn’t seem to be very helpful. If the compass signal is output via the serial UART interface, it must be embedded in the UBLOX or NMEA protocol. Rather unlikely.
Otherwise, the compass is simply connected to the I2C interface as usual.
This should be possible to check with a small Arduino sketch.

Would the SpeedyBee F405 flight controller be a possible good alternate?

Actually just reversed the pins and it recognizes the compass. Thanks for the input everyone.