0

BNO055 doesn't work
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

Re: BNO055 doesn't work

by adafruit2 on Tue Nov 17, 2015 9:46 pm

i tested both - they're both fried. we sell a *ton* of these, we test each one before shipment and they work great then and for just about every customer, and you have 2 or 3 broken ones...so its something with your setup. for your sanity, we suggest a different chipset! :)

adafruit2
Site Admin
 
Posts: 17498
Joined: Fri Mar 11, 2005 7:36 pm

Re: BNO055 doesn't work

by bruceammons on Tue Nov 17, 2015 10:02 pm

Yeah, that is what I decided. I just can't figure out what might have fried them. It is strange that the one I have now is behaving the same way as the second one - they both got fried the same way. Perhaps your board design just doesn't work with my hardware, although I can't come up with a reason why. Is there a circuit diagram for the board somewhere?

Kind of disappointing, because this looks like a great IMU chip. Any advice on the next best chip that doesn't cost a lot? I can do the fusion math if I have a good chip that gives me the three sensors.

Thanks,

Bruce

bruceammons
 
Posts: 21
Joined: Sat Oct 17, 2015 11:09 pm

Re: BNO055 doesn't work

by adafruit2 on Tue Nov 17, 2015 10:14 pm


adafruit2
Site Admin
 
Posts: 17498
Joined: Fri Mar 11, 2005 7:36 pm

Re: BNO055 doesn't work

by gammaburst on Thu Dec 31, 2015 12:52 pm

Is any more info available on this issue? I experienced almost identical failure, including 0x6E bytes when attempting to read registers. I'm using entirely different hardware (an FPGA board) and my own I2C firmware (works fine with other devices). I too overlooked the need for clock stretching and didn't enable it until I saw the BNO055 acting weird and pulling SCL low. I'm guessing my incorrect I2C handshake accidentally sent an undocumented command that bricked the BNO055. Maybe it wrote to flash.

I ordered two more Adafruit boards. That'll take a few days.

Does anyone know how to use the BNO055's bootloader to rewrite/update its firmware? Maybe that would correct the problem. I may try asking a Bosch applications engineer. Adafruit tied nBOOT_LOAD_PIN high, but I can get to it under a microscope.

By the way, Adafruit pulls down PS0 and PS1 with 10K resistors, so the voltage is about 0.7V. The Bosch quick start guide says don't do that, use zero ohms instead.

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

Re: BNO055 doesn't work

by adafruit2 on Thu Dec 31, 2015 1:05 pm

i2s clock stretching is what seems to be causing incompatibilties.

adafruit2
Site Admin
 
Posts: 17498
Joined: Fri Mar 11, 2005 7:36 pm

Re: BNO055 doesn't work

by bruceammons on Thu Dec 31, 2015 2:06 pm

It isn't the clock stretching. I had it implemented from the beginning for my second and third boards, and it still didn't work. My only guess is that there was a slight power surge when I turned on the myRIO that messed things up. I just had to give up on this board.

Bruce

bruceammons
 
Posts: 21
Joined: Sat Oct 17, 2015 11:09 pm

Re: BNO055 doesn't work

by gammaburst on Sun Jan 10, 2016 8:24 am

I received two more BNO055 boards. They are working fine with clock stretching enabled. Yay!

My first board is still bricked and drawing over 50mA. I will investigate further.

Bruce, I suggest checking your I2C controller to be sure it supports clock stretching on *all* clock cycles. I heard that some I2C controllers are deficient. I observed the BNO055 sometimes stretching the first data bit, the ack/nak bit, or the stop condition.

The BNO055 data sheet identifies nBOOT_LOAD_PIN as input/output and recommends a 10K pullup. Adafruit ties it to 3.3V. I wondered if my bricked board was sucking 50mA because the chip was trying to pull down that signal, so I cut the pin free and installed a 10K pullup, but no that wasn't the reason. I tried pulling down the signal to see if my bricked chip would go into bootloader mode or behave differently, but it seemed to have no effect.

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

Re: BNO055 doesn't work

by FSchneider on Tue Sep 05, 2017 8:52 am

I know it has passed almost two years but I am finding similar errors in two different setups:

The first one is a custom board that I have project myself, following all the instructions on BNO055 datasheet and all the proper design rules. The second is the Adafuit BNO board. The firmware that I am running is an adaptation of Adafruit BNO library since I am running an ATSAMC21 (using ASF).

For both, I am making the proper configurations but when I tried to set up the external XT, the boards only return zeros. If the internal XT is being used, the board works properly, but if I turn it around, the BNO stop sending data and just ignore the clock line.

I am now trying to find out what is the problem, but if you have found a solution, could you share?

Thanks, Felipe.

FSchneider
 
Posts: 2
Joined: Tue Sep 05, 2017 8:44 am

