Spark Logic

MPU-6050 (I2C) Library

juanpintom Tue Jun 23, 2015 11:04 pm

Hi all, Im trying to get it working an MPU6050 on Maple Mini, I started with this library:
https://github.com/jrowberg/i2cdevlib/t … no/MPU6050

On Arduino the INT pin is connected on D2 (interrupt #0), but I don’t know what pin is on Maple Mini I tried with pin 2 and pin 0.
I readed this reference: http://leaflabs.com/docs/external-inter … light=exti thats why I tried with pin 0.

I worked with no problems using DMP6 example on Arduino.

On MapleMini the i2c device is detected but gives an error on DMP start (code 1) from this line on setup()
https://github.com/jrowberg/i2cdevlib/b … 6.ino#L228

I dont know if this can be related with this issue:
https://github.com/rogerclarkmelbourne/ … 2/issues/5

I tried with RAW example and get strange values, I need to get a G force acceleration.

I’ll do more tests tomorrow, anyone have this sensor working?

Really thanks.

Regards.

Replies

garindo Mon May 22, 2017 11:47 pm

Bdvell, Very thanks.

Fingolin Tue May 23, 2017 6:34 am

Now comes my code:
this is my GyroClass.h:
#include <math.h>
class Gyro{
private:
float AccelMultipl=2*9.81; //
float AngleMultipl=250;
float correction[3]={0.9890, 0.9920,0.9844}; //correction factor for Acceleration
float bias[3]={-0.3713,-0.0095,0.6367}; //Offset factor für Acceleration
float Offset[3]={ 0.86433,0.99755,-0.07829}; //Offsett faktor der Drehwinkelgeber (-Mittelwert des Stillstands) //Offset for Angular Rate ~Mean if the Gyro is not Moving (minimizes drift)

public:
//Werte mit _accel wurden aus beschleunigungen berechnet (wird zur Sensorfusion genutzt)
//Raw Angular-Rates: (just scaled)
float Roll_rate=0;
float Gier_rate=0;
float Nick_rate=0;

float Gier_angle=0;
//Angles from acceleration:
float Roll_accel=0;
float Nick_accel=0;
//Angles after Sensor funsion:
float Roll_filtered=0;
float Nick_filtered=0;
float Gier_filtered=0; //"FILTERED" for a real filtering we actually need something like a compass which is not implemented!

//Acceleration (Raw and Integrated) (Werte sind bis für Sensorfusion eig Nutzlos, insbesondere die Integrierten, diese sollten (hier fehlt Gravity-Offset) den Geschwindigkeiten entsprechen.
float x_accel=0;
float Ix_accel=0;

float y_accel=0;
float Iy_accel=0;

float z_accel=0;
float Iz_accel=0;

float temperature;
// LastSampleTime is used for integrating correctly
float LastSampleTime=0;

int Adress=0x68;

void init(int Adress)
{
/*
* Init Function, sets Adress Wakes up the MPU and sets the LowPassFilter -> LowPass is set pretty High if the chip is dampened maybe set it lower
*/
this->Adress=Adress;
Wire.begin();
Wire.beginTransmission(Adress);
Wire.write(0x6B); // PWR_MGMT_1 register
Wire.write(0); // set to zero (wakes up the MPU-6050)
Wire.endTransmission();

Wire.beginTransmission(Adress);
Wire.write(0x1A); // CONFIG register
byte val=B00000110; //
Wire.write(val); // Set the LowPassFilter
Wire.endTransmission();

}
void setConfig(int mode)
{
//Set the mode / range (not yet tested!)
byte bMode;
switch (mode){
case 0:
bMode=B00000000;
this->AccelMultipl=2*9.81;
this->AngleMultipl=250;
break;
case 1:
bMode=B00001000;
this->AccelMultipl=4*9.81;
this->AngleMultipl=500;
break;
case 2:
bMode=B00011000;
this->AccelMultipl=8*9.81;
this->AngleMultipl=1000;
break;
case 3:
bMode=B00011000;
this->AccelMultipl=16*9.81;
this->AngleMultipl=2000;
break;
default:
bMode=B00000000;
this->AccelMultipl=2*9.81;
this->AngleMultipl=250;
break;
}
//Serial.println(bMode);
Wire.beginTransmission(this->Adress);
Wire.write(0x1B); // starting with register 0x1B ()
Wire.write(bMode); //1->+-500°/s
Wire.endTransmission();
Wire.write(0x1C); // starting with register 0x1C ()
Wire.write(bMode); //1->+-4g°/s
Wire.endTransmission();
}

void getConfigs() //Not Tested!
{
Wire.beginTransmission(this->Adress);
Wire.write(0x1B); // starting with register 0x1B (GYRI CIBFUG)
Wire.endTransmission();
Wire.beginTransmission(this->Adress);
Wire.requestFrom(this->Adress,2); // request a total of 2 registers
short conf=Wire.read()<<8|Wire.read();
// Serial.println(conf,BIN);
}

void grabData()//grabs Data from Gyro and processes it (filteres it)
{
// First Get Times for the integrating stuff that happenes later
float T_now=micros()*0.000001; //Jetzt Zeit in s
float dT=T_now-(this->LastSampleTime); //Time that has run by (integration span)
this->LastSampleTime=T_now;

//Reading & Saving Raw-Values:
Wire.beginTransmission(this->Adress);
Wire.write(0x3B); // starting with register 0x3B (ACCEL_XOUT_H)
Wire.endTransmission();
Wire.requestFrom(this->Adress,14); // request a total of 14 registers
this->x_accel=Wire.read()<<8|Wire.read(); // 0x3B (ACCEL_XOUT_H) & 0x3C (ACCEL_XOUT_L)
this->y_accel=Wire.read()<<8|Wire.read(); // 0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L)
this->z_accel=Wire.read()<<8|Wire.read(); // 0x3F (ACCEL_ZOUT_H) & 0x40 (ACCEL_ZOUT_L)
this->temperature=Wire.read()<<8|Wire.read(); // 0x41 (TEMP_OUT_H) & 0x42 (TEMP_OUT_L)

this->Roll_rate=Wire.read()<<8|Wire.read(); // 0x43 (GYRO_XOUT_H) & 0x44 (GYRO_XOUT_L)
this->Nick_rate=Wire.read()<<8|Wire.read(); // 0x45 (GYRO_YOUT_H) & 0x46 (GYRO_YOUT_L)
this->Gier_rate=Wire.read()<<8|Wire.read(); // 0x47 (GYRO_ZOUT_H) & 0x48 (GYRO_ZOUT_L)}

//Preprocessing:
//1. Scaling works by an affin function x_scaled=a * x_raw +b
this->x_accel=(float)this->x_accel*this->AccelMultipl/32767*this->correction[0] + this->bias[0];
this->y_accel=(float)this->y_accel*this->AccelMultipl/32767*this->correction[1] + this->bias[1];
this->z_accel=(float)this->z_accel*this->AccelMultipl/32767*this->correction[2] + this->bias[2];
//2. Integrate acceleration (useless so far) //maybe used later by integrating it (twice) to determine position (should be pretty uncertain)
this->Ix_accel+= this->x_accel*dT;
this->Iy_accel+= this->y_accel*dT;
this->Iz_accel+= this->z_accel*dT;
//3. Temperature
this->temperature=(float) this->temperature/340.00+36.53;
//4.Scale Angular Rates: (Angular Rates are just adjusted by an Offset, which is determined by the mean and minimizes drift)
this->Roll_rate=(float)this->Roll_rate*this->AngleMultipl/32767+Offset[0];
this->Nick_rate=(float)this->Nick_rate*this->AngleMultipl/32767+Offset[1];
this->Gier_rate=(float)this->Gier_rate*this->AngleMultipl/32767+Offset[2];

//Roll und Nicktwerte aus Beschleunigungen:
this->Roll_accel=RAD_TO_DEG*(atan2(-this->y_accel,-this->z_accel)); //NICK
this->Nick_accel=RAD_TO_DEG*(atan2(this->x_accel,sqrt(this->z_accel*this->z_accel+this->y_accel*this->y_accel)));//ROLL

//Sensor fusion is here
//Sensor fusion uses just a complementary filter, however works pretty solid (maybe use a kalman filter later)

this->Roll_filtered=0.994 *(this->Roll_filtered+this->Roll_rate*dT) + 0.006*this->Roll_accel ;
this->Nick_filtered=0.994 *(this->Nick_filtered+this->Nick_rate*dT) + 0.006*this->Nick_accel ;

//this->Roll_filtered -=Nick_filtered*sin(this->Gier_rate);
//this->Nick_filtered +=Roll_filtered*sin(this->Gier_rate);

this->Gier_angle+=Gier_rate*dT;
//Gier_filtered is not filtered since for that a compass would be needed!
this->Gier_filtered=0.98*this->Gier_angle;
}

void dispData(){
//Winkelbeschleunigungen:
//Serial.print(" aX: "); Serial.print(this->x_accel); Serial.print(" aY: "); Serial.print(this->y_accel); Serial.print(" aZ: "); Serial.print(this->z_accel);

//Nick& Roll aus Acceleration:
//Serial.print(" Nick_acc; ");Serial.print(this->Nick_accel);
//Serial.print(" Roll_acc: ");Serial.print(this->Roll_accel);
//NICK&ROLL-ANGLE-Rates
// Serial.print(" Roll_rate: ");Serial.print(this->Roll_rate);
//Serial.print(" Gier_filtered: ");Serial.print(this->Gier_rate);
//NICK&ROLL ANGLES
Serial.print(" Roll_filtered: ");Serial.print(this->Roll_filtered);
Serial.print(" Nick_filtered: ");Serial.print(this->Nick_filtered);
Serial.print(" GierAngle: "); Serial.print(this->Gier_filtered);

//TEMPERATUR:
// Serial.print(" Tmp: "); Serial.print(this->temperature); //
//NULL-Linie zur Orientierung:
//Serial.print(" Null: "); Serial.print(0);
//Serial.print(" GasMax: "); Serial.print(60);
//Serial.print(" -GasMax: "); Serial.print(-60);
}

};

Fingolin Wed May 24, 2017 10:04 am

Does anyone know how I change the i2c pins? So that I can plug the IMU on other pins?

garindo Wed May 31, 2017 6:29 pm

Hi fingolin,in file wire.cpp, change line:

SCL, SDA
TwoWire Wire(PB6, PB7, SOFT_STANDARD);

one think, the problem in stm32 with mpu6050 can be the reading speed i2c, 2000 microseconds in the reading routine of mpu6050 against the 600 approx with TwoWire Wire(PB6, PB7, SOFT_FAST);

// #define NO_GLOBAL_INSTANTIATION
#include<Wire.h>
TwoWire Wire2(PB6, PB7, SOFT_FAST);

const int MPU_addr=0x68; // I2C address of the MPU-6050
int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ;
void setup(){
/// SCL,SDA

Wire2.begin();

Wire2.beginTransmission(MPU_addr);
Wire2.write(0x6B); // PWR_MGMT_1 register
Wire2.write(0); // set to zero (wakes up the MPU-6050)
Wire2.endTransmission();
}
void loop(){

//// read data

}

RogerClark Sat Jun 03, 2017 10:39 pm

excellent work.

BTW you can embed vidoes, using the Youtube button with just the video ID code

Fingolin Sun Jun 04, 2017 11:45 am

Hi Gardino,
thanks for the tipp!
Nice work I like it and you are using the same frame as I do :)
By the way, what are you using as a remote?

