Defines for Chinese IMUs

This forum is dedicated to software development related to MultiWii.
It is not the right place to submit a setup problem.
Software download
PatrikE
Posts: 1964
Joined: Tue Apr 12, 2011 6:35 pm
Location: Sweden
Contact:

Re: Defines for Chinese IMUs

Post by PatrikE »

Try gyrfiltering.
#define MMGYRO
Plus ADXL345 seems very sensitive.

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: Defines for Chinese IMUs

Post by Katch »

Thanks, I'll try it later

I'll also probably put that /8 fix in for the ADXL345 next time out

marbalon
Posts: 107
Joined: Thu Aug 18, 2011 10:59 am

Re: Defines for Chinese IMUs

Post by marbalon »

I'm using this pair ADXL345 and L3G4200 in my quads and it works perfect for me. But there is a bug in gyro driver. My friend (wektorx) found this and there is fixed gyro driver. No difference between itg3200 in my opinion.

Code: Select all

// ************************************************************************************************************
// contribution from Ciskje, corrected by wektorx
// I2C Gyroscope L3G4200D
// ************************************************************************************************************
#if defined(L3G4200D)
void Gyro_init() {
 delay(100);
 delay(5); i2c_writeReg(0XD2+0 ,0x20 ,0b01001111 ); // CTRL_REG1  DR 200Hz BW 20Hz
 delay(5); i2c_writeReg(0XD2+0 ,0x21 ,0b00101001 ); // CTRL_REG2
 delay(5); i2c_writeReg(0XD2+0 ,0x22 ,0b00000000 ); // CTRL_REG3   all disable
 delay(5); i2c_writeReg(0XD2+0 ,0x23 ,0b00110000 ); // CTRL_REG4  2000dps
 delay(5); i2c_writeReg(0XD2+0 ,0x24 ,0b00000000 ); // CTRL_REG5
 delay(5); i2c_writeReg(0XD2+0 ,0x2E ,0b00000000 ); //
}

void Gyro_getADC () {
  TWBR = ((16000000L / 400000L) - 16) / 2; // change the I2C clock rate to 400kHz
  i2c_getSixRawADC(0XD2,0x80|0x28);

  GYRO_ORIENTATION( ((rawADC[1]<<8) | rawADC[0])/4  ,
                    ((rawADC[3]<<8) | rawADC[2])/4  ,
                    ((rawADC[5]<<8) | rawADC[4])/4  );
  GYRO_Common();
}
#endif

bill516
Posts: 334
Joined: Sun Aug 07, 2011 12:27 pm

Re: Defines for Chinese IMUs

Post by bill516 »

I posted answer to your reply to me in multiwii forum, I had to change the code where it reads 0XD2 to 0XD0 as I was getting i2c errors. The 0XD0 was in the code I received from the seller and works on my system.

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: Defines for Chinese IMUs

Post by Katch »

Just received my GY_86 with MPU6050 etc. News is the Mag is connected to the MPU6050 AUX i2c bus.

This code should work but I haven't tested it yet.

config.h

Code: Select all

#define GY_86             // Chinese 10 DOF with  MPU6050 HMC5883L MS5611, LLC


define.h

Code: Select all

#if defined(GY_86)
  #define MPU6050
  #define HMC5883
  #define MS561101BA
  #define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  = -X; accADC[PITCH]  = -Y; accADC[YAW]  =  Z;}
  #define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] =  Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;}
  #define MAG_ORIENTATION(X, Y, Z)  {magADC[ROLL]  =  X; magADC[PITCH]  =  Y; magADC[YAW]  = -Z;}
  #define MPU6050_EN_I2C_BYPASS // MAG connected to the AUX I2C bus of MPU6050
  #undef INTERNAL_I2C_PULLUPS
#endif


I'll confirm orientations tomorrow and maybe get a flight test if it stops raining.

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: Defines for Chinese IMUs

Post by Katch »

Still raining but the above code has now been tested in GUI - everything is working as expected.

Can someone add this to the public code please.

PatrikE
Posts: 1964
Joined: Tue Apr 12, 2011 6:35 pm
Location: Sweden
Contact:

Re: Defines for Chinese IMUs

Post by PatrikE »

Is this correct?
#define MPU6050_EN_I2C_BYPASS // MAG connected to the AUX I2C bus of MPU6050
/Patrik

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: Defines for Chinese IMUs

