Multiwii MWC, Chinese 10DOF (codename GY-80) and Arduino Nano V.3: hooking and testing

 

This image shows how to connect the pro-mini to the gy-80Well, i just received my i2c sensors breakout board

Here it is what the Multiwii software configuration calls GY_80 or GY-80.
There is no brand, no model, no serial.
We know something just about single main components/chip:

UPDATED (2013-01-31): Before you start, maybe you want to checkout this post about [How to]New 10DOF 9-axis Attitude Indicator L3G4200D ADXL345 HMC5883L BMP085 Module This the same board with another shape and a different contacts configuration. It’s i2c as well.

  • 1 L3G4200D: 3 axis gyro [DATASHEET],
  • 1 ADXL345: 3 axis accelerometer [DATASHEET],
  • 1BMP085: atmospheric pressure sensor (temp compens) [DATASHEET],
  • 1 HMC5883L 3 axis digital compass [DATASHEET],
  • Onboard LLC (works both at 3 and 5 volts).
Image of the Chinese 10 DOF IMU
Chinese 10 DOF ADXL345 L3G4200D HMC5883 BMP085. This is named GY-80 or GY_80 into MWC config.h

Actually i’ve spent several hours trying to figure out how to use the I2C bus with this IMU that has at least 3 different i2c addresses to be managed.

There are 2 choices:

  1. Using the single components output (look at the image, pins on the right)
  2. Using I2C (just 4 wires, much more comfortable and desireable but, as you can see later, they need some added resistor).

Alternatively to method 2 there is also another method but i did not find any documentation about that so i preferred to leave it alone: on the back side of the IMU there are 2 components addressing jumpers to be soldered or cutted (three elements), i don’t really know what does what, so i prefer the second method as i think is much more elegant (informatically speaking), cleaner (less cable on the breadbord that is a good thing especially for people like me that have almost all jumpers wires of the same color 🙂 )

ADDED: the seller was so kind and sent me the schematics (see below for download).

So we will hook this imu to a couple of Arduino models. I have right here, for testing,

  • 1 Arduino Uno Rev3,
  • 1 Meduino (enanched 3/5v, switch onboard),
  • 1 Arduino Nano V.3.

I would go with Arduino Nano V3 first as it has already a mini usb port (unlikely the meduino that needs a FTDI Breakout or, at least, another arduino board to be programmed, we will see how to do this later), and its dimensions are really flying-friendly unlikely the Uno rev3, with enough I/O available.

If you have previous than 3 verison of the Arduino Nano you will hook your imu like shown in the image following:

pins are:

Arduino A12 -> gy-80 vcc
Arduino GND -> gy-80 GND
Arduino pins in yellow right between the ATM adn pins 2 and 3 respectively to SDA and SCL

i don’t know how to manage the internal pullups, but the ebay seller sent me the the schematics that i promptly add here GY-80-aka-10DOF SCHEMATICS.pdf

This is how you want to connect your GY-80 IMU to you Arduino pro mini before v3
This is how you want to connect your GY-80 IMU to you Arduino pro mini before v3

Instead, if like me, you have an Arduino pro mini v.3, you want to hook it like in the pic below.

This image shows how to connect the pro-mini to the gy-80
Here it is how to connect Arduino pro mini with GY-80 IMU. Please notice the two 2.2k Ohm Pullup resistor between the I2c channel and vcc.

 

This picture shows how i connected the GY-80 to the Arduino Nano V3

Pins are:

Arduino A4 -> GY-80 SDA (with pullup resistor on vcc)
Arduino A5 -> GY-80 SCL (with pullup resistor on vcc)
Arduino 5V -> GY-80 VCC
Arduino GND -> GY-80 GND

 

 

The GUI …

In these two images you can see values from the gui before and after using the two pullup resistors

BEFORE:

This image shows messy  values from sensors.
You can see how messy were values from sensors. Enlarge this pic to see circuit details.

 

AFTER:

This image shows the Multiwii gui with acceptable values coming from sensor imu GY-80
You can see things go normally here, click for fullsize pic and details

 

