Unfortunately, the hmc5883 was included in the gps module and it comes with a shielded cable and it is not possible to remove the hmc5883. The exposed was already very short and had to be further shortened to connect the third compass (mmc5983ma) and now there is no more wire of the hmc5883 and this is why I am unable to remove the HMC5883 from the system.
I still donât understand, why it is impossible to disconnect the HMC5883 just for a quck test. For such a small test you donât need a GPS at all so you can remove the GPS and the HMC5883.
Also on I2C bus it is not a good idea to have on ALL nodes pull-upâs. Only one pair of pull-upâs is on so short systems recommended. If more pull-upâs are used, they are all in parrallel. So the the pull-up resistor is decreasing and the node signal current is increasing. This can destroy either destroy the output stage or overload the signal current source.
At this point I suspect a broken wire since arducopter is usually not the issue. I will test all wiring and report back asap
Edit: wiring has been tested there is proper continuity between the compass sda and scl and the i2c port.
This suggests that the either the compass is defective or there is some software error. The chances of the compass being defective are very thin since it powers on and doesnât heat up and is also brand new.
Voltage for compass is 3.29v
It accept 3.3v and has never been given 5v
I took some help from ai and in the hwdef of pixhawk1 it says probe for two mags and there isnât and definition for the mmc5983ma compass. According to ChatGPT, this means that the driver wonât be compiled into the firmware. I donât know if this is true but if this is true then how do I fix it?
I added the MMC5xx3 compasses and produced a new build. Download your new firmware from this link:
If you need any other options like bdshot or other drivers, youâll have to learn how to use the custom firmware builder. Itâs incredibly easy. https://custom.ardupilot.org/
and click the Docs link at top right.
I have already used the custom firmware builder. I added the mmc compass. Built the firmware yesterday and flashed it to the pixhawk
I used pixhawk1 board and added ibus telem which I also needed.
I disabled many other not needed compass models using the compass disable mask in params, but did not disable mmc5xx3 and the other mmc3 series and ist8310 and ist8308 and HMC qmc family compasses
I saw the code âAP_COMPASS.CPPâ and it includes the mmc5983ma library in the dronecan compass section. does this mean that dronecan needs to be enabled for the compass.cpp to include the mmc5983ma driver?
I would extremely grateful if you or some other dev can build the firmware. I have zero experience with coding in this stm language and thus it would be very difficult for me to do so.
If possible, please include ibus- telem feature too.
The board is a pixhawk1. I need copter 4.6
3
I understand this a volunteer comunity and everyoneâs time is very valuable.
Thank you for considering my request
Also, is the modification needed only in my case or is this an issue that would come up with every mmc5983ma compass?
If the latter is the case, should there be a pull request for this?