Hello,
I am working with the Bosch BMM350 magnetometer and observing unusually high magnetic field readings on one PCB, while another PCB with the same schematic and firmware behaves normally.
Observed behavior
Output values are assumed to be in µT
Raw compensated readings (example):
mx ≈ +246 µT
my ≈ +236 µT
mz ≈ −27 µT
Magnitude:
∣B∣=mx2+my2+mz2≈340μT
On a second PCB:
|B| ≈ 40–60 µT, as expected for Earth’s magnetic field
What has been checked
Same firmware, same API usage, same environment
Communication verified, no obvious I2C issues
Temperature compensation working
Nearby power inductor was removed, but readings did not change
No strong dynamic current-related variation observed
Calibration attempts fail or are unstable (ellipsoid fit issues on both pcbs)
Questions
Can bmm350_hal_read_compensated()output be confirmed as µT?
Can the BMM350 retain a persistent magnetic offset after exposure to a strong field, even if the source is removed?
Is calling BMM350_magnetic_reset_and_wait()recommended after assembly or suspected magnetic shock?
Besides inductors, are ferrite beads, shield cans, connectors, or PCB assembly effects known to cause offsets of ~300 µT?
Is such a large static offset realistically recoverable via calibration, or should the PCB be considered magnetically unsuitable?
Any guidance would be appreciated.