Instead, if you want to use the enanched Meduino version, you just follow the steps required for the pro mini v3 and just remap SDA and SCL pins to the correct ones. Just remember: Meduino has no usb port, and it comes with an ATMEGA328P-AU. Also the Ardduino pro mini has a lot of leds that gives a pro fashioned blinking stuff, that are useful to impress girls 🙂 .

If instead you want to use an Arduino uno (even if it is not reccomended for flying things as it weights and it is 3 times larger than the mini) directions are quiet similar to the pro mini v3 except for the uno that has two dedicated pins for SDA and SCL (arduino nano v3 uses A4 and A5) located next to the reset button, the last two in the header pin, the lables are on the back side of the board (see image below)

This image shows where are located the SCL and SDA pins on the Arduino Uno rev3 board
You can find your SDA and SCL pin lables turning your board upside down.

 

So, if you are like me you will read this post after several hours of trying by yourself without success.
In fact when you will connect your imu to your arduino nano, you will open up multiwii configurator gui and you will see a lot of I2c Errors, and something (the gyro probably) not working. Also what seems to work, does not actually return usable data. So, something went wrong, or something is missing.

Something is missing and something is not how it is supposed to be.
Ok what is missing is the 2.2k pullup resistor (if still missing): you have to use one both SCL and SDA channel, connected on the other side to the vcc (see the picture above).

But something still isn’t going as it should. The Configurator gui still gives errors and gyro is still not working. After further researcher, digging to death, i found that there is a parameter about the address of the L3G4200D that possibly conflicts. So to fix this let’s modify the Multiwii source, the file called “sensors.ino” you can access it by the tabs on the top of the arduino gui right after opening multiwii.ino.

This address has to be changed from 0x69 to 0x68. Just like this

 

 

 

 

 

This will make the gyro works properly otherwise you will have a non-working gyro and messy values from other sensors.

Once done, save, upload to the board, open the multiwii configurator, choose the right serial port and press start to test the sensors. If all goes as expected the only concern of yours is about the IMU orientation, after fighting with the compass for a while 🙂 , if you soldered the header pins on the imu on the wrong side you’ll have to unsolder and fix or find out the imu orientation in the code of multiwii and change it… Probably i should have written this at the beginning of the post and not at the end, but grant me some fun at your expenses, and also you will learn, as i did: twicely think twice

Download Schematics for GY-80-aka-10DOF.pdf

Sensors.ino – Arduino sketch for multiwii already modified for GY-80

config.h Arduino configuration for GY-80 and Arduino NANO V.3

Comments are welcome! 

Incoming search terms:

  • gy-80 arduino (78)
  • gy-80 arduino code (31)
  • MultiwiiMWC Chinese10DOF(codenameGY-80)andArduinoNanoV 3:hookingandtesting|GiuseppeUrsoBlog (25)
  • gy-80 schematic (24)
  • gy-80 imu (17)
  • gy80 (13)
  • gy-80 and arduino (10)
  • anything (2)
  • arduino multiwii gy-88 (2)
(Visited 18,676 times, 1 visits today)

Author: Giuseppe Urso

Giuseppe lives in Haarlem now with his shiny dog, Filippa
In 1982 received his first home computer, a Commodore 64, followed by Datasette and a 1541 Floppy Disk Drive.
In 1999 he installed his first Linux distro (LRH6).
In 2006 he switched to Debian as favourite OS. Giuseppe Urso actively sustains the Free Software Fundation and his founder Richard Mattew Stallman, he speaks to people trying to convince them to join the fight now, and about how important is to use Free Software only.
He has a job as Infra Specialist at Hippo Enterprise Java Cms an Open Source Enterprise class Content Management System, one of the coolest company ever, in Amsterdam. He’s always ready to install Debian on other people computers for free.