garindo Sun Jun 04, 2017 6:33 pm

Very thanks Rogerclark, for the next video.
Fingolin, the system TxRx radio is radiolink at10 or at9 and you ?

Fingolin Mon Jun 05, 2017 10:55 am

I dont have a remote yet :D that is why I am asking..

Squonk42 Tue Jun 06, 2017 5:20 am

RogerClark wrote:I used the RTIMU lib a few years ago with the MPU9150, but it did not include filtering, ( I am not sure if it got updated to include filtering, but I think the library has been abandoned now by its author).

RogerClark Tue Jun 06, 2017 7:53 am

OK.

I don’t think I will go back to the same project, but its good to know there is an updated version of the library

ahull Wed Aug 16, 2017 9:14 pm

I’m not sure if anybody on the forum is the Joop Brokking who produced this video, but I’ll leave this here just for completeness.

rsc Mon Sep 18, 2017 12:56 am

the code in that video not work (for my) :| :| :|

aster Fri Oct 06, 2017 4:55 pm

wrote: Tue Jun 06, 2017 5:20 am

aster Mon Oct 09, 2017 11:33 am

i found this library: https://github.com/sparkfun/SparkFun_MP … no_Library
and i am using cheap sensors from aliexpress like this:
Image

right now i am testing it only with i2c (spi later) and i found an error:
the WHO_AM_I_MPU9250 register could be both 0x71 and 0x73 (mine is 0x73 may it means that my sensors is a fake one? boh)

