Servos part 2 – how to drive them

My eventual aim with this project is to make a hexapod robot. I’m doing it a bit at a time and intend to document my progress here.

Having bought a load of MG996R servos, next challenge is driving them – they take far too much power to be driven directly from an Arduino or Raspberry Pi, so some sort of intermediate control board is called for.

This board

obtained from Ebay for a few pounds has connectors for up to 16 servos and importantly has an input for an external power supply, so that the servos won’t be drawing their current from the controlling device. Control is via I2c serial bus, and boards may be daisy-chained. As each servo is capable of pulling 5-800 mA in normal operation, and 2.5A when stalled, care is required in deciding how many servos can safely be driven from each board – I think 6 is enough, and they will need to be set up so that they don’t stall in normal operation. In order to drive 18 servos, 3 of these boards will be required. Only the data will be carried between boards, not the power – there will be separate power feeds to each board from a stack of Lithium batteries, with 5A polyfuses in case of overload. The power will be controlled by

3 of these DC-DC Buck step-down voltage regulator boards, another Ebay bargain!

It is important to set the output voltage of these boards by adjusting the multi-turn pot. I used an initial input voltage of 10v DC and adjusted the pot for an output of 5.95 v dc. Once this was set, increasing the input voltage to 15v still gave the same output voltage. These controllers are rated up to 5A, and allow an input of up to 38v, so should allow a good choice of battery configurations.

Leave a Reply

Your email address will not be published. Required fields are marked *