Post by Katch »

PatrikE wrote:Is this correct?
#define MPU6050_EN_I2C_BYPASS // MAG connected to the AUX I2C bus of MPU6050
/Patrik


Yes - I've metered the board and this is how it is connected. Mag is also functioning as expected in the GUI.

User avatar
fr3d
Posts: 97
Joined: Sun Feb 06, 2011 11:21 am
Location: Cappelle la grande near the ch'ti village
Contact:

Re: Defines for Chinese IMUs

Post by fr3d »

I've an gy_80 acc(adxl345) & gyro(L3G4200) are ok in gui ,
I will post define lignes this evening.

but mag is not working very well when I tilt board , heading move in random direction. I suppress the little buzzer but always same.
All curves are in accordance with multiwii FAQ

How should be the sensor axis directions

TILT the MULTI to the RIGHT (left side up):
•MAG_ROLL, ACC_ROLL and GYRO_ROLL goes up
•MAG_Z and ACC_Z goes down

TILT the MULTI forward (tail up):
•MAG_PITCH, ACC_PITCH and GYRO_PITCH goes up
•MAG_Z and ACC_Z goes down

Rotating the copter clockwise (YAW):
•GYRO_YAW goes up

The copter stays level:
•MAG_Z is positive ; ACC_Z is positive

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: Defines for Chinese IMUs

Post by Katch »

fr3d wrote:I've an gy_80 acc(adxl345) & gyro(L3G4200) are ok in gui ,
I will post define lignes this evening.

but mag is not working very well when I tilt board , heading move in random direction. I suppress the little buzzer but always same.
All curves are in accordance with multiwii FAQ

How should be the sensor axis directions

TILT the MULTI to the RIGHT (left side up):
•MAG_ROLL, ACC_ROLL and GYRO_ROLL goes up
•MAG_Z and ACC_Z goes down

TILT the MULTI forward (tail up):
•MAG_PITCH, ACC_PITCH and GYRO_PITCH goes up
•MAG_Z and ACC_Z goes down

Rotating the copter clockwise (YAW):
•GYRO_YAW goes up

The copter stays level:
•MAG_Z is positive ; ACC_Z is positive


GY_80 is already done - check the 1st page.

PatrikE
Posts: 1964
Joined: Tue Apr 12, 2011 6:35 pm
Location: Sweden
Contact:

Re: Defines for Chinese IMUs

Post by PatrikE »

GY_86 is included in MultiWii_Shared.

@Katch
Please confirm the function and orientation of the boards.
GY_80 & GY_86 .

/Patrik

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: Defines for Chinese IMUs

Post by Katch »

GY_80 100% confirmed and flight tested

GY_86 100% confirmed in GUI but not flight tested yet

msev
Posts: 186
Joined: Thu Apr 14, 2011 11:49 am

Re: Defines for Chinese IMUs

Post by msev »

Please share links to which board that is?

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: Defines for Chinese IMUs

Post by Katch »

read the thread all the information is there

PatrikE
Posts: 1964
Joined: Tue Apr 12, 2011 6:35 pm
Location: Sweden
Contact:

Re: Defines for Chinese IMUs

Post by PatrikE »

Search for 10 dof on ebay.com.
These links is active Just Now! :!:
GY_86
GY_80

msev
Posts: 186
Joined: Thu Apr 14, 2011 11:49 am

Re: Defines for Chinese IMUs

Post by msev »

Thanks!

flyrobot
Posts: 73
Joined: Thu Apr 05, 2012 3:59 pm

Re: Defines for Chinese IMUs

Post by flyrobot »

Hi Katch,

Have you test flight the GY-86 ? How was it compare with 0.4.3MS?
I plan to buy one.

Thanks,

John

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: Defines for Chinese IMUs

Post by Katch »

Haven't had a chance yet - wet and windy here at the moment. It certainly puts out very clean signals so I have great hopes for it.

I won't be able to compare it to the FreeIMU 0.4.3MS unfortunately as I only have the 0.3.5MS and 0.3.5BMP. But seeing as it is identical sensors in the same configuration I don't believe there would be any perceptible difference in flight characteristics.

flyrobot
Posts: 73
Joined: Thu Apr 05, 2012 3:59 pm

Re: Defines for Chinese IMUs

