avsa242,
Here is one of the programs I used, the Chris Gadd I2C driver, a connection schematic and the experimental Gimbal I made using lego parts.
Calibration takes a while and you have to manipulate the module in several ways as per datasheet.
Try these documents as a starting point. I found the module robust and easy to interface to.
I have several other programs and notes, but they are not available right now, but I may be able to provide them in the future.
Thanks! I will try this sometime this weekend. I want to be sure I'm interpreting the schematic correctly; ADR, INT, PS1, PS0 and RST are left floating?
avsa242,
I have looked at my old notes.
I can confirm ADR, INT, PS1, PS0 and RST are left floating, no connected.
Also, I made a note saying "no protecting resistors on Prop Pins. Does not work with resistors".
Sorry I can't be of more help at the moment. I have a sort of personal virus crisis going on here.
I could not get the BNO055 to work with the Propeller i2c using C code. The BNO055 chip needs clock stretching which is not supported by the i2c library.
I found changing to serial to work though. By placing a wire between 3.3v and PS1 you can switch the unit to UART mode and then it works just fine using full duplex serial communication at 115200 baud.
@macrobeak
Hmmm ok I'll try that...I thought I'd tried them floating as well as connected (IIRC, the datasheet says, e.g., PSx can't be left floating) but I could be mistaken.
@iseries
Thanks, I think I tried UART mode as well but had no luck either, but will re-try.
BTW this is also with two modules...I'd bought one early last year and it was about a month before I had time to try it out (so no returns). I thought I'd tried everything so I figured finally, maybe I had a defective one...I hate coming to that conclusion because I feel like that's almost never the reason something doesn't work, but I bought a 2nd one not too long after, with the exact same results.
No joy with the BNO055_4_0.spin sources above (screenshot attached)...I get about the same as what I get out of a small test app - sometimes the first reg will read back as 6E, then the rest FF. It hangs up the bus most of the time, though. No mention of 6E (e.g., could be an error, etc) in the datasheet. I did find, however, much to my dismay, this thread over on the Adafruit forums. Others with the same or similar symptoms seem to have bricked or otherwise damaged their chips: https://forums.adafruit.com/viewtopic.php?f=19&t=82288
I'm not saying I wasn't somehow responsible for the demise of both of these modules; it's very possible (likely, even, if Adafruit does test all of these as they say they do) but for all the different devices I've tested and written drivers for, I've never encountered one so difficult to get going. Details and implementation, like math routines or higher-level stuff sure, but never just basic communication. Clearly there's something about either the chip or the board that is a bit fragile, too...
I will have to talk to Adafruit to see if it's possible to get a replacement, or maybe buy a few chips and try replacing them. Thanks a lot for your help though, guys!
Comments
Here is one of the programs I used, the Chris Gadd I2C driver, a connection schematic and the experimental Gimbal I made using lego parts.
Calibration takes a while and you have to manipulate the module in several ways as per datasheet.
Try these documents as a starting point. I found the module robust and easy to interface to.
I have several other programs and notes, but they are not available right now, but I may be able to provide them in the future.
Thanks! I will try this sometime this weekend. I want to be sure I'm interpreting the schematic correctly; ADR, INT, PS1, PS0 and RST are left floating?
I have looked at my old notes.
I can confirm ADR, INT, PS1, PS0 and RST are left floating, no connected.
Also, I made a note saying "no protecting resistors on Prop Pins. Does not work with resistors".
Sorry I can't be of more help at the moment. I have a sort of personal virus crisis going on here.
I found changing to serial to work though. By placing a wire between 3.3v and PS1 you can switch the unit to UART mode and then it works just fine using full duplex serial communication at 115200 baud.
Mike
Hmmm ok I'll try that...I thought I'd tried them floating as well as connected (IIRC, the datasheet says, e.g., PSx can't be left floating) but I could be mistaken.
@iseries
Thanks, I think I tried UART mode as well but had no luck either, but will re-try.
BTW this is also with two modules...I'd bought one early last year and it was about a month before I had time to try it out (so no returns). I thought I'd tried everything so I figured finally, maybe I had a defective one...I hate coming to that conclusion because I feel like that's almost never the reason something doesn't work, but I bought a 2nd one not too long after, with the exact same results.
Unlike the BNO055 this board works fine for I2C without clock stretching.
Here is the library for the BNO055 unit from Adafruit using serial instead of I2C.
Mike
I'm not saying I wasn't somehow responsible for the demise of both of these modules; it's very possible (likely, even, if Adafruit does test all of these as they say they do) but for all the different devices I've tested and written drivers for, I've never encountered one so difficult to get going. Details and implementation, like math routines or higher-level stuff sure, but never just basic communication. Clearly there's something about either the chip or the board that is a bit fragile, too...
I will have to talk to Adafruit to see if it's possible to get a replacement, or maybe buy a few chips and try replacing them. Thanks a lot for your help though, guys!