Intel® Makers
Intel® Edison, Intel® Joule™, Intel® Curie™, Intel® Galileo
Announcements
Welcome - This is a Peer-to-Peer Forum only. Intel has discontinued these products but you may find support from other customers on this Forum
9868 Discussions

Edison only works on i2c with wire.h library? multiple start stop not supported?

DOBri
Novice
1,721 Views

Hi,

I am trying to get 3 Arduinos controlling a rocket, connected to an Edison via I2c as master telling the arduinos (slave) to start and stop.

With each arduino reporting back to Edison at multiple intervals to say if everything is ok, the Edison then tells the arduino to start on next part of code, and stop if there is something wrong.

The problem I am finding is that the Edison is not supported by any of the I2c Master libraries which enable multiple start stop functionalities. Is there any updated version of the I2c Libraries for Edison ( i couldn't find anything online) and if there is not, is it possible to do multiple start and stops with the wire.h library?

Cheers for any help

best

Dermot

1 Solution
Pedro_M_Intel
Employee
162 Views

Hello Tranquility,

The reason why other Arduino Wire libraries doesn't work with the Edison is because they call Wire.cpp and it at the same time calls twi.c. The last one calls avr/io.h and avr/interrupt.h, those libraries are exclusive to Arduino's AVR architecture, so they won't be compatible with the Edison's x86 architecture.

Edison uses an Intel modified version of the Wire library so it can be compatible with its architecture. However this is not the only way Edison can use its I2C capabilities. If you use the Edison's Linux side you can find other options apart from the Arduino library.

You can use the http://iotdk.intel.com/docs/master/mraa/classmraa_1_1_i2c.html MRAA Library or a Linux package like https://github.com/groeck/i2c-tools i2c-tools

Peter.

View solution in original post

4 Replies
Pedro_M_Intel
Employee
163 Views

Hello Tranquility,

The reason why other Arduino Wire libraries doesn't work with the Edison is because they call Wire.cpp and it at the same time calls twi.c. The last one calls avr/io.h and avr/interrupt.h, those libraries are exclusive to Arduino's AVR architecture, so they won't be compatible with the Edison's x86 architecture.

Edison uses an Intel modified version of the Wire library so it can be compatible with its architecture. However this is not the only way Edison can use its I2C capabilities. If you use the Edison's Linux side you can find other options apart from the Arduino library.

You can use the http://iotdk.intel.com/docs/master/mraa/classmraa_1_1_i2c.html MRAA Library or a Linux package like https://github.com/groeck/i2c-tools i2c-tools

Peter.

View solution in original post

PGana
Novice
162 Views

Hello Intel_Peter,

I am trying to interface adafruit motor shield v1.1 with intel edison board but the AVR and pic32 files are not compatible with intel. Is there any other way to use my motor shield v1.1 or is it better to use the next version v2.1 which have inbuilt i2c?

Regards

Pradeep

Pedro_M_Intel
Employee
162 Views

It's not impossible to use the motor shield v1.1 with Edison but it does require more work since you will have to program it manually however I'd suggest you to choose the Adafruit* Motor Shield v2.0 since it's been officially validated to work with Edison in http://www.intel.com/support/motherboards/desktop/sb/CS-035257.htm Intel® Galileo and Intel® Edison Board Shield Testing Report.

Peter.

PGana
Novice
162 Views

Thank you very much for your reply.

Reply