[SOLVED]I2C doesn't work (external compass doesn't work)?

Hello,
My unit : https://artofcircuits.com/product/ublox-neo-6m-gps-built-in-compass-for-apm-flight-controllers

Since day 1 I was failing to calibrate the external compass which is a part of the gps/compass module.

After Googling a lot I’ve seen that there were some reports on the similar issue.

Can you refer me some parameters where the i2c board may be overlapping / already reserved for something else?

I also saw on diydrones that resetting parameters would help to some people. On one YouTube video flashing different os was a solution. It makes sense now because the external mag would stop calibrating at 33 percent. I really want to utilise the external one as it is way further from emf and motors etc.

Btw a side question. My esc’s have built fan coolers (they always run). (brushed). So should i turn on the escs, odroid and its dc converter (companion pc) while calibrating the compasses? Or should i turn them off and once the mag calibration is done shall i turn them on while the motor emf compensation process?

After re-calibration I will run the motor compensation.

I use i2c splitter but i will remove it again (initially i didn’t have it yet external compass didn’t work too).

There are 2 lights on my gps/com module.
Yellow and blue.
Is it a 5V, 3.3V issue? Should i solder 1k ohm resistance to 5v and gnd? (if this unit is designed for apm would it work with pxhw?)

Btw I have seen in dome forums that gps compass modules shall be set on Roll180 because the pcb is 180 rolled? Is it true. How can i know the orientation for sure?

After adresin these issues I’ll tune steering, throttle and pivot turns as well as navigation. And hopefully automode will work well.

Update 1:

Since the calibration stucks at 33 percent, and if I enable both compass the variance error occurs.

I seen than many people had issues with neo 6m module (compass part).

I read somewhere that pixhawk doesn’t support the neo 6m because the compass sensors are the same modules as its internal compass and if there is the same compass on i2c port simply it creates problems. How ever i don’t think this is true.

I think the issue aries from wrong orientation. The makers made it the compass gps module in a bad way for the orientation. We’ll there were sings and i thought the cable entrance must be the backwards.

However after watching the HK’s video I think I may have solved the issue. Will test in few hours. Hopefully it works.

I will write the results since I tired it 100 times and the external compass didn’t respond at all.

I will physically change the orientation like this

I hope that is the only issue why it was stuck at 33 percent during the calibration

HERE is the solution. I did not move the gps.
I just made it roll180 neo 6m compass. no more issues!