When I was in debugging mag3110, because our equipment is the on-board equipment, calibration, so unable to manually draw a figure 8 so I want to seek advice, is there any other method of calibration.
Hello 史 大史,
It will be hard to implement the calibration in the hardware because the calibration parameters change depending to the environment. Basically, calibration takes matrix manipulations so integrate it in the firmware. How do you interface with the MAG3110? By the way you can port the calibration to your android project. C & JAVA languages are very closed.
What's your application? What kind of accuracy do you target? We need more information about your project to give you a hand.
our equipment was installed int the car, so it can't to draw 8 to calibration. I know a circle algorithm, can you introduced to me? and send the circle algorithm code to me?
look forward to you apply.
Hi 史 大史,
You can have a look at the NXP Sensor Fusion, we provide a full and open source project for electronic compass.
As the application is embedded in a car, you can NOT run the full 3D compass because you have 2 axis only.
The Sensor Fusion provides different algorithms for electronic compasses and IMUs. In your case, you can use the 2D Automotive Compass which needs a 2D calibration: instead of drawing a 8 it takes only a circle as you mentioned.
Code samples are available on our website.
You have to check the
void fRun_3DOF_B_BASIC(struct SV_3DOF_B_BASIC *pthisSV, struct MagSensor *pthisMag, int32 loopcounter, int16 ithisCoordSystem)
function in the fusion.c file.
If you want to understand the algorithm, I attached a document about magnetic calibration.
The algorithm is based on an ellipsoid (ellipse in 2D) recognition. When the ellipsoid parameters have been extracted, the algorithm transforms the scattershot into a sphere (circle in 2D) with mathematical operations.
Thanks for your kind reply. our project is android, where we can set the calibration code, BSP or HardWare ?
Retrieving data ...