Post by flyrobot »

I think so, i saw all the sensor using exactly same postion (i meant direction) with 0.4.3MS. Anyway what the different 0.4.0 MS and 0.4.3 MS? Why they change the hardware ? The purpose of my question is which version of 0.4.x MS that similar (identical) with GY-86.

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: Defines for Chinese IMUs

Post by Katch »

Another GY_xx IMU for you - not tested yet as I don't have the board - someone over on RCG will test for me and I'll confirm it later but looking at the high res photos this is almost certainly correct.

config.h addition

Code: Select all

#define GY_85             // Chinese 9 DOF with  ITG3205 ADXL345 HMC5883L LLC


def.h additions

Code: Select all

#if defined(GY_85)
  #define ITG3200
  #define ADXL345
  #define HMC5883
  #define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  = -X; accADC[PITCH]  = -Y; accADC[YAW]  =  Z;}
  #define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] =  Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;}
  #define MAG_ORIENTATION(X, Y, Z)  {magADC[ROLL]  =  X; magADC[PITCH]  =  Y; magADC[YAW]  = -Z;}
  #undef INTERNAL_I2C_PULLUPS
  #define ADXL345_ADDRESS 0xA6
#endif

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: Defines for Chinese IMUs

Post by Katch »

flyrobot wrote:I think so, i saw all the sensor using exactly same postion (i meant direction) with 0.4.3MS. Anyway what the different 0.4.0 MS and 0.4.3 MS? Why they change the hardware ? The purpose of my question is which version of 0.4.x MS that similar (identical) with GY-86.


I'm not sure what the changes were on the 0.4.x versions. They all share exactly the same defines in MultiWii so I think they were just small engineering changes. The GY_86 uses exactly the same defines as the 0.4.3MS so it should be operationally identical.

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: Defines for Chinese IMUs

Post by Katch »

GY_81 ITG3205 BMA180 HMC5883L BMP085, LLC

also waiting for confirmation from someone on RCG

config.h

Code: Select all

#define GY_81             // Chinese 10 DOF with  ITG3205 BMA180 HMC5883L BMP085, LLC


def.h

Code: Select all

#if defined(GY_81)
  #define ITG3200
  #define BMA180
  #define HMC5883
  #define BMP085
  #define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  = -X; accADC[PITCH]  = -Y; accADC[YAW]  =  Z;}
  #define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] =  Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;}
  #define MAG_ORIENTATION(X, Y, Z)  {magADC[ROLL]  =  X; magADC[PITCH]  =  Y; magADC[YAW]  = -Z;}
  #undef INTERNAL_I2C_PULLUPS
#endif


that last code block might need a "#define ITG3200_ADDRESS " statement but I'd guess it's default.

fax8
Posts: 61
Joined: Mon Feb 14, 2011 5:29 pm

Re: Defines for Chinese IMUs

Post by fax8 »

FreeIMU v0.4.0 was the first board I designed with MPU6050.. at that time (September 2011) Invensense was releasing MPU6050 chips marked with ES (engeenering samples). Those sensors had the accelerometer scale factor halved compared to the final version of the MPU6050. If you go into Sensors.pde, in the MPU6050 code you'll see the different scale factor used.

The define for v0.4.0 is still in the code since Alex and other developers/testers were given samples of those boards when we were testing and writing code for the MPU6050.

flyrobot
Posts: 73
Joined: Thu Apr 05, 2012 3:59 pm

Re: Defines for Chinese IMUs

Post by flyrobot »

Hi Fabio,

Many thanks for the information. Im very glad to get this accurate information from the maker. Im using 0.3.5 MS with flyduino mega (i still have little problem with stability compare with quadrino adv, so far im very happy with quadrino adv using ITG3200 and BMP180), i still searching for the best config. I have some question :
1. What is the difference in term of stability between 0.3.5MS and 0.4.3MS ?
2. What kind MPU6050 that GY-86 used? Anyone who bought this imu can share ? Is it marked with ES

Thanks,

John

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: Defines for Chinese IMUs

Post by Katch »

The GY_86 that I have does not use an engineering sample for the MPU6050

Just flight tested my GY_86

Latest dev code default PIDs (unstable using v2.0)

Flies really nicely no wobble - feels as solid as my FreeIMU 0.3.5MS if not a little snappier maybe - which is nice.

