ArduIMU V3 is finally here!


Long time since my last post!

I'm glad to announce the new ArduIMU V3 that will take the place of the very successful ArduIMU v2 (flat version). We called it flat version because ArduIMU V2 was created in a time where 3 axis and even 2 axis gyros were not so common and we had to place some of the gyros vertically. Good times... 


ArduIMU v2 was the first low cost IMU that had gyros that allowed me to keep it flat, but they were bulky and expensive. I had to use two gyro chips for the XYZ axis, another for the three axis acceleration and you had to place the magnetometer externally. Another "disadvantage" was that all the sensors (but the mag) were analog, by default limited to 10-bits and required all the analog inputs in order to read them and you were also limited by the default filtering configuration and other noisy issues. 


All the limitation we had with ArduIMU V2 are all gone with the V3. ArduIMU V3 features the new MPU-6000, that includes 3 axis gyros & accells built-in and process everything internally that is some kind of dual core power (24-bits ADC sampling and sensor fusion is handled inside the MPU), the latest 3 axis I2C magnetometer HMC-5883L and the classic but very robust Arduino Atmega328 running at 16Mhz... 




MPU-6000 uses SPI for max performance. Did I say user configurable low pass filtering and scale range? Hell yeah... and here are some of the other specs:

  • Digital-output of 6 or 9-axis MotionFusion data in rotation matrix, quaternion, Euler Angle, or raw data format
  • Tri-Axis angular rate sensor (gyro) with a sensitivity up to 131 LSBs/dps and a full-scale range of ±250, ±500, ±1000, and ±2000dps
  • Tri-Axis accelerometer with a programmable full scale range of ±2g, ±4g, ±8g and ±16g
  • Reduced settling effects and sensor drift by elimination of board-level cross-axis alignment errors between accelerometers and gyroscopes
  • Digital Motion Processing™ (DMP™) engine offloads complex MotionFusion, sensor timing synchronization and gesture detection
  • MotionApps™ Platform support for Android, Linux, and Windows, with Windows Phone platforms on the roadmap
  • Digital-output temperature sensor
  • Digital input on FSYNC pin to support video Electronic Image Stabilization and GPS
  • Programmable interrupt supports gesture recognition, panning, zooming, scrolling, free fall interrupt, high-G interrupt, zero-motion detection, tap detection, and shake detection
  • Full Chip Idle Mode Supply Current: 5µA
  • On-chip timing generator with ±1% frequency variation over full temperature range
  • User self test
  • 10,000g shock tolerant


Other ArduIMU V3 features:

  • Pin compatible with ArduIMU V2.
  • Breadboard compatible (ArduIMU V2 was not!).
  • Cheaper price (around $60 $78dlls, not confirmed).. 
  • Smaller size (1.5" x 1.0").
  • Atmega CPU has more % available for other tasks.  
  • The 6 analog pins are now available!
  • Arduino compatible and open source.
  • 3 status LED's (RGB).
  • I2c port with 3.3V translation.   
  • GPS port with FTDI autoswitch. 
  • This device is suitable for ANY application from rockets to simple movement detection.




The release date is estimated to be in two-three weeks. We are waiting for the final big batch and finish some code. We will take pre-orders soon.   


We also cooking BIG new goodies that will be announced also this month... =) 


[UPDATE 11/15/2011]: You can buy it now check this post:


E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones


  • The ArduIMU V3 test program looks like it will display data from the BMP085 pressure sensor. But the IMU code doesn't appear to put the data into the binary output. What is the format for the packet that should be used (or doesn't the test program really handle it)?

  • Hi every body,


    I'm a newbee and sorry in advance for this question.


    When I try to upload the program into the ArduIMU V3, I obtain the following things :

    • Yellow led binks 2 time
    • Blue and Red blink together 1 time


    In the Arduino software, there no ending message until I disconnect the USB cable from the Arduino IMU V3 and get the message "avrdude: stk500_getsync(): not in sync: resp=0xbc"

    I set the Board as "Arduino Duemilanove  w/ATmega 328"


    The FTDI cable is the DIYDrones FTDI Cable - TTL-232R-3V3


    I'm under Windows 7 and I choose Xon/Xoff and tick the RTS check box in the port configuration panel.


    Verbose output gives :

    Version 5.11, compiled on Sep  2 2011 at 19:38:36

    Copyright (c) 2000-2005 Brian Dean,

    Copyright (c) 2007-2009 Joerg Wunsch

    System wide configuration file is "C:\Users\Marco\Documents\Arduino\arduino-1.0.1-windows\arduino-1.0.1\hardware/tools/avr/etc/avrdude.conf"

    Using Port                    : \\.\COM5

    Using Programmer              : arduino

    Overriding Baud Rate          : 57600

    avrdude: Send: 0 [30]   [20]

    avrdude: Send: 0 [30]   [20]

    avrdude: Send: 0 [30]   [20]

    avrdude: Recv: . [be]

    avrdude: stk500_getsync(): not in sync: resp=0xbe


    If I use the Serial Monitor to check the connection, I can read the default loaded software result when I use115200 baud.

    Thanks in advance for your help, Marco.

  • plz i want to read Arduimu V3 o/p data on my arduino uno >> can any one help me ?

  • Hi guys I'm new here, but need to have a question answered.

    Basically I am not building a UAV, I'm making a ONE WHEEL BALENCING ROBOT, similar to the Honda U3-X. So the wheel can travel in every direction by having smaller wheels along the circumference of the main wheel, which can turn and allow for side to side travel. I am using ArduIMU V3 because of the nice open source DCM sensor fusion and built on arduino compatible uC. Basically I have to produce differential signals to my wheel motors (on both sides of the wheel) to have it correct for the "fall angle" in the XY plane. I have the signals being produced properly, so this part is working fine.

    My problem is that I am using a RoboClaw dual 30A motor driver and they use a modified version of the SoftwareSerial library included in Arduino 1.0 to communicate (I am of course using the older arduino 0023 for compatibility with this code).

    From what I can tell we are using the SPI library to communicate with the MPU6000 and the Wire library (I2C) to communicate with the magnetometer and the FastSerial library to communicate with the GPS.

    I am getting a compiler error because there is two definitions for the serial library the FastSerial and the modified SoftwareSerial needed by my motor driver.

    So correct me if I am wrong but as I do not need the GPS, can I remove the FastSerial library and associated GPS code or is this library used for anything else?

    I have to get this working ASAP for school, so any help would greatly appreciated.


  • Hi,

    i'm looking for MPU-6000 SPI version, where i can buy it (Europe)?


  • 3D Robotics

    @Yusuf Onajobi, the boards are available now!

  • Please when will this be back in stock for purchase????????

  • I, Too want to connect this to the 2560 board as an IMU for the 3 axis camera gymbal

  • Moderator

    That's up to you, my friend...  :)  I am confident that code will follow shortly.

  • Thanks JOHN, but is it cool to make my order now knowing i just have to wait for the code?


This reply was deleted.