Final version of ArduIMU (Include Video)

After a few more tests, I now have the final version of the ArduIMU. The main problem was the calibration of the gyros: converting the raw data to degrees/s. I had to change the source code, compile it, upload, and repeat it over and over again. Totally waste of time.So i configured Arduino to externally adjust the gyros and the accelerometer jitter filter, using the nunchuck potentiometers (joystick axis). Now it’s working pretty well. =)Please, in the source code, ignore all the lines marked with "//(kalman)", this lines are related to the kalman filter code, those marked by "//(nunchuck) are related to nunchuck accelerometer and axis control, and all marked by "//(gyro)" are code related to the control of the gyroscope.Another tip, all the data is processed in radians, then is converted to degrees (radian*180/PI = radians*57.295779= degrees). If somebody needs any help, please feel free of asking me.Video:-Yellow color = Just Accelerometer read-Red color= Accelerometer+Gyro+KalmanFIiter
Arduino Source Code: Labview (ground station) source code:

To do: -Integrate another Gyro (to make it dual axis) . -Program the SPI altimeter.-And put all the hardware together and make it work (GPS, Altimeter, IMU, Modem).

Done: -Servo control -Gps Waypoint navigation (I’ll post later about it).

The next article I'm going to post all the links to get started with Arduino environment. All you would need to learn: tutorials, examples, references, tips and tricks. If you already know C++ it’s going to be 99% easier. If not, you are going to discover why C/C++ is the most compressive and famous language ever ;-) Then jumping to any AVR, ARM, PIC microcontroller C/C++ language environment, is going to be a lot easier, because they’re all based on the same principles.

E-mail me when people leave their comments –

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

Join diydrones


  • Developer
    Almost two years about this.. ;)
  • Developer
    @Jack - you have found an old thread. Not related to current activity with ArduIMU....
  • I can't access, Anybody could help me send it to my Thanks a lot.
  • Moderator
    Comment from Daphne are Spam to get better pagerank from google.
  • Bueno jordi lo primero, felicitarte por tu proyecto la verdad es que es asombroso. Estoy trabajando en un proyecto donde quiero impletar un filtro kalman utilizando tambien un giroscopio y un acelerometro para conseguir equilibrar un robot de dos ruedas. El problema es que trabajo con los programas Proton compiler y Pic basic. Por lo tanto me gustaria poder pasar tu cógigo kalman a alguno de estos ya que el tuyo esta c. Si es posible me gustaria que me lo enviaras en español para ver si puedo entender el filtro kalman ya que lo veo complicado. Si es posible me gustaria que me puedieras explicar como funcionan esas matrices de coviranza y como poder pasarlo a proton compiler y pic basic.

    Muchas gracias
  • Hello Jordi,

    are you still working on your ArduIMU project, everything I see seems quite dated now?
  • Great job!!

    Could you send me the labview code??

  • can you provide the labview code with kalman filtering? thanks.
  • Can you provide the LabVIEW Code with kalman filtering?
  • Hola Jordi,
    Felicidades por tu trabajo!!I hope you can help me. I'm trying to use a 3 axis accelerometer and a 3 axis gyroscop to track the movement of my arm. But I have doubts when setting the values of Q_gyro and Q_angle. The problem is that if I use a frecuency of 150 Hz to get the values of the devices, 6'6mseg, the minimum value of Q_angle I can use it's around 0'02. If I use values below I can't follow the movements of my arm because the angle value goes to infinity. However, when I use a frecuency of 50 Hz, 20mseg, doesn't matter what value I use for Q_angle, I don't have this problems. The question is, why this happens, and how I know what values I have to use for Q_angle and Q_gyro?
    Thankx for your time.
This reply was deleted.