Haven't been able to confirm Mag functions in flight - they are perfect in GUI but seem not to be working in flight - possibly a calibration error as another board I was testing today was doing the same thing.

All in all a lovely cheap IMU.

flyrobot
Posts: 73
Joined: Thu Apr 05, 2012 3:59 pm

Re: Defines for Chinese IMUs

Post by flyrobot »

Hi Katch,

Good to hear GY-86 is good. I have 0.3.5MS, it fly shaking but if im using quadrino adv with same frame, motor, esc, its fly super stable. I know quadrino and 0.3.5MS is using same sensor except baro sensor. On 0.3.5MS, do you use LPF filtering? Do you use Internal pullup on ? (sorry its abit out of topic)

John

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: Defines for Chinese IMUs

Post by Katch »

Katch wrote:Another GY_xx IMU for you - not tested yet as I don't have the board - someone over on RCG will test for me and I'll confirm it later but looking at the high res photos this is almost certainly correct.

config.h addition

Code: Select all

#define GY_85             // Chinese 9 DOF with  ITG3205 ADXL345 HMC5883L LLC


def.h additions

Code: Select all

#if defined(GY_85)
  #define ITG3200
  #define ADXL345
  #define HMC5883
  #define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  = -X; accADC[PITCH]  = -Y; accADC[YAW]  =  Z;}
  #define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] =  Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;}
  #define MAG_ORIENTATION(X, Y, Z)  {magADC[ROLL]  =  X; magADC[PITCH]  =  Y; magADC[YAW]  = -Z;}
  #undef INTERNAL_I2C_PULLUPS
  #define ADXL345_ADDRESS 0xA6
#endif


100% Flight tested and verified - can someone add it to the multiwii_sharred please?

PatrikE
Posts: 1964
Joined: Tue Apr 12, 2011 6:35 pm
Location: Sweden
Contact:

Re: Defines for Chinese IMUs

Post by PatrikE »

Gy_85 added to shared.

Iw'e orderd a GY_86.
Just to wait for it to arrive...:D

/Patrik

Arf
Posts: 22
Joined: Tue May 22, 2012 10:48 pm

Re: Defines for Chinese IMUs

Post by Arf »

I bought one of those Chinese GY-521 - MPU-6050 boards off eBay. I am hooking it up to an Arduino nano, I can't seem to find a schematic of the GY-521.

Is the pin labelled VCC meant to take 5volts or 3.3volts? I see something that might be a voltage regulator on the board, but I can't make out the writing.

Do these things need pull ups on SDL and SDA?

Should the current MPU-6050 MultiWii defs be enough to get it going?

Katch
Posts: 280
Joined: Thu Aug 04, 2011 1:44 pm

Re: Defines for Chinese IMUs

Post by Katch »

Arf wrote:
Is the pin labelled VCC meant to take 5volts or 3.3volts? I see something that might be a voltage regulator on the board, but I can't make out the writing.


Yes either or.

Arf wrote:
Do these things need pull ups on SDL and SDA?


No they have a built in LLC so it doesn't matter what level I2C you connect to.

Arf wrote:
Should the current MPU-6050 MultiWii defs be enough to get it going?


Should be yes as it is just a single sensor in its default orientation. Test and let us know.

Arf
Posts: 22
Joined: Tue May 22, 2012 10:48 pm

Re: Defines for Chinese IMUs

Post by Arf »

Katch wrote:
Should be yes as it is just a single sensor in its default orientation. Test and let us know.


I hooked up the GY-521 IMU to an Arduino nano last night, just on the bench as a test. All I needed to do was #define MPU6050 in config.h and that worked. Just using the release MultiWii 2.0 verison atm.

Initially it gives a full graph of random ACC_ROLL noise just sitting still on the bench, which was kind of weird, it calms down to a normal graph when click on calibrate. Should that be automatic? Seem to have to click calibrate each time I power it up, though it would have saved it like PID to flash.

I am a little uncertain about the orientation of the board. Which way is the front?

Pictures here:

http://s1134.photobucket.com/albums/m61 ... 10x310.jpg

ATM the arrow that says X seems to behave like forward in the GUI.


http://s1134.photobucket.com/albums/m61 ... 10x310.jpg


Which version of MultiWii should I be using for the MPU6050, MultiWii 2.0 or the current dev snapshot?

