How do I stop my SG90 servos from twitching when they should be idle?

Nov 04, 2026 Last reply: 20 hours ago 4 Replies

First reply

CedarFarmer825

Yes, a seprate supply will almost certainly fix the twitching. SG90s pull way more current than you'd expect when they start moving, and if several of them kick off at once on a USB supply, the voltage sags and they all get confused. I ran into the same thing with a bank of…

Read the full reply

I've been building one of those hidden thermometers where the servos sit behind a picture frame and swing little pointer arms around to show the temp. Got the whole thing wired up on a small board with a servo driver, and it mostly works, but the servos twitch and buzz randomly when they're supposed to be holding still.



I'm powering everythign off a generic 5v USB supply right now and wondering if that's just not enough juice when a few of them try to move at once. Would giving the servos thier own supply fix the twitching, or is this normal jitter I just have to live with?



Also curious how people handle the noise at night. Even one servo moving is louder than I expected, and mine does a full sweep every time the temperture changes. Is there a trick to making the update quieter, like moving the arms slowly one at a time instead of all together? Any pointers welcome, I feel like I'm missing something obvious.


Yes, a seprate supply will almost certainly fix the twitching. SG90s pull way more current than you'd expect when they start moving, and if several of them kick off at once on a USB supply, the voltage sags and they all get confused. I ran into the same thing with a bank of micro servos behind a shelf display. Everything looked fine on the bench with one servo, then five of them moving togather made the whole thing glitch. A cheap 5v wall adapter rated for a couple amps, wired to the servo power rail on the driver board with the grounds tied together, cleaned it right up. Toss a decent capacitor across the servo power rail too, that smooths out the inrush when they all move at the same time.

If it still twitches after that, check that your signal wire run isn't long or routed next to the servo power wires, since noise on the signal can cause little jerks. But nine times out of ten it's just the supply sagging.

For the noise, yes, moving one at a time makes a big difference, mostly becuase you avoid that clatter of several motors going at once. With the driver you can write positions in small steps with a short delay between them, so the arm eases over to the new number instead of snapping. Slower movement is also quieter per servo since it's not slamming into the end of the travel. The other big one is deadband. Don't refresh the position unless the temperature actually crosses into a new step. If you're re-sending the target every few minutes, the servo will hunt and buzz trying to hit the exact same spot. Only command a move when the reading changes, and once it's there, stop sending pulses or detach the channel. One caveat on detaching, the SG90s don't hold position well without power if the arm has any weight or friction on it, so test that before committing. Keeping the pointer arms as light as you can helps with both the noise and the holding.

When I set up my own display, the twitching wasn't fully fixed untill I dealt with how the code handled the signal. Even if the target position was correct, the microcontroller would often try to send new commands before the servo had fully settled. What worked for me was implementing a software debounce. I added a half-second delay after the servo reaches its new position to ensure the internal reading didn't jump back and forth, stopping that final little tremor. It makes the whole thing feel much more solid.

It is worth exploring wheather the issue of the servomotor's static positioning might be compounded by mechanical considerations rather than purely electrical ones. Specifically, if the mass of your indicator arms is even slightly heavier than anticipated, the SG90's ability to maintain a perfect zero deflection might be compromised, leading to a subtle jitter even with a robust power source. Considering the torque specifications of those micro servos, have you meticulously weighed the physical components attached to the pivots? I found that once I replaced my pointer assembly with a lighter plastic equivalent, the persistent high-frequency twitching completely vanished.

I had similar jitter issues when I was mounting my array of pointers into a display case. The mechanical resonance was the real killer, though it wasn't anything to do with the wiring. When you mount the servo assembly directly onto a piece of thin wood or plastic, the motor vibrations travel right through the frame, causing the pointer to shake even when the command says 'stay still.' It's surprisingly amplified. What made the difference for me was switching the mounting bracket for the servos to a little block of silicone. Isolating the motor from the structural material stopped that hum entirely and made the movement look much cleaner. If you find the twitching persists after checking the power and code, try looking at the physical dampening of the setup.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required