same problem with the magnetometer:
WHO_AM_I_AK8963 register should be 0x48 but it looks like that my imu doesn’t have this registers!

anyway i forced the imu to run a test with the library and i get:
AK8963 mag biases (mG)
-56.29
193.08
339.12
AK8963 mag scale (mG)
1.17
0.77
1.17

example basinc data output without moving the imu
X-acceleration: -43.70 mg Y-acceleration: 0.31 mg Z-acceleration: 999.94 mg
X-gyro rate: 0.046 degrees/sec Y-gyro rate: 0.031 degrees/sec Z-gyro rate: 0.000 degrees/sec
X-mag field: 1.82 mG Y-mag field: 0.00 mG Z-mag field: 49.20 mG
Temperature is 26.3 degrees C
X-acceleration: -46.94 mg Y-acceleration: 1.22 mg Z-acceleration: 1001.34 mg
X-gyro rate: 0.015 degrees/sec Y-gyro rate: 0.168 degrees/sec Z-gyro rate: 0.008 degrees/sec
X-mag field: 5.45 mG Y-mag field: -7.29 mG Z-mag field: 35.14 mG
Temperature is 26.3 degrees C
X-acceleration: -45.04 mg Y-acceleration: 0.31 mg Z-acceleration: 999.02 mg
X-gyro rate: -0.114 degrees/sec Y-gyro rate: 0.130 degrees/sec Z-gyro rate: -0.107 degrees/sec
X-mag field: 3.63 mG Y-mag field: -9.11 mG Z-mag field: 33.38 mG
Temperature is 26.3 degrees C
X-acceleration: -44.49 mg Y-acceleration: 1.22 mg Z-acceleration: 1004.39 mg
X-gyro rate: -0.053 degrees/sec Y-gyro rate: 0.206 degrees/sec Z-gyro rate: -0.008 degrees/sec
X-mag field: 5.45 mG Y-mag field: -3.64 mG Z-mag field: 45.68 mG
Temperature is 26.3 degrees C
X-acceleration: -44.37 mg Y-acceleration: 0.37 mg Z-acceleration: 999.27 mg
X-gyro rate: -0.008 degrees/sec Y-gyro rate: 0.038 degrees/sec Z-gyro rate: 0.069 degrees/sec
X-mag field: 5.45 mG Y-mag field: -10.93 mG Z-mag field: 17.57 mG
Temperature is 26.3 degrees C
X-acceleration: -45.53 mg Y-acceleration: 1.22 mg Z-acceleration: 1001.40 mg
X-gyro rate: -0.008 degrees/sec Y-gyro rate: 0.092 degrees/sec Z-gyro rate: -0.008 degrees/sec
X-mag field: 7.26 mG Y-mag field: -5.46 mG Z-mag field: 36.90 mG
Temperature is 26.3 degrees C
X-acceleration: -45.17 mg Y-acceleration: 0.92 mg Z-acceleration: 998.23 mg
X-gyro rate: -0.053 degrees/sec Y-gyro rate: 0.153 degrees/sec Z-gyro rate: 0.053 degrees/sec
X-mag field: 9.08 mG Y-mag field: 10.93 mG Z-mag field: 17.57 mG
Temperature is 26.3 degrees C
X-acceleration: -48.77 mg Y-acceleration: -1.95 mg Z-acceleration: 999.02 mg
X-gyro rate: -0.061 degrees/sec Y-gyro rate: 0.069 degrees/sec Z-gyro rate: 1.144 degrees/sec
X-mag field: -12.71 mG Y-mag field: -14.57 mG Z-mag field: 38.66 mG
Temperature is 26.3 degrees C
X-acceleration: -46.02 mg Y-acceleration: 0.61 mg Z-acceleration: 1004.82 mg
X-gyro rate: 0.038 degrees/sec Y-gyro rate: 0.183 degrees/sec Z-gyro rate: -0.046 degrees/sec
X-mag field: 21.79 mG Y-mag field: -9.11 mG Z-mag field: 36.90 mG
Temperature is 26.3 degrees C
X-acceleration: -44.86 mg Y-acceleration: 0.18 mg Z-acceleration: 1000.06 mg
X-gyro rate: -0.046 degrees/sec Y-gyro rate: 0.130 degrees/sec Z-gyro rate: 0.099 degrees/sec
X-mag field: 5.45 mG Y-mag field: -10.93 mG Z-mag field: 45.68 mG
Temperature is 26.3 degrees C
X-acceleration: -48.22 mg Y-acceleration: 2.50 mg Z-acceleration: 1003.78 mg
X-gyro rate: -0.099 degrees/sec Y-gyro rate: 0.069 degrees/sec Z-gyro rate: -0.076 degrees/sec
X-mag field: 3.63 mG Y-mag field: -1.82 mG Z-mag field: 29.87 mG
Temperature is 26.3 degrees C
X-acceleration: -46.94 mg Y-acceleration: 0.43 mg Z-acceleration: 1002.20 mg
X-gyro rate: -0.023 degrees/sec Y-gyro rate: 0.153 degrees/sec Z-gyro rate: 0.206 degrees/sec
X-mag field: -3.63 mG Y-mag field: -12.75 mG Z-mag field: 47.44 mG
Temperature is 26.3 degrees C
X-acceleration: -48.71 mg Y-acceleration: 1.34 mg Z-acceleration: 1000.18 mg
X-gyro rate: -0.038 degrees/sec Y-gyro rate: 0.046 degrees/sec Z-gyro rate: -0.046 degrees/sec
X-mag field: 3.63 mG Y-mag field: -1.82 mG Z-mag field: 36.90 mG
Temperature is 26.3 degrees C
X-acceleration: -44.98 mg Y-acceleration: 0.85 mg Z-acceleration: 1002.38 mg
X-gyro rate: -0.061 degrees/sec Y-gyro rate: 0.168 degrees/sec Z-gyro rate: 0.130 degrees/sec
X-mag field: 1.82 mG Y-mag field: 3.64 mG Z-mag field: 35.14 mG
Temperature is 26.3 degrees C
X-acceleration: -45.65 mg Y-acceleration: -0.31 mg Z-acceleration: 1001.71 mg
X-gyro rate: -0.046 degrees/sec Y-gyro rate: 0.145 degrees/sec Z-gyro rate: -0.084 degrees/sec
X-mag field: -1.82 mG Y-mag field: -18.22 mG Z-mag field: 35.14 mG
Temperature is 26.3 degrees C
X-acceleration: -47.61 mg Y-acceleration: 2.56 mg Z-acceleration: 1001.16 mg
X-gyro rate: -0.061 degrees/sec Y-gyro rate: 0.145 degrees/sec Z-gyro rate: -0.046 degrees/sec
X-mag field: 7.26 mG Y-mag field: -1.82 mG Z-mag field: 33.38 mG
Temperature is 26.3 degrees C
X-acceleration: -45.53 mg Y-acceleration: 2.26 mg Z-acceleration: 997.31 mg
X-gyro rate: 0.000 degrees/sec Y-gyro rate: 0.160 degrees/sec Z-gyro rate: 0.069 degrees/sec
X-mag field: 5.45 mG Y-mag field: -10.93 mG Z-mag field: 42.17 mG
Temperature is 26.3 degrees C
X-acceleration: -46.75 mg Y-acceleration: 1.40 mg Z-acceleration: 1001.16 mg
X-gyro rate: -0.053 degrees/sec Y-gyro rate: 0.221 degrees/sec Z-gyro rate: -0.069 degrees/sec
X-mag field: 9.08 mG Y-mag field: 7.29 mG Z-mag field: 28.11 mG
Temperature is 26.3 degrees C
X-acceleration: -44.98 mg Y-acceleration: -1.04 mg Z-acceleration: 997.38 mg
X-gyro rate: -0.084 degrees/sec Y-gyro rate: 0.130 degrees/sec Z-gyro rate: -0.053 degrees/sec
X-mag field: 25.42 mG Y-mag field: 9.11 mG Z-mag field: 26.36 mG
Temperature is 26.3 degrees C
X-acceleration: -46.08 mg Y-acceleration: 1.10 mg Z-acceleration: 1002.50 mg
X-gyro rate: -0.107 degrees/sec Y-gyro rate: 0.069 degrees/sec Z-gyro rate: 0.053 degrees/sec
X-mag field: 12.71 mG Y-mag field: -18.22 mG Z-mag field: 31.63 mG
Temperature is 26.3 degrees C
X-acceleration: -46.75 mg Y-acceleration: 0.92 mg Z-acceleration: 1003.66 mg
X-gyro rate: -0.107 degrees/sec Y-gyro rate: 0.069 degrees/sec Z-gyro rate: -0.038 degrees/sec
X-mag field: 10.89 mG Y-mag field: 1.82 mG Z-mag field: 40.41 mG
Temperature is 26.3 degrees C
X-acceleration: -45.47 mg Y-acceleration: 1.46 mg Z-acceleration: 1000.98 mg
X-gyro rate: 0.053 degrees/sec Y-gyro rate: 0.183 degrees/sec Z-gyro rate: -0.038 degrees/sec
X-mag field: 1.82 mG Y-mag field: -7.29 mG Z-mag field: 28.11 mG
Temperature is 26.3 degrees C
X-acceleration: -48.95 mg Y-acceleration: 4.33 mg Z-acceleration: 1000.67 mg
X-gyro rate: -0.053 degrees/sec Y-gyro rate: 0.153 degrees/sec Z-gyro rate: -0.038 degrees/sec
X-mag field: 23.60 mG Y-mag field: -10.93 mG Z-mag field: 35.14 mG
Temperature is 26.3 degrees C
X-acceleration: -46.51 mg Y-acceleration: 0.79 mg Z-acceleration: 997.25 mg
X-gyro rate: -0.076 degrees/sec Y-gyro rate: 0.069 degrees/sec Z-gyro rate: -0.015 degrees/sec
X-mag field: -7.26 mG Y-mag field: -5.46 mG Z-mag field: 57.98 mG
Temperature is 26.3 degrees C
X-acceleration: -47.91 mg Y-acceleration: 0.12 mg Z-acceleration: 1000.18 mg
X-gyro rate: 0.008 degrees/sec Y-gyro rate: 0.099 degrees/sec Z-gyro rate: -0.092 degrees/sec
X-mag field: 1.82 mG Y-mag field: -21.86 mG Z-mag field: 49.20 mG
Temperature is 26.3 degrees C
X-acceleration: -46.81 mg Y-acceleration: 1.46 mg Z-acceleration: 996.95 mg
X-gyro rate: -0.031 degrees/sec Y-gyro rate: 0.107 degrees/sec Z-gyro rate: 0.046 degrees/sec
X-mag field: 1.82 mG Y-mag field: 10.93 mG Z-mag field: 35.14 mG
Temperature is 26.3 degrees C
X-acceleration: -47.55 mg Y-acceleration: 0.43 mg Z-acceleration: 999.94 mg
X-gyro rate: -0.130 degrees/sec Y-gyro rate: 0.153 degrees/sec Z-gyro rate: -0.008 degrees/sec
X-mag field: 0.00 mG Y-mag field: -20.04 mG Z-mag field: 40.41 mG
Temperature is 26.3 degrees C
X-acceleration: -49.56 mg Y-acceleration: 0.12 mg Z-acceleration: 1002.26 mg
X-gyro rate: -0.069 degrees/sec Y-gyro rate: 0.114 degrees/sec Z-gyro rate: 0.008 degrees/sec
X-mag field: -5.45 mG Y-mag field: -7.29 mG Z-mag field: 42.17 mG
Temperature is 26.3 degrees C
X-acceleration: -44.92 mg Y-acceleration: 1.77 mg Z-acceleration: 1003.11 mg
X-gyro rate: 0.015 degrees/sec Y-gyro rate: 0.107 degrees/sec Z-gyro rate: 0.015 degrees/sec
X-mag field: 7.26 mG Y-mag field: -9.11 mG Z-mag field: 36.90 mG
Temperature is 26.3 degrees C
X-acceleration: -50.72 mg Y-acceleration: 0.92 mg Z-acceleration: 1000.92 mg
X-gyro rate: -0.023 degrees/sec Y-gyro rate: 0.099 degrees/sec Z-gyro rate: 0.816 degrees/sec
X-mag field: 29.05 mG Y-mag field: -20.04 mG Z-mag field: 40.41 mG
Temperature is 26.3 degrees C
X-acceleration: -48.77 mg Y-acceleration: 0.12 mg Z-acceleration: 999.63 mg
X-gyro rate: 0.038 degrees/sec Y-gyro rate: 0.160 degrees/sec Z-gyro rate: -0.191 degrees/sec
X-mag field: 19.97 mG Y-mag field: -10.93 mG Z-mag field: 21.09 mG
Temperature is 26.3 degrees C
X-acceleration: -47.30 mg Y-acceleration: 2.38 mg Z-acceleration: 1003.48 mg
X-gyro rate: 0.000 degrees/sec Y-gyro rate: 0.092 degrees/sec Z-gyro rate: -0.122 degrees/sec
X-mag field: 19.97 mG Y-mag field: -18.22 mG Z-mag field: 35.14 mG
Temperature is 26.3 degrees C
X-acceleration: -46.94 mg Y-acceleration: 2.01 mg Z-acceleration: 1003.11 mg
X-gyro rate: -0.053 degrees/sec Y-gyro rate: 0.153 degrees/sec Z-gyro rate: -0.061 degrees/sec
X-mag field: 7.26 mG Y-mag field: -16.39 mG Z-mag field: 36.90 mG
Temperature is 26.3 degrees C
X-acceleration: -47.00 mg Y-acceleration: 0.98 mg Z-acceleration: 1000.12 mg
X-gyro rate: -0.015 degrees/sec Y-gyro rate: 0.084 degrees/sec Z-gyro rate: -0.084 degrees/sec
X-mag field: 10.89 mG Y-mag field: -5.46 mG Z-mag field: 33.38 mG
Temperature is 26.3 degrees C
X-acceleration: -43.21 mg Y-acceleration: 1.22 mg Z-acceleration: 1000.67 mg
X-gyro rate: -0.038 degrees/sec Y-gyro rate: 0.153 degrees/sec Z-gyro rate: 0.061 degrees/sec
X-mag field: 18.16 mG Y-mag field: -12.75 mG Z-mag field: 36.90 mG
Temperature is 26.3 degrees C
X-acceleration: -45.59 mg Y-acceleration: 0.24 mg Z-acceleration: 998.23 mg
X-gyro rate: -0.031 degrees/sec Y-gyro rate: 0.114 degrees/sec Z-gyro rate: -0.046 degrees/sec
X-mag field: -9.08 mG Y-mag field: -18.22 mG Z-mag field: 38.66 mG
Temperature is 26.3 degrees C
X-acceleration: -49.01 mg Y-acceleration: 2.38 mg Z-acceleration: 1000.92 mg
X-gyro rate: -0.061 degrees/sec Y-gyro rate: 0.099 degrees/sec Z-gyro rate: -0.046 degrees/sec
X-mag field: -5.45 mG Y-mag field: -18.22 mG Z-mag field: 35.14 mG
Temperature is 26.3 degrees C
X-acceleration: -46.94 mg Y-acceleration: 0.06 mg Z-acceleration: 1003.17 mg
X-gyro rate: -0.023 degrees/sec Y-gyro rate: 0.137 degrees/sec Z-gyro rate: 0.046 degrees/sec
X-mag field: -7.26 mG Y-mag field: -12.75 mG Z-mag field: 57.98 mG
Temperature is 26.3 degrees C
X-acceleration: -47.97 mg Y-acceleration: 0.31 mg Z-acceleration: 997.19 mg
X-gyro rate: -0.046 degrees/sec Y-gyro rate: 0.153 degrees/sec Z-gyro rate: -0.168 degrees/sec
X-mag field: 3.63 mG Y-mag field: -16.39 mG Z-mag field: 43.93 mG
Temperature is 26.3 degrees C
X-acceleration: -46.20 mg Y-acceleration: 2.69 mg Z-acceleration: 1001.83 mg
X-gyro rate: -0.114 degrees/sec Y-gyro rate: 0.191 degrees/sec Z-gyro rate: -0.053 degrees/sec
X-mag field: 0.00 mG Y-mag field: -1.82 mG Z-mag field: 43.93 mG
Temperature is 26.3 degrees C
X-acceleration: -50.29 mg Y-acceleration: 1.53 mg Z-acceleration: 1002.93 mg
X-gyro rate: -0.038 degrees/sec Y-gyro rate: 0.153 degrees/sec Z-gyro rate: 0.038 degrees/sec
X-mag field: -3.63 mG Y-mag field: -5.46 mG Z-mag field: 40.41 mG
Temperature is 26.3 degrees C
X-acceleration: -45.72 mg Y-acceleration: -0.18 mg Z-acceleration: 1002.01 mg
X-gyro rate: -0.069 degrees/sec Y-gyro rate: 0.076 degrees/sec Z-gyro rate: 0.015 degrees/sec
X-mag field: 1.82 mG Y-mag field: -21.86 mG Z-mag field: 24.60 mG
Temperature is 26.3 degrees C
X-acceleration: -47.79 mg Y-acceleration: 0.55 mg Z-acceleration: 999.88 mg
X-gyro rate: -0.130 degrees/sec Y-gyro rate: 0.183 degrees/sec Z-gyro rate: -0.015 degrees/sec
X-mag field: 0.00 mG Y-mag field: 1.82 mG Z-mag field: 15.81 mG
Temperature is 26.3 degrees C
X-acceleration: -47.06 mg Y-acceleration: 3.23 mg Z-acceleration: 1003.54 mg
X-gyro rate: -0.046 degrees/sec Y-gyro rate: 0.008 degrees/sec Z-gyro rate: -0.092 degrees/sec
X-mag field: 27.24 mG Y-mag field: -7.29 mG Z-mag field: 28.11 mG
Temperature is 26.3 degrees C
X-acceleration: -48.22 mg Y-acceleration: 0.18 mg Z-acceleration: 1000.00 mg
X-gyro rate: -0.084 degrees/sec Y-gyro rate: 0.130 degrees/sec Z-gyro rate: -0.069 degrees/sec
X-mag field: 3.63 mG Y-mag field: 1.82 mG Z-mag field: 29.87 mG
Temperature is 26.3 degrees C
X-acceleration: -46.20 mg Y-acceleration: 1.95 mg Z-acceleration: 998.84 mg
X-gyro rate: 0.015 degrees/sec Y-gyro rate: 0.092 degrees/sec Z-gyro rate: -0.053 degrees/sec
X-mag field: 3.63 mG Y-mag field: 5.46 mG Z-mag field: 29.87 mG
Temperature is 26.3 degrees C
X-acceleration: -46.57 mg Y-acceleration: 1.65 mg Z-acceleration: 998.47 mg
X-gyro rate: 0.015 degrees/sec Y-gyro rate: 0.214 degrees/sec Z-gyro rate: -0.046 degrees/sec
X-mag field: 1.82 mG Y-mag field: 0.00 mG Z-mag field: 35.14 mG
Temperature is 26.3 degrees C
X-acceleration: -48.71 mg Y-acceleration: -0.43 mg Z-acceleration: 998.29 mg
X-gyro rate: -0.092 degrees/sec Y-gyro rate: 0.046 degrees/sec Z-gyro rate: -0.099 degrees/sec
X-mag field: 5.45 mG Y-mag field: -10.93 mG Z-mag field: 52.71 mG
Temperature is 26.3 degrees C
X-acceleration: -46.14 mg Y-acceleration: 2.08 mg Z-acceleration: 997.25 mg
X-gyro rate: -0.069 degrees/sec Y-gyro rate: 0.015 degrees/sec Z-gyro rate: -0.084 degrees/sec
X-mag field: -7.26 mG Y-mag field: -5.46 mG Z-mag field: 47.44 mG
Temperature is 26.3 degrees C
X-acceleration: -46.26 mg Y-acceleration: 1.95 mg Z-acceleration: 1003.97 mg
X-gyro rate: -0.015 degrees/sec Y-gyro rate: 0.114 degrees/sec Z-gyro rate: -0.008 degrees/sec
X-mag field: -25.42 mG Y-mag field: -20.04 mG Z-mag field: 40.41 mG
Temperature is 26.3 degrees C
X-acceleration: -46.69 mg Y-acceleration: 2.38 mg Z-acceleration: 1000.18 mg
X-gyro rate: -0.092 degrees/sec Y-gyro rate: 0.107 degrees/sec Z-gyro rate: -0.107 degrees/sec
X-mag field: 7.26 mG Y-mag field: -23.68 mG Z-mag field: 40.41 mG
Temperature is 26.3 degrees C
X-acceleration: -45.96 mg Y-acceleration: -0.98 mg Z-acceleration: 1000.43 mg
X-gyro rate: -0.092 degrees/sec Y-gyro rate: 0.153 degrees/sec Z-gyro rate: -0.031 degrees/sec
X-mag field: -9.08 mG Y-mag field: -14.57 mG Z-mag field: 42.17 mG
Temperature is 26.3 degrees C
X-acceleration: -46.08 mg Y-acceleration: 0.18 mg Z-acceleration: 999.27 mg
X-gyro rate: 0.023 degrees/sec Y-gyro rate: 0.221 degrees/sec Z-gyro rate: -0.008 degrees/sec
X-mag field: 9.08 mG Y-mag field: -7.29 mG Z-mag field: 24.60 mG
Temperature is 26.3 degrees C
X-acceleration: -46.94 mg Y-acceleration: 2.01 mg Z-acceleration: 999.88 mg
X-gyro rate: -0.023 degrees/sec Y-gyro rate: 0.092 degrees/sec Z-gyro rate: -0.053 degrees/sec
X-mag field: 19.97 mG Y-mag field: 7.29 mG Z-mag field: 28.11 mG
Temperature is 26.3 degrees C
X-acceleration: -44.25 mg Y-acceleration: 1.71 mg Z-acceleration: 1000.61 mg
X-gyro rate: -0.061 degrees/sec Y-gyro rate: 0.046 degrees/sec Z-gyro rate: -0.084 degrees/sec
X-mag field: 21.79 mG Y-mag field: -12.75 mG Z-mag field: 29.87 mG
Temperature is 26.3 degrees C
X-acceleration: -47.06 mg Y-acceleration: 1.16 mg Z-acceleration: 1001.77 mg
X-gyro rate: 0.015 degrees/sec Y-gyro rate: 0.092 degrees/sec Z-gyro rate: 0.000 degrees/sec
X-mag field: 25.42 mG Y-mag field: 1.82 mG Z-mag field: 12.30 mG
Temperature is 26.3 degrees C
X-acceleration: -44.19 mg Y-acceleration: 0.92 mg Z-acceleration: 1001.89 mg
X-gyro rate: 0.046 degrees/sec Y-gyro rate: 0.191 degrees/sec Z-gyro rate: 0.008 degrees/sec
X-mag field: -1.82 mG Y-mag field: 0.00 mG Z-mag field: 35.14 mG
Temperature is 26.3 degrees C
X-acceleration: -46.08 mg Y-acceleration: 0.67 mg Z-acceleration: 999.39 mg
X-gyro rate: -0.015 degrees/sec Y-gyro rate: 0.046 degrees/sec Z-gyro rate: -0.008 degrees/sec
X-mag field: 1.82 mG Y-mag field: 0.00 mG Z-mag field: 38.66 mG
Temperature is 26.3 degrees C
X-acceleration: -46.88 mg Y-acceleration: 1.65 mg Z-acceleration: 1001.22 mg
X-gyro rate: 0.069 degrees/sec Y-gyro rate: 0.137 degrees/sec Z-gyro rate: -0.069 degrees/sec
X-mag field: 3.63 mG Y-mag field: 1.82 mG Z-mag field: 33.38 mG
Temperature is 26.3 degrees C
X-acceleration: -46.63 mg Y-acceleration: 3.36 mg Z-acceleration: 1000.43 mg
X-gyro rate: 0.000 degrees/sec Y-gyro rate: 0.122 degrees/sec Z-gyro rate: 0.023 degrees/sec
X-mag field: 3.63 mG Y-mag field: -16.39 mG Z-mag field: 50.96 mG
Temperature is 26.3 degrees C
X-acceleration: -48.71 mg Y-acceleration: 2.38 mg Z-acceleration: 997.86 mg
X-gyro rate: -0.023 degrees/sec Y-gyro rate: 0.168 degrees/sec Z-gyro rate: -0.137 degrees/sec
X-mag field: -3.63 mG Y-mag field: -20.04 mG Z-mag field: 47.44 mG
Temperature is 26.3 degrees C
X-acceleration: -43.09 mg Y-acceleration: 2.14 mg Z-acceleration: 1002.87 mg
X-gyro rate: -0.076 degrees/sec Y-gyro rate: 0.191 degrees/sec Z-gyro rate: -0.069 degrees/sec
X-mag field: -3.63 mG Y-mag field: -23.68 mG Z-mag field: 40.41 mG
Temperature is 26.3 degrees C
X-acceleration: -46.08 mg Y-acceleration: 1.77 mg Z-acceleration: 999.02 mg
X-gyro rate: -0.008 degrees/sec Y-gyro rate: 0.153 degrees/sec Z-gyro rate: 0.832 degrees/sec
X-mag field: 3.63 mG Y-mag field: -12.75 mG Z-mag field: 33.38 mG
Temperature is 26.3 degrees C
X-acceleration: -49.56 mg Y-acceleration: 1.89 mg Z-acceleration: 1002.08 mg
X-gyro rate: -0.046 degrees/sec Y-gyro rate: 0.099 degrees/sec Z-gyro rate: 0.015 degrees/sec
X-mag field: 1.82 mG Y-mag field: -7.29 mG Z-mag field: 31.63 mG
Temperature is 26.3 degrees C
X-acceleration: -46.51 mg Y-acceleration: 2.32 mg Z-acceleration: 998.17 mg
X-gyro rate: -0.076 degrees/sec Y-gyro rate: 0.191 degrees/sec Z-gyro rate: -0.114 degrees/sec
X-mag field: 27.24 mG Y-mag field: 0.00 mG Z-mag field: 35.14 mG
Temperature is 26.3 degrees C
X-acceleration: -46.57 mg Y-acceleration: 2.99 mg Z-acceleration: 1003.42 mg
X-gyro rate: -0.153 degrees/sec Y-gyro rate: 0.206 degrees/sec Z-gyro rate: -0.046 degrees/sec
X-mag field: 16.34 mG Y-mag field: -7.29 mG Z-mag field: 35.14 mG
Temperature is 26.3 degrees C
X-acceleration: -44.31 mg Y-acceleration: 2.44 mg Z-acceleration: 999.39 mg
X-gyro rate: 0.000 degrees/sec Y-gyro rate: 0.137 degrees/sec Z-gyro rate: -0.015 degrees/sec
X-mag field: 18.16 mG Y-mag field: 9.11 mG Z-mag field: 12.30 mG
Temperature is 26.3 degrees C
X-acceleration: -43.76 mg Y-acceleration: 1.34 mg Z-acceleration: 1000.31 mg
X-gyro rate: -0.031 degrees/sec Y-gyro rate: 0.183 degrees/sec Z-gyro rate: -0.008 degrees/sec
X-mag field: 10.89 mG Y-mag field: -1.82 mG Z-mag field: 15.81 mG
Temperature is 26.3 degrees C
X-acceleration: -47.97 mg Y-acceleration: 1.59 mg Z-acceleration: 999.82 mg
X-gyro rate: 0.053 degrees/sec Y-gyro rate: 0.099 degrees/sec Z-gyro rate: -0.038 degrees/sec
X-mag field: 1.82 mG Y-mag field: -10.93 mG Z-mag field: 31.63 mG
Temperature is 26.3 degrees C
X-acceleration: -46.69 mg Y-acceleration: 1.53 mg Z-acceleration: 996.34 mg
X-gyro rate: -0.084 degrees/sec Y-gyro rate: 0.244 degrees/sec Z-gyro rate: 0.000 degrees/sec
X-mag field: -14.53 mG Y-mag field: -20.04 mG Z-mag field: 43.93 mG
Temperature is 26.3 degrees C
X-acceleration: -47.79 mg Y-acceleration: 1.83 mg Z-acceleration: 1000.67 mg
X-gyro rate: -0.114 degrees/sec Y-gyro rate: 0.099 degrees/sec Z-gyro rate: -0.038 degrees/sec
X-mag field: -5.45 mG Y-mag field: -29.14 mG Z-mag field: 49.20 mG
Temperature is 26.3 degrees C
X-acceleration: -48.65 mg Y-acceleration: -0.24 mg Z-acceleration: 1002.08 mg
X-gyro rate: -0.015 degrees/sec Y-gyro rate: 0.168 degrees/sec Z-gyro rate: -0.038 degrees/sec
X-mag field: -7.26 mG Y-mag field: -9.11 mG Z-mag field: 43.93 mG
Temperature is 26.3 degrees C
X-acceleration: -47.79 mg Y-acceleration: 1.34 mg Z-acceleration: 1001.04 mg
X-gyro rate: -0.008 degrees/sec Y-gyro rate: 0.252 degrees/sec Z-gyro rate: -0.061 degrees/sec
X-mag field: -3.63 mG Y-mag field: -12.75 mG Z-mag field: 33.38 mG
Temperature is 26.3 degrees C
X-acceleration: -46.08 mg Y-acceleration: -1.83 mg Z-acceleration: 998.96 mg
X-gyro rate: 0.008 degrees/sec Y-gyro rate: 0.084 degrees/sec Z-gyro rate: -0.053 degrees/sec
X-mag field: -7.26 mG Y-mag field: -16.39 mG Z-mag field: 47.44 mG
Temperature is 26.3 degrees C
X-acceleration: -44.80 mg Y-acceleration: 1.34 mg Z-acceleration: 998.35 mg
X-gyro rate: -0.061 degrees/sec Y-gyro rate: 0.107 degrees/sec Z-gyro rate: -0.015 degrees/sec
X-mag field: -1.82 mG Y-mag field: -18.22 mG Z-mag field: 24.60 mG
Temperature is 26.3 degrees C
X-acceleration: -48.95 mg Y-acceleration: 2.32 mg Z-acceleration: 998.72 mg
X-gyro rate: -0.092 degrees/sec Y-gyro rate: 0.046 degrees/sec Z-gyro rate: -0.061 degrees/sec
X-mag field: 10.89 mG Y-mag field: -1.82 mG Z-mag field: 15.81 mG
Temperature is 26.3 degrees C
X-acceleration: -47.12 mg Y-acceleration: 1.46 mg Z-acceleration: 999.51 mg
X-gyro rate: -0.038 degrees/sec Y-gyro rate: 0.214 degrees/sec Z-gyro rate: -0.099 degrees/sec
X-mag field: -1.82 mG Y-mag field: -18.22 mG Z-mag field: 35.14 mG
Temperature is 26.3 degrees C
X-acceleration: -45.23 mg Y-acceleration: 1.77 mg Z-acceleration: 1002.93 mg
X-gyro rate: -0.092 degrees/sec Y-gyro rate: 0.069 degrees/sec Z-gyro rate: -0.015 degrees/sec
X-mag field: 7.26 mG Y-mag field: -1.82 mG Z-mag field: 40.41 mG
Temperature is 26.3 degrees C
X-acceleration: -46.88 mg Y-acceleration: 1.10 mg Z-acceleration: 999.39 mg
X-gyro rate: -0.023 degrees/sec Y-gyro rate: 0.015 degrees/sec Z-gyro rate: 0.031 degrees/sec
X-mag field: 9.08 mG Y-mag field: -3.64 mG Z-mag field: 21.09 mG
Temperature is 26.3 degrees C
X-acceleration: -46.26 mg Y-acceleration: -0.18 mg Z-acceleration: 996.58 mg
X-gyro rate: -0.061 degrees/sec Y-gyro rate: 0.191 degrees/sec Z-gyro rate: -0.069 degrees/sec
X-mag field: 0.00 mG Y-mag field: -16.39 mG Z-mag field: 50.96 mG
Temperature is 26.3 degrees C
X-acceleration: -45.23 mg Y-acceleration: 1.77 mg Z-acceleration: 1002.75 mg
X-gyro rate: -0.069 degrees/sec Y-gyro rate: 0.214 degrees/sec Z-gyro rate: -0.069 degrees/sec
X-mag field: -3.63 mG Y-mag field: 5.46 mG Z-mag field: 54.47 mG
Temperature is 26.3 degrees C
X-acceleration: -45.53 mg Y-acceleration: 0.24 mg Z-acceleration: 998.60 mg
X-gyro rate: -0.092 degrees/sec Y-gyro rate: 0.092 degrees/sec Z-gyro rate: 0.031 degrees/sec
X-mag field: -9.08 mG Y-mag field: -18.22 mG Z-mag field: 49.20 mG
Temperature is 26.3 degrees C
X-acceleration: -46.51 mg Y-acceleration: 0.49 mg Z-acceleration: 1000.79 mg
X-gyro rate: -0.122 degrees/sec Y-gyro rate: 0.137 degrees/sec Z-gyro rate: -0.099 degrees/sec
X-mag field: -3.63 mG Y-mag field: -16.39 mG Z-mag field: 57.98 mG
Temperature is 26.3 degrees C
X-acceleration: -47.67 mg Y-acceleration: 2.14 mg Z-acceleration: 1002.08 mg
X-gyro rate: -0.099 degrees/sec Y-gyro rate: 0.046 degrees/sec Z-gyro rate: 0.031 degrees/sec
X-mag field: 0.00 mG Y-mag field: -20.04 mG Z-mag field: 43.93 mG
Temperature is 26.3 degrees C
X-acceleration: -46.81 mg Y-acceleration: 0.73 mg Z-acceleration: 1000.37 mg
X-gyro rate: 0.000 degrees/sec Y-gyro rate: 0.168 degrees/sec Z-gyro rate: 0.000 degrees/sec
X-mag field: 14.53 mG Y-mag field: -20.04 mG Z-mag field: 36.90 mG
Temperature is 26.3 degrees C
X-acceleration: -47.73 mg Y-acceleration: 1.22 mg Z-acceleration: 1003.36 mg
X-gyro rate: 0.008 degrees/sec Y-gyro rate: 0.031 degrees/sec Z-gyro rate: -0.069 degrees/sec
X-mag field: 7.26 mG Y-mag field: -5.46 mG Z-mag field: 36.90 mG
Temperature is 26.3 degrees C

