BNO086

I have hooked up my new BNO086 sparkfun sensor ,changed the library to use the on- board fusion engine and have been going through the examples. All seems fine except the Magnetometer readings.
I live near London so if I point the sensor directly North I am expecting:
Mx (North) Positive value, indicating the magnetic field strength pointing north.
My (East) Small positive or negative value, depending on local magnetic variations.
Mz(Down) Negative value, indicating the magnetic field strength pointing downwards (into the Earth).

I have calibrated the sensor using the calibration sketch and the accuracy is recorded as ‘HIGH’
I typically get readings of:
-23, 0.5, -37
So the Mx reading is in completely the wrong direction and in comparison to the Mx strength the Mz value is too high.
I have gone through the process of Calibation several times without much change.

Do I have a duff sensor?

The bit about changing the library to use the fusion engine is wrong and refers to another sensor I have been playing with. I do not seem to be able to edit my posts!

After further research a find that the angle of inclination is 66deg. That means that the vertical component should be 2.2 times the horizontal component ie the z reading is too low or the x reading is too high. The fact that it the x reading is in the completely wrong direction remains.

What did you use for the calibration routine?
How is the sensor oriented/mounted? Are you moving it?

I used your calibration example to calibrate.
The module is ‘free standing’ ie it is attached to my Esp32 by the wires from the i2c connector and 2 further wires from the int and reset pins. It is sitting flat on my table as far away from iron as possible it is more or less lined up NS given by my compass with the X arrow on the module facing north. The inclination in my area is 66 deg so I am expecting a minus value for the Z axis and a positive value of approximately 0.44* (abs(Z axis value)).

It is stationary as I measure the values given

Not being able to edit one’s own replies is a pain. If you were asking how I moved it to calibrate I tried to move it so it faced in all directions and of roll pitch and yaw. I have redone the calibration without significantly changing the results.

It sounds like either it something went wonky, or it was flipped around, or there was something nearby influencing the local EMF…this comes highly recommended by another user 04. FreeIMU Calibration · mjs513/FreeIMU-Updates Wiki · GitHub

You can also grab a magnet with a known field-strength and characterize/normalize things further

Note: it just being negative is easily fixed in code if you just want it work

Note on edits: it’s bc you’re new and the system puts you on probation…some bots post a thread and a week later
it’s become an ad for XYZ

There certainly is no strange magnetic field. I can put my compass exactly where the module was and it reads correctly. Thank you for the link which I will use when the IMU is put into the robot which I am building - but it will not be this imu! It is getting replaced. obviously I can put a minus sign in front and forget it but that is just storing up problems for the future. I have several other problems understanding the use of this module but that should be the subject of a seperate post.
Alan

Wires, walls,…all kinds of stuff can have induced EMF that wouldn’t throw off a compass

Are you following the guide? Introduction - SparkFun VR IMU Breakout - BNO086 (Qwiic) Hookup Guide

Yes I followed the guide and looked at all the examples.
If the module is as sensiive as you say then I would have seen significant differences as it moved around my desk. I did not. In addition testing the ICM20948 in the same spot showed no such problem. No matter, the replacement IMU is on its way and I will let you know. I will shortly start a new post to ask some questions about the ICM20948 which has its own unique set of problems but I want to read the documents properly first.

Ah, gotcha - you can head over to Return Policy - SparkFun Electronics if purchased from us (contact vendor if purchased elsewhere) to get a replacement unit