Thank you so much for Fusion 7.
I have questions regarding the influence of hard iron.
On a developed board without an external case, the algorithm works well, but when installed in the case, hard iron prevails. The displacement of the soft iron works correctly, I get a circle, but offset from the center.
there is aluminum holder in the case.
the board contains a source of the DC/DC located at a distance from the magnetometer but close to the aluminum holder.
I assume that due to transients, the algorithm selects the wrong points which are then taken into account in the calculation.
I decided to start the calibration process after a certain time interval, the board is motionless, which allowed me to reduce the number of points of iMagBufferCount 2 versus 12.
after reading the code in fUpdateCalibration, I found the following
iOffset[l] = pthisMagBuffer->iBpFast[l][j][k]; supposably a false value
pthisMagCal->fvecA[l] = (float)((int32)pthisMagBuffer->iBpFast[l][j][k] - (int32)iOffset[l]) * fscaling;
for iCount == 0 we will get 0 (does it affect something?)
further false iOffset[l] applies to all points.
1. it will be worse or better if apply the offset min/ max/middle from all available points?
2. how do i get the right calibration hard iron?
3. the figure shows the fluctuations why they are symmetric?
Have you performed the magnetic calibration after installing in the case? We would like to understand better what you mean when you say: On a developed board without an external case, the algorithm works well, but when installed in the case, hard iron prevails.
It is not clear whether you performed magnetic calibration (hard-iron & soft-iron) without external case and applying measured calibrated offset when installing in the case with aluminum holder in it. Also we need to understand, how you are performing magnetic calibration. Ideally magnetic calibration needs to be performed on the part on the installed case to take care of influence as part of calibration.
I performed two independent tests:
1. calibration algorithm only on the pcb.
2. calibration algorithm of the pcb in the installed case.
calibration is carried out by turning on three axes several times + movement in figure eight.
Please find below the answer from one of our Sensor application engineers.
I tried following Sensor Fusion execution with FRDM-K64F-AGM01 using both the FXOS8700 and FXAS21002:
1. Magnetic calibration with normal test environment:
2. Magnetic calibration with aluminum material on the board (stacked using tape to the board):
Of course there is little variation in the magnetic buffer projections/distributions and slight variation in the fit error %, but I don’t see much variation that show visible impact. These minor variation seen can be observed in multiple run, similar test environments.
I see the data of an uncalibrated MagneticBuffer structure, in my message is attached the fBc data of the MagSensor structure.
if it’s easy for you, could you:
1. add calibrated data (by checking)
2. In the second figure, the soft iron is not calculated.
3. After calibration, rotate 360 degrees and add the result.