Tazzy
Posts: 75
Joined: Sun Jun 19, 2011 4:45 pm
Location: Sweden

Re: Defines for Chinese IMUs

Post by Tazzy »

Katch wrote:Just received my GY_86 with MPU6050 etc. News is the Mag is connected to the MPU6050 AUX i2c bus.

This code should work but I haven't tested it yet.

config.h

Code: Select all

#define GY_86             // Chinese 10 DOF with  MPU6050 HMC5883L MS5611, LLC


define.h

Code: Select all

#if defined(GY_86)
  #define MPU6050
  #define HMC5883
  #define MS561101BA
  #define ACC_ORIENTATION(X, Y, Z)  {accADC[ROLL]  = -X; accADC[PITCH]  = -Y; accADC[YAW]  =  Z;}
  #define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] =  Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;}
  #define MAG_ORIENTATION(X, Y, Z)  {magADC[ROLL]  =  X; magADC[PITCH]  =  Y; magADC[YAW]  = -Z;}
  #define MPU6050_EN_I2C_BYPASS // MAG connected to the AUX I2C bus of MPU6050
  #undef INTERNAL_I2C_PULLUPS
#endif


I'll confirm orientations tomorrow and maybe get a flight test if it stops raining.


Thanks Katch for the gy_86 defs.
I did buy several GY-86 - (MPU6050 HMC883L MS5611) and have tested them all now and they work so good with default pid they are also shameless cheap but they seems to have good quality !
Barro holds the quad perfect +- 30cm in small wind and level and acro works also good so i can recommend them.

//Tazzy

User avatar
birdofplay
Posts: 5
Joined: Thu Jun 07, 2012 4:26 am

Re: Defines for Chinese IMUs

Post by birdofplay »

I found this thread an skipped thru it with expectation, sigh ...

I come from months of testing and a box full of broken props learning to fly Quads on my own using two Minsoo Kim Boards
One with metal can sensors and the other with the Mems sensors.

I've gotten to be a Fair pilot but my instincts are rooted in Fixed Wing experience so "things still happen" .

Yet, I figured I was Ready for the Next Step !

So after reading the Crius boards are not so good, I got a ZMR MultiWii SE board with all those swell sensors.
It claims to have ITG3205 Gyros, BMA180 Accelerometers, BMP085 Baro and HMC58831 Mag heading sensors. Apparently the G-81 ( yes/no ) ?
HOW COULD I LOOSE !

Oh, but wait ... I see now, the ZMR's "ARE" Crius boards, just not CALLED that by some vendors. Sigh again ...

The good news is that I've shut up and stayed quiet and gotten it to work on my own ( well sort of )

This thing is Twitchier than EITHER of my KK Kim pcb's.

Using MultiWii_2_0 I've been playing the PID game .

I have to say that the GUI is terrific and instilled me with Great Hopes, a NICE piece of programming. Thanks Guys !
Everything seemingly works.

But I also have to say that the Baro is All Over the Place at least Graphically - Wheew !

And my Bird Goes BONKERS if I even THINK about using the ACTIVATE Switch !!!
Forget the Baro, and Level is a bit less twitchy and well MAG is kinda Ho Hum !

BUT BUT BUT !!! THAT is WHY I got this upgraded sensor filled and integrated, single PCboard !

I was dearly looking for a bit of stability an less white knuckled pilatage !

So here is my question ...

Does ANYONE have suggestions on what PIDs I should be using AS OPPOSED TO what it came with ?


I am really getting tired of Guessing and Testing and being disappointed.

Motors Good, ESC's Good, Props Balanced - This is the same machine that I can fly with the KK Kim boards !
Gyro's calibrated umpteen times. Even the Mag.

I'll stay busy testing in the back yard and changing out broken props in the shop
until someone takes pity on me.

Thanks in advance,

Bob
Northwest Cutout Service.

User avatar
birdofplay
Posts: 5
Joined: Thu Jun 07, 2012 4:26 am

Re: Defines for Chinese IMUs

Post by birdofplay »

Well A few minutes AFTER I posted my little rant above I found this ...

https://docs.google.com/spreadsheet/ccc ... 5c1E#gid=0

It AT LEAST has some good settings and places to start.

Next - how to get the Alt Hold to STOP HUNTING !