41 thoughts on “Multiwii MWC, Chinese 10DOF (codename GY-80) and Arduino Nano V.3: hooking and testing”

  1. Very nice work. Why do you say, “if you soldered the header pins on the imu on the wrong side you’ll have to unsolder and fix”? Why can’t you solder all of the header pins in the prefabricated holes?
    I find your I2C errors very interesting because I also have a China 10DOF IMU (L3G4200D+ADXL345+HMC5883L+BMP085), yet my board looks a little bit different than the one in your picture.
    I didn’t even know the Arduino had the dedicated SCL/SDA pin on the board, in fact I have always been curious to what those pins were (obviously not curious enough to look it up or flip the board over lol).
    Since I was unaware of the SCL/SDA on the UNO board I followed the schematic from the multiwii site and connected Analog 5 pin to SCL and Analog 4 pin to SDA. Of course I also connected the 5V pin and the GND pin from the IMU to the Arduino’s 5v/GND pins. I made a few minor changes in the config.h to define GY_80 and started up the GUI and wholoa, I2C error free. All sensors were accounted for. This is the board I am using: http://www.ebay.com/itm/271082033239?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649.
    Keep in mind that I have not made a test flight with this yet so who knows how it will act, but I just thought it was strange you got all of those errors w/o a pullup resistor. So I tried moved the jumper wires from A4/A5 to the UNO’s SCL/SDA, checked the gui and once again error free. Here are some screenshots. The 1st is with it connected to A4/A5 and the 2nd connected to the SCL/SDA pins:

    Think I will have issues getting it tuned in? That’s really why I keep putting it off, I don’t want to deal with the hassle if it doesn’t dial in fairly quick.
    Thanks!

    1. Hi H4CKN3T,
      i ment exactly to solder the headers in the prefabricated holes, but the direction you solder will determine the imu orientation.
      I think i’ve seen your imu: it is slightly longer than mine and hey, it’s cheaper than mine!!
      Don’t give up, tuning can take some time, also i didn’t flew mine yet, because of several reasons, but mainly because i fried my tx inverting its battery polarity… I just ordered a new one, but it has yet to arrive, and as a new TX i have to do all modifications (including ER9x, backlight, moving the antenna on the tx module etc…) i already made on my old tx. I think it will take at least a couple of weekends 🙁
      Let me know how it goes!
      I will post something as soon as i’m on the road again.

  2. Oh of course, now I see what you meant. That’s funny because after I posted that I soldered my IMU board down to the protoshield I am using with the UNO, and finished it’s enclosure. When I plugged it back in the GUI the image of the quad on the GUI had a different orientation and I know I have it facing the exact same way I did when I tested it before soldering. How weird is that… Makes me wonder about this board. I noticed my screenshots were filtered out from my previous comment, here are links to them, I used html image tags before.
    http://h4ckn3t.com/images/10dof.jpg
    http://h4ckn3t.com/images/10dof-wiring2

    I ended up soldering SCL and SDA to the SCL and SDA Arduino pins I learned about from your post, the readings were actually slightly smoother when connecting them there compared to A4/A5, so thanks! I’ll keep you posted on any future progress. Thx again

    1. I don’t know if i’m looking the bery same thing you are, i’ve never seen thi diagram before, but d3,d9,d10 and d11, if i’m not wrong, are used for motors. Isn’t it?
      And if you have an X configuration you should connect:

      Pin 03 \ / Pin 10
      Pin 11 / \ Pin 9

      I hope i understand what you asked.
      Let me know.
      Ciao!

    1. Somem news…
      I’m switching to arduino uno because of the sensor shield, and you know what? I just realized that since I will no longer use the hand made board for mini+imu, i will probably have to unsolder the pins and resolder them to the other side 🙂 funny.

  3. OK I am officially stuck. I’ve almost about ripped the entire board out in frustration. I’ve got the GUI working per the multiwii sensor test documentation (left side up, values go up (or whatever it said, not at a PC)). Ive tied strings to it and its like the motors are full blast right off the bat. It wants to flip Immediately and I’ve tried changing the xyz values w/no luck. Yet it makes it look good in GUI. Im getting so frustrated I’m about to cut my loses, which I’ve never done before. Any advice? Obviously it’s an orientation problem, I’m just lost at what to do

  4. Mmm if someone asked me to bet 1 euro on the cause, i would bet on reversing the z acc/gyro vals.
    OR as second chance, the motor order…
    Are you able to arm/un-arm?
    It seems that when it climbs the sensor thinks that is falling (if I correctly understood your problem, of course). Anyway, more precise informations after this weekend. I have to flash my replacement remote (arrived yesterday) with ER9x and then i will try the Uno + gy-80.
    Let me know what do you think about reversing z axis…

    1. To look something like this (I’ve already changed some of the other values):

      #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;}

  5. Thank you for this great article…
    I just want to comment that I use this IMU
    http://blog.giuseppeurso.net/wp-content/uploads/2013/01/Multiwii-IMU-GY-80-BMP085-nine-axis-L3G4200D-ADXL345-HMC5883L-BMP085-IMU-magnetic-acceleration-gyroscopes.jpg

    and when I used address 0x68 for gyro it didnt work and I used address 0x69
    I also commented #undef INTERNAL_I2C_PULLUPS
    #if defined(GY_80)
    #define L3G4200D
    #define ADXL345
    #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 …….. NO NEED
    #define ADXL345_ADDRESS 0x53
    #endif

    and it works great as per GUI of Wii…. I havent mount it on a quad yet.

    Regards,
    M. Hefny

    1. Thank you very much for these news!! This ia an important comtribution.
      Maybe an update in multiwii or simply different addressing?
      I’ll try very soon 😉
      Can you tell me where i can buy this IMU and costs?
      Thanks, dude.
      Ciao!

    2. good to know, as i’m going to test this version too.
      I think that this two imu are made by different producers, it’s a coincidence they have the very same sensors… What do you think?

  6. Dear Giuseppe,

    thanks for the great tutorial. I bought the GY-80 in ebay, I can send you the seller. Just a question about the installation of the sensors with arduino uno rev2, I connect the an in 4 and 5 to sdl and sda of the board then I tried first to upload to arduino the multiwii_2_1.ino but it didn’t work with more errors so I run multiwiiconf, without success… is it the correct procedure?
    Do I need to install arduino libraries to run multiwii ? I’m using Arduino on Ubuntu platform.

    Follow Italian translation.

    Ciao Giuseppe, grazie del tutorial, ti posso inviare il nome del venditore dal quale ho acquistato la board, me l’ha spedita da Hong Kong è veloce e particolarmente conveniente.
    Non ho molta esperienza (direi nessuna) con la multiiwii, quindi viste le mie difficoltà nel testare il sensore ho provato a scriverti. Innanzi tutto vorrei sapere l’esatta procedura con la quale fare l’upload dell multiwii su arduino uno rev2 poi successivamente vorrei sapere come far funzionare
    l’interfaccia grafica.
    Sia l’upload su arduino che l’interfaccia grafica della multiwii mi danno un sacco di errori e sinceramente non capisco il motivo. Sono necessarie delle librerie per far funzionare multiwii_2_1.ino su arduino? Per quanto riguarda l’interfaccia grafica (a parte jre) è necessario installare qualcos’altro sotto ubuntu?
    Ovviamente su arduino non ho mai avuto problemi a fare l’upload di diversi programmi per funzionamento di servi e/o altri sensori come l’adxl335 etc,etc…

    Ti ringrazio, se mi invii il tuo indirizzo di scrivo il link del seller e ti invio gli schematici che mi ha inviato.

    Grazie molte

    Andrea

    1. Ciao Andrea,
      ti rispondo in italiano visto che lo siamo entrambi 🙂
      Ti suggerisco di andare per step.
      Per prima cosa, prova ad iniziare con il caricare sul tuo Arduino Uno uno sketch di esempio tra quelli forniti nella IDE, l’ esempio chiamato “blink” è ottimo per capire se ci sono difficoltà nel compilare e caricare, l’ unica cosa che fa è di fare lampeggiare un led che hai già su Arduino. In questo caso la compilazione è garantita (lasciando intatto il codice) per questo verificherai giusto che l’ upload funzioni. Nel caso non dovesse funzionarti, posso darti qualche indicazione su cosa fare, ma scongiuriamo per il momento questa possibilità.
      Dovrai ovviamente selezionare dal menu “strumenti” il corretto modello di Arduino ed la porta seriale da utilizzare.

      Una volta che hai preso confidenza con questa procedura, tutto quello che dovrai fare è di fare la stessa procedura ma con il codice di multiwii. Scaricalo e aprilo facendo doppio click sul file principale che si chiama Multiwii.ino.
      Una volta aperto il pacchetto noterai che è composto di più files trai quali ce n’è uno chiamato config.h. Quest’ultimo è il file da editare per selezionare il giusto modello di multirotore ( o aereo / elicottero), il corretto modello della IMU ed altre impostazioni.

      In particolare per queso modello avrai bisogno di aggiungere due resistenze ‘pullup’ da 2.2k tra sda e vcc e tra scl e vcc, tipo:
      ARDUINO SDA———–IMU SDA
      |
      |<- resistenza | 5V.~ Tieni d'occhi le immagini di questo post. Fammi sapere come va. Hai speso molto per la IMU? Ciao!

  7. Ciao Giuseppe,

    grazie dei suggerimenti. Innanzi tutto ho scoperto che l’interfaccia grafica in java (multiwiiconf) non mi funzionava per via di un problema di configurazione di Ubuntu, che ho risolto. Successivamente, compilando il codice Multiwii.ino con arduino1.0.3 , mi dava un errore (MultiWii_2_1:502: error: ‘SERIAL_COM_SPEED’ was not declared in this scope) ho scoperto che nella riga 402 del config.h modificato bisogna definire la velocità della porta come #define SERIAL_COM_SPEED 115200 (e NON come #define SERIAL0_COM_SPEED 115200), o meglio così facendo scompaiono gli errori. Questa sera provo a caricarlo sull’arduino, connetto l’hardware e ti faccio sapere.

    Grazie molte

    Andrea

      1. Ciao Giuseppe,

        la IMU funziona, solo piccoli accorgimenti. Ora vedo di capire come modificare l’interfaccia grafica per ingrandirne un po’ la finestra e prendo un po’ dimistichezza con la multiwii.

        La GY-80 l’ho presa da un seller cinese, ho aspettato 20 gg! In Italia costa + del doppio!

        A presto e grazie

  8. Hi!
    I would be gratefull if you could explain me how can I read/write data, if one i2c bus supports 4 sensors?
    I realize that we use registers, but problem is that, sometimes occurs the same register address for more than one sensor. If i missing something?
    Thanks in advance for answer

    1. I’m currently working on this topic and i will post a guide to this. For the moment, if I was in your shoes, I would test each sensor alone, to see if there is one which needs a pullup resistor. Check schematics too.
      SOmetimes registers can be set by shorting pads on the back of the breakout board.
      Did you find something about sensors googling?
      Can you tell me the sensor names (codenames) and the Arduino board you are using?
      Let me know, Ciao!

  9. Sorry for that stupid question, but I trying since 2 hours without any success.
    Im using ARDUINO 1.0.3, when compiling sensors.ino, I’m getting the following error messages. What am I doing wrong. Do I miss a library?

    Sensors.ino: In function ‘void i2c_init()’:
    Sensors:156: error: ‘I2C_PULLUPS_DISABLE’ was not declared in this scope
    Sensors:157: error: ‘I2C_SPEED’ was not declared in this scope
    Sensors.ino: In function ‘void waitTransmissionI2C()’:
    Sensors:203: error: ‘i2c_errors_count’ was not declared in this scope
    Sensors.ino: In function ‘void GYRO_Common()’:
    Sensors:279: error: ‘calibratingG’ was not declared in this scope
    Sensors:284: error: ‘gyroADC’ was not declared in this scope
    Sensors:287: error: ‘gyroZero’ was not declared in this scope
    Sensors:290: error: ‘blinkLED’ was not declared in this scope
    Sensors:310: error: ‘gyroADC’ was not declared in this scope
    Sensors:310: error: ‘gyroZero’ was not declared in this scope
    Sensors.ino: In function ‘void ACC_Common()’:
    Sensors:335: error: ‘calibratingA’ was not declared in this scope
    Sensors:340: error: ‘accADC’ was not declared in this scope
    Sensors:343: error: ‘global_conf’ was not declared in this scope
    Sensors:347: error: ‘global_conf’ was not declared in this scope
    Sensors:347: error: ‘ROLL’ was not declared in this scope
    Sensors:348: error: ‘PITCH’ was not declared in this scope
    Sensors:349: error: ‘YAW’ was not declared in this scope
    Sensors:349: error: ‘acc_1G’ was not declared in this scope
    Sensors:350: error: ‘conf’ was not declared in this scope
    Sensors:352: error: ‘writeGlobalSet’ was not declared in this scope
    Sensors:405: error: ‘accADC’ was not declared in this scope
    Sensors:405: error: ‘ROLL’ was not declared in this scope
    Sensors:405: error: ‘global_conf’ was not declared in this scope
    Sensors:406: error: ‘PITCH’ was not declared in this scope
    Sensors:407: error: ‘YAW’ was not declared in this scope
    Sensors.ino: In function ‘void initSensors()’:
    Sensors:1573: error: ‘POWERPIN_ON’ was not declared in this scope
    Sensors:1577: error: ‘GYRO’ was not declared in this scope
    Sensors:1578: error: ‘BARO’ was not declared in this scope
    Sensors:1579: error: ‘MAG’ was not declared in this scope
    Sensors:1580: error: ‘ACC’ was not declared in this scope
    Sensors:1580: error: ‘acc_25deg’ was not declared in this scope
    Sensors:1580: error: ‘acc_1G’ was not declared in this scope
    Sensors:1581: error: ‘SONAR’ was not declared in this scope
    Sensors:1582: error: ‘f’ was not declared in this scope

  10. Thanks for reply!
    I’m using GY-80 imu. It looks almost like yours but has little differences. All sensors are the same
    (L3G4200D, ADXL345, HMC5883L BMP085) but pins coming out from the board are:
    – supply (2*Vcc, GND)
    – i2c ( SCL, SDA)
    – M_DRDY
    – A_INT2
    – T_INT1
    – P_XCLR
    – P_E0C
    If i want communicate with board, throughout i2c i should use only SCL and SDA pins ( and supply of course 🙂 ), right?
    You told me to try communicate with sensor separately, but how can I connect to selected sensor if I have one i2c bus supported all sensors. In sensors datasheets there are the same addresses registers sometimes. Maybe not all registers are supported and we should relate only to unique registers?
    I haven’t connected it yet, because I do not know how to go about it, and I’m not using arduino.
    Regards

    1. Ok I understood, you have the model with all pin on the same side, mine instead,has I2c pins on one side, and the other pins tho be used to read each sensor (using an analog pin on the arduino), but this last one is not what the multiwii software expects to find. At this point, if I remember well, you should find useful the comment on this page made by Mohammad Hefny 2013/01/23 at 11:02 am, it says that his IMU (which is like yours) worked out without changing the I2C address.


      ...and when I used address 0×68 for gyro it didnt work and I used address 0×69
      I also commented #undef INTERNAL_I2C_PULLUPS
      #if defined(GY_80)
      #define L3G4200D
      #define ADXL345
      #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 …….. NO NEED
      #define ADXL345_ADDRESS 0×53
      #endif

      and it works great as per GUI of Wii…. I havent mount it on a quad yet.

      Regards,
      M. Hefny

      Hope this really help!
      Let me know.
      Ciao

      1. I still don’t get it. Mohammad wrote that he used 0x69 address for Gyro but such address doesn’t exist in gyro sensor. For what this address is responsible for? According to Gyro datasheet we use addresses from 0x0F to 0x38 and address 0x69 doesn’t exist.
        When it comes to accelerometer, it is similarly problem. He use 0x53 adrress but in accelerometer datasheet max address is 0x39.
        Thanks for patience 🙂

        1. Hi there, sorry for my late, actyally i had no idea.
          My only thoughs were:
          1) Are we sure your IMU is exactly like the one from Mohammad?
          2) Forgive the stupid question: are you using the i2c bus with common ground with the board right? just to exclude a random error like that. an

          Last question: you said that you don’t have arduino, so with which board are you using the i2c bus, sorry didn’t understand completelly.
          Ciao and let me know….

          1. Yes, I’m using exactly the same imu as Mohammad, and I use i2c ground with board. I’m using stm32F407 board. But now it doesn’t matter because I have new IMU and I will not use this anymore. But i’m very gratefull for help!

      1. Resistors 2.2 and changes adress of L3G4200D to 0x68 really solved the problem. I have previously used 10K resistors, there were errors in the bus i2c.
        Noticed the wrong orientation of the axes of sensors 10DOF (going to solve this problem)

Leave a Reply

Your email address will not be published. Required fields are marked *