Due to high demand expect some shipping delays at this time, orders may not ship for 1-2 business days.
0

BNO055 Calibration & stops responding in forward motion
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

Re: BNO055 Calibration & stops responding in forward motion

by PaulRowntree on Tue Apr 11, 2017 7:23 am

Thank you gammaburst! Will try it tonight.

PaulRowntree
 
Posts: 391
Joined: Sun Apr 03, 2016 12:41 am

Re: BNO055 Calibration & stops responding in forward motion

by skypuppy on Tue Apr 11, 2017 12:16 pm

If we don't use the BNO's internal processor, then we lose any advantage it has over the other, similar MEMS IMU's. Sadly, I see no other recourse either, since the <censored> <censored> Boschmen won't correct the problem OR publish the source and allow us to do so. Bah.

skypuppy
 
Posts: 44
Joined: Wed May 28, 2014 6:00 pm

Re: BNO055 Calibration & stops responding in forward motion

by jps2000 on Thu Jun 29, 2017 2:47 pm

I recommend to switch to BNO080 which I found performing much better
here
https://github.com/jps2000/BNO080
you find a small arduino sketch that handles the new interface with just a few lines of code.
Chips and Breakout boards are available from hillcrest now
Main advantage (beside other features) of the 80 is the improved accuracy (in particular no runaway of angles during continuous movement), the easy calibration control and the very useful tare function.
you get quaternions up to 400Hz !

jps2000
 
Posts: 614
Joined: Fri Jun 02, 2017 4:12 pm

Re: BNO055 Calibration & stops responding in forward motion

by skypuppy on Thu Jun 29, 2017 3:12 pm

Does the -080 continue to function and stay in cal when you're going faster than 12 mph or so???

skypuppy
 
Posts: 44
Joined: Wed May 28, 2014 6:00 pm

Re: BNO055 Calibration & stops responding in forward motion

by jps2000 on Thu Jun 29, 2017 5:41 pm

with cal you mean "3" = high accuracy?
I have not tried it outside a car for example. For correct heading you need a functioning compass and that has to do with somehow undistorted magnetic field. Any change in soft or hard iron may cause problems. you know that.
A linear movement even with high acceleration is not the problem as long as the magnetic field remains constant
The main improvement of the 80 is that you can do calibration as in the 55 then you can store the data in the flash and switch further background calibration from acc and gyro off. Mag may stay on in case you leave the room etc.
It was one of the 55 problems (I assume) that during fast movements the internal calibration continued and got sometimes puzzled. In the 55 you cannot get rid of those cal activities.
I never got a hangup neither in the 55 nor in the 80
Reamark There is also nice reporting of the heading error when using quats

Can you describe me your application?

jps2000
 
Posts: 614
Joined: Fri Jun 02, 2017 4:12 pm

Re: BNO055 Calibration & stops responding in forward motion

by dkelly on Tue Jul 18, 2017 2:05 pm

jps2000,
Which packaged version of the BNO080 are you using with your Arduino? Are you using the FSM300 ($25), the FSM305 ($50), the BNO0800 Dev Kit ($199), or FSM-9 ($299)?

dkelly
 
Posts: 32
Joined: Tue Jul 11, 2017 9:44 pm

Re: BNO055 Calibration & stops responding in forward motion

by jps2000 on Sat Jul 22, 2017 2:01 pm

I use my own PCB.
I would recommend the FSM300. It is a pretty good offer because its only 5 bucks above the chip alone (at the moment). The 305 does not make sense I think because you can do the calibration yourself and store the result in flash easily. You need to do this in the final environment anyhow because mounting position may be affected by ferrous and or magnetic materials. Note that you need additionally a level converter for the I2C bus in between in case the Arduino runs on 5V.
Something like this https://www.adafruit.com/product/1875

jps2000
 
Posts: 614
Joined: Fri Jun 02, 2017 4:12 pm

Re: BNO055 Calibration & stops responding in forward motion

by jps2000 on Sat Jul 22, 2017 2:18 pm

dkelly,
Just read that you want use the imu in a vehicle. The compass / heading can not work properly in a (iron) car or directly on top of the roof. It is the same like a needle compass. This is a dilemma in general and not deliberately a BNO problem. The interesting thing in the BNO080 ist that it s fusion algorithm outputs a heading error estimation which may be frustrating to see the truth.
It is likely based upon a Hillcrest patents that can be retrieved from the web US020130238268A1, WO002012068359A2, US020130185018A1
You may enyoy the math....

jps2000
 
Posts: 614
Joined: Fri Jun 02, 2017 4:12 pm

Re: BNO055 Calibration & stops responding in forward motion

by dkelly on Sat Jul 22, 2017 2:19 pm

Thx !

dkelly
 
Posts: 32
Joined: Tue Jul 11, 2017 9:44 pm

Re: BNO055 Calibration & stops responding in forward motion

by dkelly on Sat Jul 22, 2017 8:20 pm

