Trying to work out how to smooth the pitch servo movement. The Futaba S3003 servos seem fast but very low resolution. Controller is a Paris MultiWii board. You can see the pitch movement is jittery in this video.

Views: 445

Comment by Steve Keep on October 19, 2012 at 2:23pm

try putting a bit of mechanical resistance in the pitch system. I used to use bearings,... but found the same problem. Now I use a bush with a bit of rubber and tighten to suit. You don't need much !!

Good luck!

Comment by John Grouse on October 19, 2012 at 8:14pm

Thanks Steve.  It actually gets worse in my case as I have the camera gimbal mounted to a board and that board is attached to the base of the copter via cable ties and silicone tubing.  When the camera rotates it giggles the whole mechanism where the silicone vibration isolation attaches.  So I really need to smooth out any movement.  I have a servo rate reducer I've had for 10 years that I might try out to see how much it does slow down the movement.  Failing that I will need to introduce some resistance as you suggested.

Comment by John Grouse on October 19, 2012 at 10:40pm
Just realised that the jiggle when it moves is mostly due to the unit not being counter-balanced. Any rotational movement causes a lateral force at the pivot point. If I just balance it around that pivot point it should stop the jiggling.
Comment by John Grouse on October 20, 2012 at 12:43am

Seems that adding smooth friction seems to be the only way to reduce the staggered movements of the servo's.  Even with the weight around the roll pivot point counterbalanced you still need to contend with counter-torque.  Just wish the MultiWii controller had smoother PWM output for the camera servo's.  I've tried high res servo's and get the same thing.  I might have a hack at the code to see if I can smooth the PWM values it sends out to the servo's.  Could be a case of the PWM position being calculated less frequently than the motor PWM.  Might see what impact it has increasing it so that it is calculated as frequently as the motor PWM.

Comment by John Grouse on October 20, 2012 at 3:45am

Ok, digging deeper into why the servo movement is so low-res/staggered/jittery (or whatever way you could describe it) it appears that the two servo outputs on the MultiWii Paris board have to use software servo outputs rather than hardware which is reserved for the ESC PWM outputs.  To get around this (for those using the 328P chip) people are using a dedicated second MultiWii with just the Gyro and Acc installed and set the code to GIMBAL.  This sets it up to use hardware driven PWM for the camera gimbal servos, which should produce smoother servo movement.  Luckily I found a $30 ebay Crius SE rip-off controller set to Gimbal mode with a gyro and acc.  Looking forward to seeing what a difference that makes.

To some degree setting the servo refresh to 160Hz in the code seems to make the two digital servo's move a bit smoother, so I may try the same with the dedicated gimbal board.

I will at some stage give the old ArduCopter V1 a go as well since it uses the Mega and should be using HW PWM on the gimbal servo outputs.

Comment by Nikos Korobos on January 24, 2013 at 1:56pm

Hello John. I have same concerns. Did you test the separate controller for the gimbal? You still have this jittering?



Comment by John Grouse on January 25, 2013 at 12:07am

Hi Nick, the separate gimbal controller did make a difference along with creating some mechanical resistance.  I'm trying something a little different at the moment with a separate Arduino Nano - it is connected to the main MultiWii board via I2C and the MW code has been modified to feed the angle[ROLL] and angle[PITCH] values to it.  The code in the Nano performs some PID smoothing on the stream of angles and outputs using the Servo.microseconds() to the servos connected to the Nano.  So the main board is freed up from any gimbal calcs while the Nano handles moving the gimbal smoothly.  Just trying to get the PID settings all working is proving the tricky part.  The Nano is also responsible for analogRead calls for my Sonar, volts and current (via AttoPilot 90A).  The main MW board makes requests for those values just before it feeds the angle values.  I found analogRead was eating into clock cycles on the main board so the offload to the Nano seemed the way to go.

Comment by Nikos Korobos on January 25, 2013 at 2:48am

Thanks John! It seems you work a lot on that! There is another interesting thread here:


You need to be a member of DIY Drones to add comments!

Join DIY Drones


Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2020   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service