Hello everyone,

We are three lecturers on aeroelastic and flight control law.

We are working on a small wing profile attached to  to demonstrate to the student the principles of modal identification, flutter stability and flutter active control.

The model includes a motor with a prop to excite the wing profile. Anyway, one video is worth thousands words, so here it is:


In the video the motor is shut down (we are performing what we call a GVT, ground vibration test).

The acquisition and control is performed via an Arduino UNO board with a MPU6050 unit (with GY521 shield).

Now we have a problem, the program freezes randomly, sometimes it goes for minutes, sometimes it hangs after a few seconds.

Some details:

  • The servo is powered externally via a PC power supply (via the 5V line)
  • The motor is powered by the same power supply, via the 12V line.
  • The motor signal is given by the arduino, too
  • The servo library used is the standard Arduino one.
  • The MPU6050 is powered via the 3.3V output of the arduino board
  • The programs runs at 100Hz, decreasing the sampling doesn't improve the reliability (we tried 50Hz...).
  • We cannot decrease too much to have a correct representation of the modal response
  • We use the I2cdev library for the MPU6050

I attached the code.

Looking through the internet, I suspect that the problem is due to the way that the standard Servo library generates the PWM pulses, similarly to what stated here .

I've went through that page and this one, but I'm afraid my knowledge on microcontroller is so limited I struggle understanding what I should do...

Any help?

We can offer a good beer and a lecture on the subject to whoever is interested in knowing the detail!

Thanks in advance,



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

Join diydrones

Email me when people reply –


sam liked Jimmy Oliver's profile
Aug 25
Mike Whitney liked Mike Whitney's profile
Jul 19
Abdulatif Tlaib liked Ryan's profile
Jun 24