Asked — Edited

Compass Use I2c On Ezb V 4

Hello all, I am asking if anyone else has used compass guided navigation? I am looking at a Tilt Compensated Magnetic Compass with I2C serial communication. I have never used one ,but I have a feeling in order to make sure my bot is going the correct direction outdoors I will need a compass at the least ( maybe a GPS in the future)

Any feedback is great, reaching out for help here.


ARC Pro

Upgrade to ARC Pro

ARC Pro will give you immediate updates and new features needed to unleash your robot's potential!

PRO
Synthiam
#1  

Tilt compensation is SUPER important. Do not even bother using a compass that doesn't do hardware tilt compensation. And, ensure you can read the datasheet on how to use it, because the documentation might be terrible and it'll just never work.

Where you mount the compass is super important as well. The motors are electro-magnetic, which create a PILE of interference. Wires around the compass will create interference as well. When a mobile phone is designed, there is a significant amount of design and engineering to place the compass and shield from components. There is also software compensation built into mobile phones for static interference - meaning, hardware interference of the PCB/Casing that doesn't change. This is pre-loaded into data tables in flash on the i2c sensor.

#2  

OK so here is the one that others were recommending as a good sensor

It seems to have all the requirements, I am wondering where I will put it since the ezb has a wifi adapter on board, hopefully wifi is outside the rf range that would cause interference.

https://www.dfrobot.com/product-1275.html

PRO
Synthiam
#3  

Yeah - wifi won't cause interference. Magnetic interference is electro-magnetic, so it's things like electricity on wires and electric magnets (motors). The shielding of the chassis may cause a weak/uneven magnetic detection.

PRO
Synthiam
#4  

That product looks very good - given that it has filters and compensation built-in. Nice find

#5  

Alright, understood, I will put the sensor in the head, the highest point away from the electrical wiring, sabertooth and motors, but close to the ezb so I can keep the wires SHORT. I read somewhere else on here that is important.

PRO
Synthiam
#6  

yeah - i2c is a pain in the butt because it needs low interference. Any capacitance on the signal wires causes huuuuuuuuuuge problems. That sensor uses serial UART as well, which is more stable - so you could use that if i2c is causing grief.

#7  

Awesome sauce, I saw that, but I was not sure which was best for the application. Thanks for the help

PRO
USA
#8  

Don't forget the calibration: https://www.youtube.com/watch?v=gB3Tt1eQQLQ

#9  

Thanks ptp, I saw that when I was googling the sensor. It appears to be the 3rd generation which instills a bit of confidence bugs are worked out.

PRO
USA
#10  

it's not clear ...

from DFRobot page:

Quote:

Accuracy - Better than 2%. after calibration

but no calibration info, i found more here: https://www.robot-electronics.co.uk/htm/cmps11i2c.htm