It seems to get worse once perturbed and then never seems to smooth down or stabilize.
Chasing after it with throttle movement is a joke.

I do have it pretty much GOOD with the Level function.

The quest goes on

Bob
Northwest Cutout Service

whit101
Posts: 2
Joined: Mon Jun 25, 2012 5:08 pm

Re: Defines for Chinese IMUs

Post by whit101 »

Bob, I've heard that protecting the board/Baro from prop-wash helps. I have a HT-FPV "open" frame so I used an old lexan RC car body(light strong and cool looking) as a covered. Whit

User avatar
jevermeister
Posts: 708
Joined: Wed Jul 20, 2011 8:56 am
Contact:

Re: Defines for Chinese IMUs

Post by jevermeister »

Hi,
I received my GY-86 yesterday and replaced my old sensor combo (WM+, BMA020, HMC5883L, BMP085) with it.
I ran v2.1 moments before the sensor switch and had a perfect flying QuadX, I tested the GY86 today but now the copter is very twitchy.
When I throttle up the motors start to twitch a little, the coper seems very unstable, there is a cosntand osscilation and it has a very bad random level drift.

After a few minutes of flight the copter got crazy and crashed, when I tried to restart in hover mode the right motors gave full throttle and in acro mode the gyro does not seem to work.

I only connected 3.3V to the 3.3V port of the board, si that correct? There is nothing connected to VCC at the moment.
I use stock PID with some Throttle PID attentuation and different rates...
There are a few inevitable vibrations present in the copter but they never where a problem for the old sensors...

Whats wrong here?


Nils

Tazzy
Posts: 75
Joined: Sun Jun 19, 2011 4:45 pm
Location: Sweden

Re: Defines for Chinese IMUs

Post by Tazzy »

jevermeister wrote:Hi,
I received my GY-86 yesterday and replaced my old sensor combo (WM+, BMA020, HMC5883L, BMP085) with it.
I ran v2.1 moments before the sensor switch and had a perfect flying QuadX, I tested the GY86 today but now the copter is very twitchy.
When I throttle up the motors start to twitch a little, the coper seems very unstable, there is a cosntand osscilation and it has a very bad random level drift.

After a few minutes of flight the copter got crazy and crashed, when I tried to restart in hover mode the right motors gave full throttle and in acro mode the gyro does not seem to work.

I only connected 3.3V to the 3.3V port of the board, si that correct? There is nothing connected to VCC at the moment.
I use stock PID with some Throttle PID attentuation and different rates...
There are a few inevitable vibrations present in the copter but they never where a problem for the old sensors...

Whats wrong here?


Nils


My gy86 is connected to 5v because it have built in llc and it works perfect with standard pids and none filter settings so try to resolder it to 5v and try again.

// Tazzy

User avatar
mbrak
Posts: 136
Joined: Sat Dec 03, 2011 8:08 pm
Location: Germany, Lemgo

Re: Defines for Chinese IMUs

Post by mbrak »

jevermeister wrote:Hi,
I received my GY-86 yesterday and replaced my old sensor combo (WM+, BMA020, HMC5883L, BMP085) with it.
I ran v2.1 moments before the sensor switch and had a perfect flying QuadX, I tested the GY86 today but now the copter is very twitchy.
When I throttle up the motors start to twitch a little, the coper seems very unstable, there is a cosntand osscilation and it has a very bad random level drift.

After a few minutes of flight the copter got crazy and crashed, when I tried to restart in hover mode the right motors gave full throttle and in acro mode the gyro does not seem to work.

I only connected 3.3V to the 3.3V port of the board, si that correct? There is nothing connected to VCC at the moment.
I use stock PID with some Throttle PID attentuation and different rates...
There are a few inevitable vibrations present in the copter but they never where a problem for the old sensors...

Whats wrong here?


Nils


hi nils

received my gy-86 some days before. had the same problems as you discribe.
my solution was to change the pad between frame and imu to a very soft one. i use a heli-gyro pad from my microbeast (flybarless system).
now i can raise p-values up to 6.5 and more without any problems.
i think the mpu6050 need a more soft pad as for example a itg3200 or wm+

the propeller system of my copter has some vibrations, because i cannot eleminate dynamic unbalance up to 100%.

br michael

p.s. i use the vcc pin to inject 5v into the imu from the mega2560.