jps2000,
My app is not really a vehicle app (although I've been doing some testing with it using my vehicle). It's more of a general purpose GPS/IMU testbed with GPS and accelerometers measurements feeding a Kalman filter. I've just picked up two IMUs, so am ready to try the first (BNO055) out over next few days. This forum has been a huge help as I'm coming up to speed... I appreciate the community!

dkelly
 
Posts: 32
Joined: Tue Jul 11, 2017 9:44 pm

Re: BNO055 Calibration & stops responding in forward motion

by skypuppy on Sat Jul 22, 2017 11:28 pm

dkelly, why would you feed any filters while using the Bosch product? That is it's sole advantage over all the other low-cost MEMS units is that that is (supposedly) done for you inside the BNO chips themselves. IF we can ever get any to work reliably. <heavy sigh>

skypuppy
 
Posts: 44
Joined: Wed May 28, 2014 6:00 pm

Re: BNO055 Calibration & stops responding in forward motion

by jps2000 on Sun Jul 23, 2017 2:56 am

It makes sense to improve the quaternions of an imu by GPS. The main issue in the BNO055 is that despite it works excellent in no/ slow motion and in rather undisturbed geomagnetic field the fused quaternions may freak out unpredictably during fast motion and when calibration is poor.
Note that using Euler output in the BNO055 has a bug so use quaternions to calculate Euler angles
The BNO080 has no Euler output at all

Due to gimbal lock all calculations should be done quaternion based first and only finally converted to Euler angles if needed.

To understand the imu behavior one has to be aware of disadvantages / characteristics of sensors.
The idea of fusion is to compensate best for sensor shortcomings.

The acc react on changing movements ( = accelerations) resulting in vector deviating from vertical. At constant and zero velocities it is ok. A low pass filter may simply remove those deviations. Acc is also sensitive to vibrations per se.

The gyro face drift problems. The output (angular velocity) is not zero at rest. As angles are achieved by integration the error cumulates. However the output has high bandwith i.e. it reacts fast.
The mag is made low bandwith to avoid interference from mains and motors. Geomagnetic field is highly distorted by hard iron ( magnets) and soft iron ( large masses). For example the roof of a car. But also within a building it may happen that geo field is distorted or completely off.

The mag data is mandatory for heading ( compass) If not present / used in the IMU you have to set north direction at start ( Quat = 1,0,0,0) but there i will be unavoidable drift . If mag is poor or fluctuating it can be used to correct the heading preferably during motion as then it is less noticeable.

In case of drones there is also an air pressure sensor that give information about height. It has to be zeroed at ground and needs to be temperature compensated.
A GPS adds information about position, velocity and height with moderate accuracy.
Adding GPS can improve quaternions of the imu and the pressure sensor but it fails for indoor applications.

I invest a lot of time in Madgwicks and Mahoney fusion algorithms ( Kriswiner github) and I even improved it based upon original paper from S Madgwick.
But I never reached the performance of BNO055 ( when working good) or the BNO080.

I conclude that calibration ( and keeping) is of utmost importance for a reliable output. This need to be done in the final environment considering external factors in particular changed (geo) magnetic fields. The BNO´s use undisclosed and hence unpredictable auto calibration running in the background. This can be controlled individually in the 080 but not in the 055. The autocal is advantageous but may cause additional error so switching dependent on circumstances (environmental changes or no movements may improve the results.

jps2000
 
Posts: 614
Joined: Fri Jun 02, 2017 4:12 pm

Re: BNO055 Calibration & stops responding in forward motion

by jps2000 on Wed Aug 23, 2017 2:16 pm

I found now that some of my homemade boards have problems to start or stop responding while others always work satisfactory. It took me more than 2 weeks to trace the problem back to the 32kHz external oscillator. In my case it was a problem with the flux that I used for soldering the BNO. Although the flux is claimed non- conductive (Chipquick SMD4300TF10) it is obviously not enough isolating. In particular when flux remains between the device and the board it is difficult or even impossible to wash it away.
Note that distance between pins is just 0.25mm max and less in case of offset mounting and there is no space between board and device.

I found that the oscillator should start immediately without sending any command (the BNO080 does not run without external XTO). Just the vcc is needed. This might be different in the BNO055 as it is software defines if internal or external crystal is used.

But the complaint "stops responding" may be caused by a stop of the external XTO in some cases.
Also moisture may stop the external XTO in commercial breakout boards. So I recommend to clean the board with isopropanol, let it dry and seal it with appropriate lacquer or wax.

jps2000
 
Posts: 614
Joined: Fri Jun 02, 2017 4:12 pm

Re: BNO055 Calibration & stops responding in forward motion

by skypuppy on Wed Aug 23, 2017 3:54 pm

Outstanding, JPS. Would never have thought of the external circuitry and glue.

skypuppy
 
Posts: 44
Joined: Wed May 28, 2014 6:00 pm

Re: BNO055 Calibration & stops responding in forward motion

by gammaburst on Wed Aug 23, 2017 3:59 pm

Hi jps2000, When you enable the external crystal on your BNO055 (or do you only have BNO080?), do you see any change in device operation, other than the crystal begins oscillating? I don't see any change in the 100 Hz output data rate (typically off by a random one or two percent) or the radiated RF noise spectrum. I short-out the crystal or inject a different frequency and nothing changes. It's as if the internal processor is still using the default internal oscillator. Your experience?

My BNO055 devices all have firmware 0x0311.

Flux contamination - yuch! Sounds like one of those "no clean" acid fluxes.

gammaburst
 
Posts: 553
Joined: Thu Dec 31, 2015 12:06 pm

Please be positive and constructive with your questions and comments.