aster Mon Oct 09, 2017 12:37 pm

about the SPI: before moving to stm i am testing it with an arduino uno
connections:
mpu9250 – arduino
vcc-5v
gnd-gnd
scl- 13
ad0-12
sda-11
ncs-10

i am not convincet by this code:
uint8_t MPU9250::readBytesSPI(uint8_t registerAddress, uint8_t count,
uint8_t * dest)
{
SPI.beginTransaction(SPISettings(SPI_DATA_RATE, MSBFIRST, SPI_MODE));
select();

SPI.transfer(registerAddress | READ_FLAG);

uint8_t i;

for (i = 0; i < count; i++)
{
dest[i] = SPI.transfer(0x00);
#ifdef SERIAL_DEBUG
Serial.print("readBytesSPI::Read byte: 0x");
Serial.println(dest[i], HEX);
#endif
}

SPI.endTransaction();
deselect();

delayMicroseconds(50);

return i; // Return number of bytes written}

stevestrong Mon Oct 09, 2017 1:27 pm

[aster – Mon Oct 09, 2017 12:37 pm] –
why it begin and end the spi comunication for every few bytes? or is it normal? :?:

Well, define “normal” first… ;)
One can do it if the SPI port is shared with other peripherals. Otherwise is not needed, is enough to do it once in setup() or begin().

aster Mon Oct 09, 2017 1:51 pm

I meant to use it with only a device, so i could remove all these start/stop!

anyway i spent the last 3 hours trying the spi interface but it is still not working
the problem is in the comunication with the magnetometer AK8963. the library is good when using the i2c but the spi part is bad written
if someone fix it please write here!

Sign in to reply