Mini-servo buzzing noise, but stops after touching the blade/arm

I have an SG90 mini-servo that makes a buzzing noise when it's not actively doing anything. The weird thing is, if I slightly touch the arm/blade with my finger (following the rotation direction) it usually stops buzzing until I make it move again. It's also not going "out of bounds" because:

  1. Apparently the rotation range is roughly 760-2000 microseconds (~172 degrees if I had to guess), outside that it'll be a "hard" buzz where it makes a load of noise and actually becomes hot to touch. So I picked something like 1300 microseconds to test.
  2. The noise it's currently making is a lot less loud than in 1, also it doesn't even get warm at all.
  3. It actually moves just fine; smooth and quick.

I'm running it off a NodeMCU dev board, which is externally powered via USB to wall socket and has a 5 volt pin for me to attach the servo to. If I attach it to 3.3V then it will always buzz no matter what I do, which is to be expected since the minimum it requires is 4.8V.

At first I thought it was just something stupid like a slightly loosened blade, but that doesn't seem to be the case after tightening the screw. Is the motor just acting up because it's (probably) a cheap replica? I've only had it for about a year and it doesn't do a lot of rotations/day so that doesn't seem likely. It hasn't always done this though, the first few months it worked fine.

EDIT 2021-12-22: a little late and I can't actually put this in a separate comment but I think I figured it out. For some reason the jumper cable used for the ground pin sometimes has a loose connection, I think the metal plate inside it doesn't quite touch the pin how it should. Touching the blade actually (however slightly) moved the cable and most of the time it would "reconnect".

I presume a different SG90 doesn't do this, just this one example? It sounds like maybe the internal feedback pot is getting worn. Probably easiest to get a new servo since they cost peanuts.


1 Like

Servos usually are spec'd for 6V -- 7.2V - using too low a voltage may destabilize the internal control loop, which is why it gets worse at lower voltages. You shouldn't be running any servo from USB in the first place, USB power is limited to 0.5A and mini servos typically want more current.

Its bad practice to power a servo/motor from the same supply as logic chips BTW, they can put spikes and dips onto the power rail, and risk malfunction or damage.

I only have one so I don't know for sure if it's just this particular servo. I just wanna make sure it's not an "external" cause (like, anything but the servo). Also I'm kinda interested in the technical explanation, like you did with "the internal feedback pot is getting worn".

The data sheet says 4.8V - 6.0V though, I'd assume that would be more accurate than a general rule of thumb. I don't have a battery pack to test with, unfortunately. Also, other than the buzz in "resting" position it works fine, would that still be the case if power was insufficient?

Yeah I'm aware of the risk of spikes etc, but this NodeMCU board should have a Schottky diode between the 5V USB pin and the 5V "GPIO" pin. Apparently that makes it safe(r) to use in my particular setup?

Try it with proper power and see if the buzz goes away - underpowering servos is the number 1 fault we see with them.

It is common knowledge that RC servos require 5 to 6V, so it is no surprise that
it buzzes at lower voltages.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.