Re: BNO055 doesn't work

by FSchneider on Tue Sep 05, 2017 9:42 am

Well, few more hours of work and it seems to be a problem of clock stretching, like you guys have mentioned before.

For who is familiar to ASF, we must make the config_i2c_master.buffer_timeout bigger when setting the I2C configuration.

The communication still not perfect, but it is already better.

FSchneider
 
Posts: 2
Joined: Tue Sep 05, 2017 8:44 am

Re: BNO055 doesn't work

by bruceammons on Tue Sep 05, 2017 10:24 am

My problem ended up being using 5V power on the adafruit board. If you use 3.3V power, everything works fine, I think. And clock stretching, of course.

Bruce

bruceammons
 
Posts: 21
Joined: Sat Oct 17, 2015 11:09 pm

Re: BNO055 doesn't work

by Fluctlight on Tue Mar 13, 2018 8:05 am

@bruceammons, is there any chance you could upload your LabVIEW code for the myRio here, elsewhere, or email it to me? I'd like to take a look at how you implemented it. You can send it to fluctlight1@outlook.com (hopefully posting emails isn't against the rules).

Fluctlight
 
Posts: 1
Joined: Tue Mar 13, 2018 7:55 am

Re: BNO055 doesn't work

by Ppaing126 on Fri Oct 19, 2018 5:32 pm

Hello,

I just want to confirm the same situation: After being played with a couple of BNO's sending multiple times the base address only (no register write, issuing a STOP condition), now the BNO throws $6E at page 0, register 0x00. it should read $A0 but it reads $6E and if you keep reading, it shows other different values until it keeps the clock pulled down. then it does not read anything. I have tried to turn off-on, using the reset pin, but none fixes it.

I took another BNO, repeated the same I2C data bursts, now I have TWO non-working BNO055's.
It is clear the BNO someway took the I2C data and did something undocumented to it's own flash space maybe?

I have a 3rd BNO, this time I did not repeated the procedure; I just send the base address and the register as documented (with same master hardware) and it works as expected.

Is there a firmware replacement available, or some unbrick procedure for this two BNO's ?

Ppaing126
 
Posts: 8
Joined: Mon Jun 19, 2017 12:58 pm

Re: BNO055 doesn't work

by gammaburst on Fri Oct 19, 2018 7:10 pm

Your BNO-bricking experience sounds similar to mine in 2016 (see several messages ago). Thanks for the confirmation. Bummer you now have two dead units. If you have SMD rework tools, Mouser sells the BNO055 chip for about $10 in small quantity.

I never found a way to unbrick my BNO. I eventually unsoldered it from its breakout, cut some traces, and installed a Hillcrest BNO070 to see how well that version worked (I think it's the same chip with different firmware). Hillcrest has since discontinued the BNO070 and now sells the BNO080 and BNO085.

My bricked breakout drew excessive current from the power supply - about 50 mA instead of about 12.5 mA during normal NDOF operation. The BNO chip got slightly warm.

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

Re: BNO055 doesn't work

by Ppaing126 on Fri Oct 19, 2018 11:09 pm

Thanks! In fact that is a good idea.
I have the SMD reworking station but not have been think on that possibility. I spent the whole day with the DSO and timing chart trying to understand why the clock remained pulled down after 10 or 15 register 0x00 reads. Not sure if I can work with such part size :D

A new look to the BNO registers page; in fact it show some register ranges as "reserved". One idea is to read all those registers from the good BNO and try to write it to the two bricked parts. Not sure if it will accept the writes as behaves erratically. The bricked parts still can be found at 0x28 address. Well.. if there is time, this is something to play with.


I bought a couple of BNO080 but still not familiar with the registers mapping and communication. Looks complicated for me all that about SHTP.

Ppaing126
 
Posts: 8
Joined: Mon Jun 19, 2017 12:58 pm

Re: BNO055 doesn't work

by gammaburst on Sat Oct 20, 2018 4:15 am

The Hillcrest BNO080 communication protocol seems overcomplicated to me, and its documentation is difficult to follow. I managed to get good quaternions out of it, but now another forum member has figured out even simpler minimal code and has kindly shared it. You might like it too: viewtopic.php?f=8&t=140702&p=695836#p695836

My bricked BNO055 was totally unresponsive, dead I2C. I must have bricked it harder than yours.

I'd be (pleasantly) surprised if simply rewriting the reserved registers unbricks the device, but give it a try! You might find this helpful: a screen photo of my BNO055-FPGA real-time status display. It shows all 256 registers with the reserved ones in yellow.
Attachments
IMG_1675a.jpg
Screen photo of my BNO055-FPGA status display showing data values and all 256 registers
IMG_1675a.jpg (307.21 KiB) Viewed 28 times

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

Please be positive and constructive with your questions and comments.