Let's Make Robots!

Servo killer

Ok, servo board works perfectly for my quadbot. However, I kill 3 servos(HS-485HB) in a day!!!

This servo board support 14 servos and I have connect them with external power - 7.4v lipo 2800mAh. The battery connected like this(the battery is 7.4 not 11.1v any more):

Here is what happening; When I do the coding I have USB connected and power off from battery. After coding I turn on the switch so servos has enough power to do the moves and USB still connected. It was fine for several attempts but after 5~6 times repeating the same procedure then I got my first servo not working, I replace it and I switched off the battery and did uploading and switch on, then I got 2nd servos burned right the way! No sparks or smoke but bad smells. Same procedure and 3rd servo burned. I have no idea why the servo burned so easily. Anyone have any ideas? I am assuming I probably can't have USB and battery on at same time, especially when the moment I repeating turn on the switch and have high current flows in that impact the servos??

Again, I have to say sorry for my bad English and writing skill. If this is not clearly explain what happened please let me know and I will try my best to explain again.

Thanks in advance for anyone could help me with this issue~~

P.S. Servo shield I am using now:


http://www.dfrobot.com/index.php?route=product/product&path=35_39&product_id=264

 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
ezekiel181's picture

Fully charged batteries are usually higher voltage than their nominal voltage. NiMH are said to be 1.2v each but after charging can read as 1.5v.

hardmouse's picture

I guess I should add one more diode so it will be 6.3V when fully charged. That should be safe for servo, i think.

Anas's picture

yes the servo motor have its driver and feedback circuit inside the case so it accepts pulses from the MCU. Usually one CPU can control up to 16 or even 32 servos. if looking at software the MCU will generate the required pulse for the first servo then the second servo, the third...and so on. so it is sequential operation. then expect only one servo running at instant (this is the common case), however the servo response may take some time to be settled so you may give the pulse to the second or third servo while the first is still rotating. it looks good from current point of view to put few ms delay between the servos pulses. this will be help full to decrease the max current especially if you put in your mind that the current response of the servo start from max decreasing to min with increasing time.

i hope this tip will be helpful for your design 

hardmouse's picture

So I guess what I did was correct to have delay(15~25) after sneding command to every servo in each loop? Maybe the longer the safer?

I just use my lunch time to grab few 1N5408s and gonna wire them up tonite.

May I ask one more stupid question? Since I am testing the code, what's best or proper setting for electronics? The bot itself using one battery for both Arduino and Servo shield.

  1. Have USB and power on as always;
  2. Have battery switch off and USB pluged, after uploading trun the switch on;
  3. pull off USB after uploading then trun switch on; or
  4. the proper way you have in mind, please let me know.

I was thinking, could that be the reason causing those servos death because of I did on&off&on&off frequently with USB connected that cause some where impact or conflict? Or this is totally idiot thought that I shouldn't be worry about this problem?

Anas's picture

 

if you are new to using servos there is a good tutorial about servos at  Society of Robots (http://www.societyofrobots.com/actuators_servos.shtml). in design you should take the worst case. for servos there is no-load current and stall current. the stall current is the one that you should take care about. for your servos i could not find the exact stall currents, but it is good practical idea to consider stall current about 5 to 6 times the no-load current.so for :

HS-485HB it will be around 750mA to 1A (http://www.phidgets.com/products.php?product_id=3203)

HS-645MG it may be as high as 2.5A 

the current that you calculated is the no-load current when all servos are on.usually there must be some load and not all servos are on at the same time. if you need them all ON together then you are talking about less than 2.5x8+ 0.75x4=23A.

it looks big number to me :( 

 

 


 

 

hardmouse's picture

That looks scary. So I wondering how hexapod or other multi servos robot manage such problem? by sequence? so 23A will never happen? Well, I gotta dig more information about this issue. Thank you for your information that really helps me to step further~

Anas's picture

sorry the diode is 1N5408 for 3A in average.

please check that you may have some mechanical problems with the servos. if the load is too heavy the current may increase largely. this is mostly the reason for burning the electronic circuits.

hardmouse's picture

According to the spec:

Current Drain (6.0V): 9.1mA/idle and 450mA no load operating x8

and 

Current Drain (6.0V): 8.8mA/idle and 180mA no load operating x4

I guess I will probably have 1Ax8 + 0.5Ax4 =10A when all servos operating with loads? If this is the case I might use bigger diodes or 1N5408 should be good to go?

Anas's picture

dear friend

if you would like to reduce the voltage you should put in your mind the following:

1- if you are planing to use 78xx regulator. the input voltage must be at least 2.5V larger than the output voltage. if your supply is 7.2 then max output voltage is 7.2-2.5=4.7V. so if you used 7805 ,there will be no guaranty to get 5V. the second piont that you should know is that 78xx series max current 1.5A or only 1A for the 17J package.

2- the correct solution is to use diodes. each diode will have voltage drop about 0.7V. the type of diode you should use depends on the total current. if it is less than 1A you can use 1N4007. for larger currents up to 3A in average you can use 1N4508. the voltage drop across the diode will increase with current for example at 5A the drop will be around 1V.

3- i do not know what is exactly the driving circuit of this servo, i can not expect the cause of the burning.

hardmouse's picture

I am using 4x Hitec HS-485HB and 8x Hitec HS-645MG. You may click into the link for spec. HS485HB is the one usually burned. Here is the schematics for servo board.

Sorry if I mistaken anything here since I have zero background in this field but just learn by doing with passion. Really appreciated for all of you great guys try to help me here.