Developer

Ardu-IMU v1.5 firmware for v1 and v2 hardware released


New download firmware has just been added to the repository http://code.google.com/p/ardu-imu/downloads/list


The v1.5 firmware includes:

  • ADC oversampling which increases the effective resolution of the gyros and accelerometers
  • Drift correction gain de-weighting and speed filtering
  • Support for binary output messages as well as human readable
  • Support for both hardware types
  • Ground and Air start modes
  • Other improvements and bug fixes
I would like to give praise to Jose Julio for his excellent work on the first two items. I would also like to give Andrew Matthews an award! - "The Big Juicy Bug Squashing Award" for finding a very difficult to find bug in the gps parser. That crazy bug would cause ArduIMU to crash, but only after several hours. Not easy to find a bug when you have to watch all night to see it once.

The binary output messages and air start modes have been added to support use of Ardu_IMU with ArduPilot. Complementary ArduPilot firmware will be coming soon. Interested alpha testers can PM me.

The Labview viewer software is still messed up. If someone with Labview would like to fix it please let me know and I'll tell you what needs to be done.
E-mail me when people leave their comments –

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

Join diydrones

Comments

  • Developer
    Hey Dave,

    You didn't see much activity in the repository but Jose, Andrew and I worked for quite a while to find the bug in the gps parser and for a long time we thought it was a problem in the DMC algorithm code, so lots of changes were made. I don't remember that one in particular or what the corresponding change would be.

    All of the angles should have a range of -180 to 180. I think we had an error in an earlier revision that had a range of 0-360 on one or more, but you really want -180 to 180 for the range.
  • Hey Doug, I'm using a slightly modified version of this code on different hardware, but it's been working quite well. Thanks!!

    I based my code on an earlier version (v14 I believe) and am just now looking into merging in some of the latest updates. One thing I've noticed is that the order of the parameters being passed to the Vector_Cross_Product call in roll_pitch_drift have been swapped.

    I have:

    Vector_Cross_Product(&errorRollPitch[0],&DCM_Matrix[2][0],&Accel_Vector[0]); //adjust the ground of reference

    but it appears at some point later it has been changed to:

    Vector_Cross_Product(&errorRollPitch[0],&Accel_Vector[0],&DCM_Matrix[2][0]); //adjust the ground of reference

    Now my roll angle (haven't checked the others yet) at startup quickly increments up to 179.xx degrees instead of converging on zero. It also appears that instead of going past 180.0 degrees it becomes negative on the other side of 180.0.

    Was there another change that accompanied changing the cross product direction? I'm thinking perhaps my sensor signs need to be adjusted to reverse the direction of the cross product result?

    Any thoughts?

    Thanks,
    Dave
  • Developer
    I wish I had time to actually test my drones. Work, work, work + family. As my father would say - "no rest for the wicked" ;)
  • Developer
    Both new code versions uploaded to Stryker II. Now adjusting servo trims so stabilize trim = manual trim, Looks like this version may fly, mixing is good, I will tune roll & pitch PIDs with manual throttle control. Then full auto.
  • Developer
    Awesome, can't wait to load it up. I have a threeday weekend with nothing to do!
This reply was deleted.