Damaged servo

Hi everyone

Fortunately after 1-2 weeks, I built a radio control using nRF24L01, with a transmitter with 2 joysticks, and a receiver with 2 servo motors.

It was all working fine, I tested it a lot, but yesterday, I was trying to bother it as much as I can to make sure it has absolutely no problems -_- :smiley: I strated playing with joysticks rapidly and moving them so fast and rotating the servos quickly, after about a minute, it sopped working and after some seconds I figured out that one of the servos got sooo hot and the dc booster got so hot too. I disconnected the servo and turned off the circuit, after several minutes, I turned it on with only the healthy servo, and that was working fine. I connected the damaged servo, it didn't work.
I left it until now, I connected the healthy servo, it works great, I disconnected the healthy one and connected the damaged one, it worked fine for 5 seconds or so, then it was rotating fine in on direction, but very slow in the opposite direction, and after another 5 seconds, it stopped working and I realized it's getting hot again. As the voltage booster gets hot too, I guess there's something like a short circuit or something inside the servo.

My circuit doesn't have any problems I'm sure about it as when I replace the servos with each other, there's no difference, the healthy one works completely fine and the damaged one doesn't.

Give some solution that I will not cause damage to my servo next time, I think not rotating it constantly and without even a second stop is the best I can do :smiley: and I guess rotating it from 10 degrees to 170 degrees instead of 0 and 180 can help too (not sure actually)

And my main question is that what component is possibly damaged and if there's a way to fix or replace it. I've never opened a servo but my guess is that the IC is damaged.

Every motor can get overheated if it us ised more intensivly than what it is designed for. Some motors are specified with a factor called "intermittence factor". Run the motor X time and let it rest for Y time.
I rosted a spindle motor by running it for longer time than it was designed for. Just to by a new one and run it less intensivly.

Servos can be damaged by running the output shaft up against the end stop.

However, they are so cheap that they are not worth fixing. I buy mine from Tower Pro.

Well I opened the servo and connected 5v directly to the DC motor in both directions, I'm not sure but I think it was not rotating smoothly in one direction but after some seconds it seemed to be rotating much smoother.

Then I connected the servo pins to oower supply and Arduino and sent 1500ms pulses with Arduino and played with the potentiometer in servo circuit, I saw it is working and doesn't get hot. After placing the gears and connecting it to the receiver circuit, it is working fine. Well I'm not sure what the problem was but I guess that the DC moror was somehow stuck or something, and connecting 5V directly to the motor, repaired it!

1.5 mS I would guess....
You are lucky! But!, Always monitour stuff like motors, solenoids, anything that consumes power, regarding temperature! At any strange behaviour, turn the activity off and investigate. Those servos are not industrial grade and even industri motors migth have their maximum duty cycles, working/resting.

General rule of thumb for any remote control gear that becomes faulty, chuck it in the bin before it becomes a problem in a model or whatever.

Most likely you ran it up against its internal hard stop and jammed the gears or similar. Below is some servo test code you might use to find the position command where the servo contacts the internal hard spot and starts to strain and get warm.

// zoomkat 7-30-10 serial servo test
// type servo position 0 to 180 in serial monitor
// for writeMicroseconds, use a value like 1500
// Powering a servo from the arduino usually *DOES NOT WORK*.

String readString;
#include <Servo.h> 
Servo myservo;  // create servo object to control a servo 

void setup() {
  Serial.begin(9600);
  myservo.attach(9);
}

void loop() {

  while (Serial.available()) {

    if (Serial.available() >0) {
      char c = Serial.read();  //gets one byte from serial buffer
      readString += c; //makes the string readString
      delay(3);
    } 
  }

  if (readString.length() >0) {
    Serial.println(readString);
    int n = readString.toInt();
    Serial.println(n);
    myservo.writeMicroseconds(n);
    //myservo.write(n);
    readString="";
  } 
}

bluejets:
General rule of thumb for any remote control gear that becomes faulty, chuck it in the bin before it becomes a problem in a model or whatever.

I don't all agree. Investigate and learn. A few times You're lucky like OPwas.

zoomkat:
Most likely you ran it up against its internal hard stop and jammed the gears or similar. Below is some servo test code you might use to find the position command where the servo contacts the internal hard spot and starts to strain and get warm.
/quote]
So servos can run too faar? No internal limits? Thanks!

Railroader:
I don't all agree. Investigate and learn. A few times You're lucky like OPwas.

In many instances the equipment the servo is buried in is worth multiple times a $7.00 crapped out servo.
So not worth the trouble.
If you look inside the modern servo, there is bugger-all to fix, only has a chip, motor and a pot.