User avatar
jevermeister
Posts: 708
Joined: Wed Jul 20, 2011 8:56 am
Contact:

Re: Defines for Chinese IMUs

Post by jevermeister »

Hi,
I applied LPF of 155Hz and it got better.
With LPF of 98Hz the result is now as eprfekt as before. (Is there a negative effect using the LPf)
I can make flips like before, everything is okay.

What difference does it make if I power the board via 5V?

I have some troubles with the wires, my flyduino is connected to the frame via dampeners and I applied the GY-86 to the flyduino via Mirror Foam Tape but the cables are delivering a
lot of vibrations..
after all I better had bought the new CRIUS All in One Mega...

Nils

User avatar
mbrak
Posts: 136
Joined: Sat Dec 03, 2011 8:08 pm
Location: Germany, Lemgo

Re: Defines for Chinese IMUs

Post by mbrak »

jevermeister wrote:Hi,
I applied LPF of 155Hz and it got better.
With LPF of 98Hz the result is now as eprfekt as before. (Is there a negative effect using the LPf)


dont know :) i want it pure without any filter :)


jevermeister wrote:What difference does it make if I power the board via 5V?


the shouldn't be a difference, but why not using an existing llc? :)


no way to balance your prop system?
my other quad with nanowii has no pad to calm down the vibratons. the prop system is very well balanced. no lpf filter... pure flying

br michael

User avatar
jevermeister
Posts: 708
Joined: Wed Jul 20, 2011 8:56 am
Contact:

Re: Defines for Chinese IMUs

Post by jevermeister »

Hi,
I balanced everything as good as I could. The props are not the source of the vibrations, the motors are creating them.
I use new bearings and new shafts but these CF2822 are s**t.
But I use to crash very often because I try new s**t every day so it is too early to get new motors ;-).
If the LPF helps me then it should be ok as fara as there are no cons.

I will review my rwirng, perhaps I will use smaller wires and connect 5V to the board.

Thank you very much for your hints!
Nils

msev
Posts: 186
Joined: Thu Apr 14, 2011 11:49 am

Re: Defines for Chinese IMUs

Post by msev »

I'd like to see some video of gy-80 running on 2.1 software? Can someone film their multi?

chris ables
Posts: 317
Joined: Wed Feb 08, 2012 8:42 pm
Location: United states

Re: Defines for Chinese IMUs

Post by chris ables »

jevermeister wrote:Hi,
I balanced everything as good as I could. The props are not the source of the vibrations, the motors are creating them.
I use new bearings and new shafts but these CF2822 are s**t.
But I use to crash very often because I try new s**t every day so it is too early to get new motors ;-).
If the LPF helps me then it should be ok as fara as there are no cons.

I will review my rwirng, perhaps I will use smaller wires and connect 5V to the board.

Thank you very much for your hints!
Nils

I had those same problems with a friends quad and we ended up setting the p level to 2.5 on pitch and roll and run the lowpass filter on lowest setting ! The lower p level just lowers the gyro rate enough to make up for the filter ! And this only applies to someone who can fly good ! We Did flips and rolls with his quad yesterday all day and no problems whatsoever ! And it still has pretty bad vibration , via bluetooth & android gui ! I heard that the lpf causes a lag but i beg to differ ! Lower p rates and higher rcrates and rates on roll& pitch can make an aircraft pretty quick and aggresive ! Hope this helps you !

mahowik
Posts: 332
Joined: Sun Apr 10, 2011 6:26 pm

Re: Defines for Chinese IMUs

Post by mahowik »

it seems I have found a bug. For new CRIUS_AIO_PRO_V1 board obsolete MPU6050_EN_I2C_BYPASS define is used...
It should be new one MPU6050_I2C_AUX_MASTER

Code: Select all

#if defined(CRIUS_AIO_PRO_V1) 
  #define MPU6050
  #define HMC5883
  #define MS561101BA
  #define ACC_ORIENTATION(X, Y, Z) {accADC[ROLL] = -X; accADC[PITCH] = -Y; accADC[YAW] = Z;}
  #define GYRO_ORIENTATION(X, Y, Z) {gyroADC[ROLL] = Y; gyroADC[PITCH] = -X; gyroADC[YAW] = -Z;}
  #define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = X; magADC[PITCH] = Y; magADC[YAW] = -Z;}
  //#define MPU6050_EN_I2C_BYPASS // MAG connected to the AUX I2C bus of MPU6050
  #define MPU6050_I2C_AUX_MASTER // MAG connected to the AUX I2C bus of MPU6050 
  #undef INTERNAL_I2C_PULLUPS
