Calibration of the Bosch BNO055 IMU (interfaced with ATmega32U4)

Go To Last Post
8 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hello guys,

I have interfaced the Bosch BNO055 IMU with the ATmega32U4 to get the orientation data in 3D. I transfer this data wirelessly via the Nordic Semiconductor's nRF24L01+ module. I am relying on the onboard sensor fusion algorithm (NDOF mode).
Before we start reading the data, we must ensure that the individual sensors (Accelerometer, Gyroscope and Magnetometer) are calibrated.

To calibrate:

Accelerometer - Hold the imu in each axis for 1-2 seconds.

Gyroscope       - Keep the IMU still for a few seconds.

Magnetometer - Draw a figure-8 in 3D.

 

The calibration status can be read from the CALIB_STAT register of the BNO055. A score of 'zero' means no-calibration and a score of '3' means full calibration.

I followed the above steps for the following two setups:

 

1) Breadboard prototype:

 

In the above setup, after the calibration process, the accelerometer and the gyroscope reach a full calibration and stay stable. The magnetometer never reaches its full calibration.

Yet, I am able to get stable Roll, Pitch and Heading data from the onboard sensor fusion.

 

2) Custom PCB:

 

The above PCB was designed based on the breadboard prototype. After calibration, only the accelerometer is fully calibrated. The gyroscope and the magnetometer remain at zero'.
I am only able to get stable readings for Roll and Pitch. The magnetometer readings run haywire. It's constantly incrementing/decrementing.

 

Questions:
1) In the prototype setup, why am able to measure good heading values even though the magnetometer is not calibrated.

2) Why I am not able to calibrate the gyro in the PCB setup?

3) What do you think about the interference of the nRF24L01+ module with the magnetometer?

4) What is up with the magnetometer readings in the PCB setup? Why is it running haywire?

 

Any help or pointers appreciated :)

This topic has a solution.

Regards,
Frederic Philips

Last Edited: Thu. May 23, 2019 - 12:27 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

1.) The magnotometer can still stabilize the gyro even if it doesn't have good calibration to the real magnetic north pole.  The "heading" at that point is really just "yaw" without a good reference to North.  

 

2 - 4.)  Good luck :/

 

 

That chip is downright cool, but it's a bit of a bear at times with it's startup.  In general the compass will be extremely sensitive to local currents and electrical interference and if it can't ever settle down, then the gyro can't either because that's the gryo's crutch against drift and noise.

Last Edited: Fri. Nov 2, 2018 - 04:29 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

It looks like the "compass" is in the near field of the radio!  try putting the radio connector coming out the bottom of the board so the radio is pointing out the other way and see if that helps.

 

Jim

 

Click Link: Get Free Stock: Retire early! PM for strategy

share.robinhood.com/jamesc3274
get $5 free gold/silver https://www.onegold.com/join/713...

 

 

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi Jim,
The position of the radio doesn't seem to matter. I tried extending it using wires away form the IMU and the PCB, but still the same result.

Regards,
Frederic Philips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

In that case, its back to the drawing board, to move it as far away from the mpu, or perhaps to the other side of the board.

What does the datasheet say about placement?

 

Jim

 

Click Link: Get Free Stock: Retire early! PM for strategy

share.robinhood.com/jamesc3274
get $5 free gold/silver https://www.onegold.com/join/713...

 

 

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi Jim,

I have attached the BNO055 guide for sensor mounting. As you can see I have followed all the basic rules. But I am having a bit of thought about the power line connected to the BNO. This 3.3V supply line is also shared with the nRF radio and might cause fluctuations when the packets are transmitted? Will having a dedicated voltage regulator for the BNO help?

Attachment(s): 

Regards,
Frederic Philips

This reply has been marked as the solution. 
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi Everyone,

Sorry for the late update. The problem was a faulty BNO055 IMU chip. The calibration problem was solved by replacing the defective IMU. On the other hand I am not sure how the IMU became kaputt.

Regards,
Frederic Philips

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

fredphil wrote:
On the other hand I am not sure how the IMU became kaputt.
Common are EOS and shock.

From a very cursory look at its datasheet for absolute max :

  • MechShockfreefall, 1.8m max
  • ESDHBM, 2kV max

A nearby EMP event (air discharge ESD) can destroy electronics; (though not EMP) likewise by the 2W transmitter in a mobile phone.

A nearly 2m freefall onto pavement is common.

BNO055 Intelligent 9-Axis Sensor - Bosch | Mouser

Ouch!

 

"Dare to be naïve." - Buckminster Fuller