Compass QMC5883L doesn't show in ardupilot, but work with betaflight

Problem:

  • Compass module QMC5883L isn’t detected in ardupilot.

Information:

  • First.Gps part of the M10Q-5883 module Matek M10Q-5883 Gps&Compass work fine (use UART4) and the da/cl is wired to sda/scl pad of my H743-HD H743-HD Specs and infos.
  • Also, I conclude the QMC5883L isn’t defective, because I can use it with an arduino and with betaflight.(GitHub link)
  • The gps module work with the flight controller and compass work with an arduino/betaflight. So it’s a communication problem.
  • Image available on this reddit post: Reddit post

Question:

  1. How can I see if the I2C work on my flight controller? (just have bunch I2C modules, but none are made for drones)
  2. Is this a params issue?
  3. If the I2C fonction is defective on my board, can I convert I2C to UART?

Thank you for your help.

This sounds like it may be a wiring problem. Or a parameter problem.

Check that your serial port setting (SERIAL_PROTOCOL) parameter setting is fir the serial port that the GPS is actually wired to .

Try flashing 4.4.0-beta3 and see if it’s recognized.

I tried 4.4.0-Beta3 but still nothing :


The I2C and UART wiring is good. The gps work perfectly, but not the compass inside the M10Q-5883 module.

I have two of these and both work fine, so it is a problem with your config.

Try the -bdshot target and see if that works any better

I only see a Bdshot version for the Skystars FC.

What do you mean by:

?

Is Bdshot a ecs protocol or something else?

Do you talk about H743-HD and M10Q-5883.
If your talking about this combination, can you link your params file?

I don’t know if it’s helpful.

LOGS:

2023-07-31 2:28:09 PM : PreArm: Compass not healthy
2023-07-31 2:28:09 PM : PreArm: 3D Accel calibration needed
2023-07-31 2:27:41 PM : ELRS: Link rate 500Hz, Telemetry rate 125Hz
2023-07-31 2:27:38 PM : PreArm: Compass not healthy
2023-07-31 2:27:38 PM : PreArm: 3D Accel calibration needed
2023-07-31 2:27:36 PM : ELRS: Link rate 500Hz, Telemetry rate 154Hz
2023-07-31 2:27:32 PM : u-blox 1 HW: 000A0000 SW: ROM SPG 5.10 (7b202e)
2023-07-31 2:27:31 PM : ELRS: RSSI now displays normally
2023-07-31 2:27:31 PM : ELRS: Link rate 150Hz, Telemetry rate 65448Hz
2023-07-31 2:27:31 PM : RCInput: decoding CRSF(3)
2023-07-31 2:27:18 PM : GPS 1: detected as u-blox at 230400 baud
2023-07-31 2:27:15 PM : EKF3 IMU0 tilt alignment complete
2023-07-31 2:27:14 PM : AHRS: EKF3 active
2023-07-31 2:27:14 PM : EKF3 IMU0 initialised
2023-07-31 2:27:12 PM : CRSFv2: requesting RX device info
2023-07-31 2:27:12 PM : Frame: QUAD/X
2023-07-31 2:27:12 PM : RCOut: PWM:1-8 NeoP:9
2023-07-31 2:27:12 PM : SkystarsH7HD-bdshot 0048003B 34325106 31313336
2023-07-31 2:27:12 PM : ChibiOS: 1ec9f168
2023-07-31 2:27:12 PM : ArduCopter V4.4.0-beta3 (3c4abe46)
2023-07-31 2:27:12 PM : Frame: QUAD/X
2023-07-31 2:27:12 PM : RCOut: PWM:1-8 NeoP:9
2023-07-31 2:27:12 PM : SkystarsH7HD-bdshot 0048003B 34325106 31313336
2023-07-31 2:27:12 PM : ChibiOS: 1ec9f168
2023-07-31 2:27:12 PM : ArduCopter V4.4.0-beta3 (3c4abe46)
2023-07-31 2:27:12 PM : RCOut: PWM:1-8 NeoP:9
2023-07-31 2:27:12 PM : AHRS: DCM active
2023-07-31 2:27:12 PM : ArduPilot Ready
2023-07-31 2:27:11 PM : Frame: QUAD/X
2023-07-31 2:27:11 PM : RCOut: Initialising
2023-07-31 2:27:11 PM : SkystarsH7HD-bdshot 0048003B 34325106 31313336
2023-07-31 2:27:11 PM : ChibiOS: 1ec9f168
2023-07-31 2:27:11 PM : ArduCopter V4.4.0-beta3 (3c4abe46)
2023-07-31 2:27:11 PM : Barometer 1 calibration complete

M10Q-5883. Try the version here: ArduPilot firmware : /Copter/latest/SkystarsH7HD-bdshot - it’s possible you are running into a DMA conflict I suppose.

run the i2c scanner script to see if its being detected by ardupilot. It should show up on the messages.

I’m not able to run script, because I can’t find SCR_ENABLE params. This board has 2MB flash (right? Specs link), so why I can’t run script?

I guess you are right.
When connect to an arduino or with h743-hd(Betaflight) it run well, but not with ardupilot. I will retry betaflight to see if the module still work.

Use the custom Firmware builder and enable it. It appears to be disabled by default. Or maybe there is good reason for that…
The QMC5883L is enabled so it’s something else.

which parameter do I need to select to enable scripts?

The one that says LUA scripting?

Builder

I don’t see in , am I in the right site?
Screenshot 2023-07-31 211625

Yes. When I click your link, select Latest, the Skystars board and go to Other it’s right there.