#endif

Pyrofer
Posts: 180
Joined: Sat Apr 14, 2012 2:55 pm

Re: Defines for Chinese IMUs

Post by Pyrofer »

I have the Crius AIO Pro and just used #define FREEIMUv04 which appears to work.
What's the difference between this and the Crius define? Was this bug actually causing problems with flight ?

robocon2013
Posts: 1
Joined: Sat Aug 25, 2012 6:26 am

Re: Defines for Chinese IMUs

Post by robocon2013 »

PLEASE, HELP ME !!! I can't connect module GY-86 by i2c bus, i don't now sensor address, who can show me ??

User avatar
mbrak
Posts: 136
Joined: Sat Dec 03, 2011 8:08 pm
Location: Germany, Lemgo

Re: Defines for Chinese IMUs

Post by mbrak »

robocon2013 wrote:PLEASE, HELP ME !!! I can't connect module GY-86 by i2c bus, i don't now sensor address, who can show me ??


where is the problem?
just use the ready CY_86 define in config.h and fly! no need to modify adresses or so...

igor_sk
Posts: 5
Joined: Sun Sep 09, 2012 6:53 pm

Re: Defines for Chinese IMUs

Post by igor_sk »

I have GY-80 with L3G4200 and ADXL345 on a quad, the copter flies but it twitches a little and drifts sometimes so what are correct PID settings or do I have to increase the LPF factors for the gyro and acc?
Current PIDs are from mahowik
ROLL/PITCH 6.0-0.03-40 , YAW 8.5-0.045, LEVEL 7.0-0.01

Exyator
Posts: 6
Joined: Thu Mar 29, 2012 3:39 pm

Re: Defines for Chinese IMUs

Post by Exyator »

Hi all,

I'm was running the following setup on my hexacopter:
Paris V4r3
GY_80 10DOF IMU
MultiWii_dev_20120528 with this instead of the normal L3G4200D code (in the sensors tab):

Code: Select all

// ************************************************************************************************************
// contribution from Ciskje, corrected by wektorx
// I2C Gyroscope L3G4200D
// ************************************************************************************************************
#if defined(L3G4200D)
void Gyro_init() {
delay(100);
delay(5); i2c_writeReg(0XD2+0 ,0x20 ,0b01001111 ); // CTRL_REG1  DR 200Hz BW 20Hz
delay(5); i2c_writeReg(0XD2+0 ,0x21 ,0b00101001 ); // CTRL_REG2
delay(5); i2c_writeReg(0XD2+0 ,0x22 ,0b00000000 ); // CTRL_REG3   all disable
delay(5); i2c_writeReg(0XD2+0 ,0x23 ,0b00110000 ); // CTRL_REG4  2000dps
delay(5); i2c_writeReg(0XD2+0 ,0x24 ,0b00000000 ); // CTRL_REG5
delay(5); i2c_writeReg(0XD2+0 ,0x2E ,0b00000000 ); //
}

void Gyro_getADC () {
  TWBR = ((16000000L / 400000L) - 16) / 2; // change the I2C clock rate to 400kHz
  i2c_getSixRawADC(0XD2,0x80|0x28);

  GYRO_ORIENTATION( ((rawADC[1]<<8) | rawADC[0])/4  ,
                    ((rawADC[3]<<8) | rawADC[2])/4  ,
                    ((rawADC[5]<<8) | rawADC[4])/4  );
  GYRO_Common();
}
#endif

Everything was working great.

Now I have upgraded to Multiwii V2.1 because I added an I2C GPS and tried with the "stock" code, I get no I2C errors but the gyro acts pretty bad once the motors are running (oscillations even before takeoff).
So I tried changing the code to the above, and I get a lot of I2C errors and no data from the gyro (in the GUI).

What do you think I should do?

Thanks in advance,
Exyator

timecop
Posts: 1880
Joined: Fri Sep 02, 2011 4:48 pm

Re: Defines for Chinese IMUs

Post by timecop »

I'd guess you should use the 7bit i2c address (0x69) instead of 0xD2.

Post Reply