Fail to calibrate Chinese compass

I’ve been trying to install Chinese compass QMC5883L to my APM with Arducopter 3.2 firmware , I ran compos test sketch in the library and notice it didn’t initialize. After tracking the issue I’ve notice init() function not work correctly because it’s return unsuccessful flag for rest of operation, then I’ve notice there are following parameters which is base on well known HMC5843 compass whereas its not compatible with this Chinese compass
uint16_t expected_x = 715; uint16_t expected_yz = 715; float gain_multiple = 1.0; float calibration[3];
so I’ve bypassed it in the way that init() function always return successful flag & calibration[3] array is always equal to 1, then compile and upload the firmware into hardware and have tried to config my compass through mission planner , after the calibration procedure, mission planner stated my compass successfully calibrated but when I’ve tried to arm my quadcoper it repeatedly alarm that compass too bios or fail , I repeated calibration procedure couple of times but the drone didn’t arm so I’m guessing I kinda need to consider calibration into account which is fundamentally need to know correct value of
uint16_t expected_x = 715; uint16_t expected_yz = 715; float gain_multiple = 1.0;
unfortunately I couldn’t find any clue in its data sheet so really appreciated for any hint
compass library located here


Things would be simpler if you would upgrade your hardware, this sensor is now available on this software release:

1 Like

thanks @ppoirier but unfortunately right now , upgrading the hardware is not possible for me , so I’m kinda stuck to this old hardware and I think if I know how to guess initial value it will probably rescue me

Are you aware that ArduCopter 3.6 supports newer hardware that costs only 20€?
What is your excuse for not being able to update the FIrmware?

1 Like

please, I’m kindda unable to provide new hardware , and I paid much for my older hardware and I think its powerful enough to run my low cost drone and if I could find the correct initial values I able to fly my drone , hence new hardware is not my option