0

BNO055 doesn't work
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

BNO055 doesn't work

by bruceammons on Sat Oct 17, 2015 11:10 pm

I purchased a BNO055 breakout last week. I was trying to test it this
weekend and it doesn't appear to work. It seemed like there was a brief
period where it was working, but since then it is dead.

Using a scope, I verified it is getting the SDA signal, but the SCL signal
is dead. Reversing the wires doesn't change anything - the error stays with
the input terminal.

I found a similar problem on the forum "BNO055 Stopped Working" which
indicated the board had a problem. I think I have the same problem.

I checked the voltages, and they are about the same as the ones in the forum
post. Is there anything else I can check?

I would like a replacement board. What do I need to do to get one?

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

Re: BNO055 doesn't work

by franklin97355 on Sun Oct 18, 2015 12:56 am

Could you post large, clear, detailed pictures of both sides of your board and the connections to it? Pictures should be less than 1meg in size. 800x600 works well. What are you using to drive the board and when it is not connected do you get SCL signals from it?

franklin97355
 
Posts: 19211
Joined: Mon Apr 21, 2008 2:33 pm
Location: Lacomb, OR.

Re: BNO055 doesn't work

by bruceammons on Mon Oct 19, 2015 12:29 am

Pictures wouldn't do much good. It looks just like the board in the product advertisement.

I am trying to talk to the board using a myRIO from NI. I have successfully used the same software to talk to a MPU6050 board before, so I know that works. I changed the device ID, of course.

I used the four connections that are used in the product discussion. Gnd, 5V power, SCL and SDA. Looking at the circuit board, I could follow the traces and verified continuity with my meter from the terminals on the myRIO to the resistors on the circuit board. This verifies the connections are all good.

If I disconnect the wires, I do not get signals out of the myRIO. From what I understand, it requires the pull up resistors on the board end to produce the signal. When the wires are connected to the board, I can see the SDA signals on my scope, so I know my device works. Like I said, if I connect the SCL signal to the SDA input, I can see the clock signals. It is very clearly the SCL input on the board that is having the problems.

Bruce

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

Re: BNO055 doesn't work

by franklin97355 on Mon Oct 19, 2015 1:34 am

It looks just like the board in the product advertisement.
Then you need to solder pins to it. If you add a pull-up to your processor do you then get SCL?

franklin97355
 
Posts: 19211
Joined: Mon Apr 21, 2008 2:33 pm
Location: Lacomb, OR.

Re: BNO055 doesn't work

by bruceammons on Mon Oct 19, 2015 11:35 am

I do have a terminal block with screws soldered where the pins usually go. This makes it easier to connect and disconnect the wires. I have double checked my soldering and verified continuity through it to the resistors on the board.

When I move the SCL signal over to the SDA terminal, it works fine and I can see it on my scope. This verifies I am sending the signal correctly. When I am running my program, I see the correct SDA signal on my scope, but the SCL signal is a constant zero volts.

Bruce

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

Re: BNO055 doesn't work

by franklin97355 on Mon Oct 19, 2015 12:17 pm

I would still like to see pictures.

franklin97355
 
Posts: 19211
Joined: Mon Apr 21, 2008 2:33 pm
Location: Lacomb, OR.

Re: BNO055 doesn't work

by bruceammons on Mon Oct 19, 2015 3:29 pm

Okay, here are the pictures.

Bruce
Attachments
IMG_0031.JPG
BNO055 Back
IMG_0031.JPG (88.43 KiB) Viewed 668 times
IMG_0032.JPG
BNO055 Front
IMG_0032.JPG (101.12 KiB) Viewed 668 times

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

Re: BNO055 doesn't work

by adafruit_support_bill on Mon Oct 19, 2015 4:40 pm

Using a scope, I verified it is getting the SDA signal, but the SCL signal
is dead.

The master (your processor) drives the SCL line, If you are not seeing SCL, it is not a problem with the BNO055.

adafruit_support_bill
 
Posts: 70037
Joined: Sat Feb 07, 2009 10:11 am

Re: BNO055 doesn't work

by adafruit2 on Mon Oct 19, 2015 4:49 pm

The BNO055 is weird in that it uses 'clock stretching' in I2C. if your processor doesnt have clock stretch support, it will not work with the BNO055. Most do! but sometimes you get a processor that does not

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

Re: BNO055 doesn't work

by bruceammons on Mon Oct 19, 2015 5:18 pm

I am running the clock slowly to make sure timing is not an issue. I have tried a few different speeds and none have worked. It seems like I would still see the clock signal pulse occasionally, but I don't. I am pretty sure I am meeting all the timing requirements listed in the chip datasheet. I still think the board is defective.

Bruce

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

Re: BNO055 doesn't work

by bruceammons on Mon Oct 19, 2015 7:16 pm

The SCL signal does work if I connect it to the SDA input, so I know I am sending it correctly from my side. Either the BNO055 is holding that line at 0 V, or there is something wrong with the input.

I tested the clock just below 400 kHz and at 100 kHz, which should be plenty slow enough for the clock to work properly, even if it is using clock stretching.

Bruce

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

Re: BNO055 doesn't work

by bruceammons on Mon Oct 19, 2015 10:28 pm

I did some more testing, and I found out that I could write one or two times with a clock signal before it dropped low and stayed there.

I checked my driver, and it didn't support clock stretching. I added the support for it, and it appears to help. Now it appears that I can send a large number of messages without the clock dying. I am not getting back usable data yet, but I am working on that.

It looks like you were right about the clock stretching. I am impressed that you were able to identify the problem.

Thanks,

Bruce

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

Re: BNO055 doesn't work

by bruceammons on Tue Oct 20, 2015 6:47 pm

Okay, now I found a new problem. It took a digital scope to figure it out.

Whenever the SDA line is high, it pulls the SCL line high. If I disconnect the SDA line, I get a good clean clock signal. With the SDA signal connected, it looks the same except the clock stays high whenever the SDA line is high.

Any explanation for this?

Bruce

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

Re: BNO055 doesn't work

by adafruit_support_mike on Wed Oct 21, 2015 1:54 am

Check for a short between the wires in the terminal blocks.

The breakout's I2C input uses a level shifting circuit that puts several components between the SDA and SCL lines. You'd have to short a couple of mosfets and fuse a couple of resistors for one to pull the other high along that path.

adafruit_support_mike
 
Posts: 53554
Joined: Thu Feb 11, 2010 2:51 pm

Re: BNO055 doesn't work

by bruceammons on Thu Oct 22, 2015 1:30 am

Okay, I figured out why my waveforms looked wrong. It was just a display issue. The actual waveforms were correct.

Next problem: When I try to write to an address, it looks like it works correctly the first two times. On the third time, it returns a NACK bit on the device address. This keeps happening until it is reset by the read command.

When I try to read from an address, the first time it returns a NACK on the write address (see above) but I get an ACK on the read address. The second time, I get ACK on the write address but NACK on the read address. The third time, I get ACK in all the right places, but the value returned is always the same no matter what address I try to read (01101110 binary = 110 decimal = 6E hex). After that it alternates between NACK on the read address and thinking it worked but always reading the same value.

All the I2C signals and timing look right. Clock stretching can be seen kicking in a few times, so I know that works. Any ideas?

Bruce

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

Please be positive and constructive with your questions and comments.