Community
cancel
Showing results for 
Search instead for 
Did you mean: 
SDesa10
Beginner
1,100 Views

Interfacing a BNO055 with Intel Edison Mini Breakout Board

I wish to interface the https://learn.adafruit.com/adafruit-bno055-absolute-orientation-sensor/overview Adafruit BNO055 Absolute Orientation Sensor with an Intel Edison Mini Breakout Board.

I have 3.10.98-poky-edison+ on it.

I have read the /thread/110132 Thread about interfacing it via the I2C with the Edison

but I do not understand if I need:

1. to set additional pullup resistor on the Edison for the interfacing? if so, how?

2. Do I need a level shifter to make my output from the BNO055 to 1.8 V for the edison? if so, where?

I have written the a python script which is same as one mentioned on the https://software.intel.com/en-us/iot/hardware/sensors/intelligent-9-axis-absolute-orientation-sensor IOT Hardware sensor post for Intel

the only exception being I am using upm version 0.7.0-r0 and mraa 1.3.0

the code is pretty much the same as mentioned in the Hardware sensor post above.

Upon executing the file I get the error:

RuntimeError: UPM Runtime Error: writeReg: I2c.writeReg() failed

NOTE:

in the code as mentioned in the post the default bus is 0 and address is 0x28. But when I do a i2detect -l i never see a i2c-0. They are all from i2c-1 to i2c-6.

According to the Hardware Guide I am using GPIO 27 and GPIO 28 which are I2C-6 (if I am not wrong)

Just for some understanding I Connected the BNO055 to Edison directly as follows:

BNO055_SDA --> Jumper 17 Pin 9

BNO055_SCL --> Jumper 17 Pin 7

BNO055_Vin --> Jumper 20 pin 2 for 3.3 V

Ground --> Jumper 19 pin 3

According the Thread I also did the following:

# !/bin/sh

echo 28 > /sys/class/gpio/export

echo 27 > /sys/class/gpio/export

echo mode1 > /sys/kernel/debug/gpio_debug/gpio28/current_pinmux

echo mode1 > /sys/kernel/debug/gpio_debug/gpio27/current_pinmux

 

 

In order to make the GPIO pins to I2C functionality.

And then If I try to run the python script I get the same error as above.

If I try i2cdetect -r6 (since I am connected to I2C-6)I get:

[ 2672.359678] i2c-designware-pci 0000:00:09.1: i2c_dw_handle_tx_abort: lost arbitration

What needs to be done now? I don't understand from this point on. There is no sufficient understanding of interfacing the BNO055 with the Edison on the Internet.

Some help would be great.

Shan

0 Kudos
4 Replies
idata
Community Manager
64 Views

Hi Shan,

 

Thank you for reaching out, let us try to assist you.

 

Regarding your first question and reading what is being discussed in the other thread, I believe setting or not the pull-up resistors from the Edison would make no difference if you're using a level shifter for this purpose. However, if you want to set them I would suggest you to check the following thread: /thread/106048 https://communities.intel.com/thread/106048.

 

I would personally suggest to use a level shifter, check this link for further information /message/276726# 276726 https://communities.intel.com/message/276726# 276726, also this video https://www.youtube.com/watch?v=wtithWmd2oE.

 

Let us know if this makes any difference.

 

Regards,

 

Pablo M.

 

idata
Community Manager
64 Views

Hi Shan,

 

 

Let us know if you have any further question about this case, we'll be happy to help you if that's the case.

 

 

Regards,

 

Pablo M.
SDesa10
Beginner
64 Views

Sorry for the delay guys, I will order some Logic Level Converters from Sparkfun and keep this thread updated. Or perhaps the I2C Logic boards from Sparkfun too in order to get a concrete solution to the query. Till then Shan

idata
Community Manager
64 Views

Hi Shan,

 

 

Do you have updates on this case?

 

 

Regards,

 

Pablo M.
Reply