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
9880 Discussions

Intel Curie freezes when getting Acc and Gyro data

LSous2
Beginner
1,230 Views

Bought 2 recent Intel Curie to transmit Acc and Gyro data over BLE and it freezes every time after a few minutes.

Even using RawImuDataSerial arduino examples.

Did a little search and it seems it has a problem over I2C communication. What is going on?

0 Kudos
1 Solution
TIQ
Beginner
150 Views

There can be a sync problem, avoid using this function:

CurieIMU.readMotionSensor(aix, aiy, aiz, gix, giy, giz);

It will grab the data from the FIFO buffer for both Gyro and Accelerometer at the same time.

The problem with this is that the acquisition rates for gyro and accelerometer may be different

so this will cause problems.

Use these functions instead:

CurieIMUClass::readGyro(int &x, int &y, int &z)

and

CurieIMUClass::readAccelerometer(int &x, int &y, int &z)

Make sure you use the following functions before data acquisition:

CurieIMU.dataReady(GYRO) : this will return true if the gyro is enabled and has new data ready.

CurieIMU.dataReady(ACCEL) : this will return true if the accelerometer is enabled and has new data ready.

View solution in original post

1 Reply
TIQ
Beginner
151 Views

There can be a sync problem, avoid using this function:

CurieIMU.readMotionSensor(aix, aiy, aiz, gix, giy, giz);

It will grab the data from the FIFO buffer for both Gyro and Accelerometer at the same time.

The problem with this is that the acquisition rates for gyro and accelerometer may be different

so this will cause problems.

Use these functions instead:

CurieIMUClass::readGyro(int &x, int &y, int &z)

and

CurieIMUClass::readAccelerometer(int &x, int &y, int &z)

Make sure you use the following functions before data acquisition:

CurieIMU.dataReady(GYRO) : this will return true if the gyro is enabled and has new data ready.

CurieIMU.dataReady(ACCEL) : this will return true if the accelerometer is enabled and has new data ready.

Reply