We are using ArduIMU (V3) as our Quadrotor's inertial measurement unit. (we have a separate board to control all motors, not with ArduIMU itself).

As mentioned here , the output rate of this module is only at about 8hz.

Isn't it super slow to control a quadrotor ? I'm asking because as mentioned in this answer a quadrotor needs at least 200hz of control frequency to easily stay in one spot, and our ESCs is configured to work with 450hz of refresh rate. Any working PID controller I saw before for Quadrotors used at least 200-400hz of control frequency.

I asked similar question before from Ahmad Byagowi (one of the developers of ArduIMU ) and he answered:

The arduimu calculates the dcm matrices and that makes it so slow. If you disable the dcm output, you can get up to 100 hz gyro, acc and so on.

So, what will happen if I disable DCM from the firmware ? Is it really important ? We did a simulation before and our PID controller works pretty well without DCM.

  • $\begingroup$ Micheal Kogan, can you please share with me the code for the Kalman Filter you implemented on ArduIMU? I'll be grateful. $\endgroup$
    – Omair K
    Commented May 12, 2014 at 18:58
  • $\begingroup$ Actually the problem was 2 things, one Kalman filter and second the ArduIMU non-standard IC for some countries. Me and my friend implemented a new firmware that can eliminate all these problems. Here is the link: code.google.com/p/ardu-imu/downloads/… $\endgroup$ Commented May 13, 2014 at 5:05
  • $\begingroup$ Thank you very much for your response. Sir, I implemented this very code without the GPS and I am only getting 50 Hz loop rate. $\endgroup$
    – Omair K
    Commented May 13, 2014 at 15:45
  • $\begingroup$ Your welcome, I think you need to remove unnecearry parts in your code to make it work faster. Also timing is important. Create a separate question, put your codes and let me know. $\endgroup$ Commented May 13, 2014 at 16:16
  • $\begingroup$ @MichelKogan - Could you edit the information in these comments into either your question or your answer. They look like they might be useful to future visitors, but unlike answers, comments are ephemeral - if they get deleted they are gone forever. Thanks, $\endgroup$
    – Mark Booth
    Commented May 13, 2014 at 20:23

1 Answer 1


I updated ArduIMU's firmware and successfully got 100hz of output without disabling normalization.


Thanks to Kalman filter firmware of ArduIMU I got up to 180hz of output plus removing all noises.

  • $\begingroup$ I know this has been a while, but for Michel Kogan, would you mind posting your latest code that runs at 180hz? ThnkaS $\endgroup$
    – Richard
    Commented Jul 3, 2015 at 17:34
  • $\begingroup$ We already updated the firmware. You can download Michel and Edwin edition from ArduIMU firmware website. $\endgroup$ Commented Jul 4, 2015 at 17:57
  • $\begingroup$ Thanks but I tried that firmware and the loop timing is still set to 20ms (50 hz) and the X and Y Euler calcs still drift. It will run consistently at 8ms (125 hz). But I can't get it to 180 so I assumed you had an update. $\endgroup$
    – Richard
    Commented Jul 5, 2015 at 19:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.