Quadrupeds Need a Whole Lot of Motor Controllers

Bare PCBs 1

Motor Controller Blank PCBs

Leg Motor Controller 1

Motor Controller in the Leg

It’s been a while since my last update on the Quadruped’s build progress, but I finally got my PCBs back for the motor controllers. Since the robot has twelve motors, I need six motor controllers in total (Each of my controllers controls two motors). They’re an updated version of the h-bridge I prototyped last fall, and used in my mini sumo robot. Although definately more than is really required, the motor controllers boast ultra-low RDSon Direct FETs, and HC9S12C32 micro-controller to handle the control and monitoring of the h-bridges. The black soldermask really enhances the look of the PCBs mounted in the robot.

Each leg has it’s own motor controller to manage the two motors in each leg, and another two motor controllers will manage the four motors in the core. The leg motor controllers are shaped specifically to fit within the frame on one side. The other side of the upper leg frame will hold another PCB with some sensors (I’m planning on e-field and/or pressure sensors in the robot’s feet and on the leg itself.)

Leg Motor Controller 2

Motor Controller and Angle Sensors

Leg Pogo Adaptor

Programming Adaptor

Each joint requires angular feedback for the motor controller’s closed loop system. This is accomplished by using special potentiometers through which the joint shaft will pass. The potentiometer is wired as a simple voltage divider, andĀ  as the angle of the shaft changes, the potentiometer will give a different voltage output. This voltage will in turn be read by the motor controller and turned into useful data. The special potentiometers used here were a bit of an obscure find, but luckily they are a stock item at Digikey.

In order to ease the routing of all the connections on a 2 layer PCB, I decided to offload the large BDM header onto a separate board, which can be screwed onto the leg frame when I load the motor controller firmware. Several pogo pins thenĀ  make the programming connections to the test points on the controller PCB. I decided to get creative with the shape, and it turned out pretty neat.

I’m toying with the idea of putting a customized boot loader in the 9s12 controller, and giving the main processor (the Gumstix) programming control over all motor drivers. This way, instead of individually updating firmware on the motor controllers as I continue development down the road, I can instead just load one hex file into the Gumstix’ file system, and it will automatically update the firmware on all six motor controllers.

New Battery

Lipo Batteries

I also recently ordered the batteries I will be using to power the robot, 4x 2000 mAh LiPo batteries. I will be running then in a 2-series 2-parallel configuration to get 4000 mAh at 7.2 volts to run the entire robot. I still need to design and build a board that will fit underneath the batteries in the core of the robot, which will be responsible for battery protection/charging as well as power and control signal distribution to the four legs.

Still a lot of work to go, but it’s getting closer to walking…

, , ,

  1. #1 by Murray on June 7, 2009 - 6:04 pm

    Very nice work indeed, can’t wait to see it develop. What sort of motors are you controlling? Sort of looks like maxon motors in the photo.

  2. #2 by Roko on June 8, 2009 - 8:18 am

    I’m using Escap 1:166 gear motors.. A lucky surplus find of high quality motors!

  3. #3 by Mike on December 9, 2009 - 10:36 pm

    This is a beautiful piece of work. Care to email me the digikey part number for those potentiometers? I’m looking for a part just like that myself.

  4. #4 by Roko on December 10, 2009 - 1:09 am

    Hi Mike, Thanks for the comment!

    The potentiometers I’m using are part number P12426CT-ND at Digikey.

  5. #5 by Mr xZcvcZx on March 27, 2010 - 1:39 am

    Hey roko, looking good. long time no update though…. is this thing walking yet?

  6. #6 by Roko on June 7, 2010 - 9:28 am

    Unfortunately not yet, still a lot of work to do and I don’t have access to machine tools at the moment..

(will not be published)