Quad Bot Puppy

Pretends to be a puppy
Quadruped_Puppy1.zip4.99 KB
Quadruped_Puppy_NiMh.zip5.03 KB

This is my second puppy robot and the first to use a QuadBot kit. The robot is quite simple, just a pan / tilt kit mounted on a QuadBot chassis with DAGU's new Magician robot controller.

Assembly instructions can now be found on Make Projects.

More detailed instructions are now avaiable on Instructables.

This is now a kit! The instruction manual can be downloaded from my product support site:
The kit comes with a battery holder for NiMh AA batteries and modified sample code to suit the different center of gravity.

The first video is my son Shi Sen playing with the robot and trying to get it to shake hands with him. The second video is with the latest code and Shi Sen is trying to get the robot to walk on it's back legs. Since the robot is controlled by your hand gestures this takes a bit of practise.

This robot can be built with 6x NiMh AA batteries. As the batteries are heavier the balance changes a bit when standing on it's hind legs. I have added a second version of the code that compensates for this.

This robot is now being produced as a kit, no soldering required.
Keep an eye out for it in online stores.

The code is a combination of the Mr. General IR tracking code and the Quad Bot sample code with some "puppy personality" thrown in to entertain my son.  I did put a small vibrator on the tail but the weight is too small making it hard to tell that he's wagging his tail.

The attached code will follow an object, sit when there is nothing to follow and shake hands and/or lie down depending on your hand gesture. If you hold your hand above it's head it will try to stand on it's back legs and follow you. This uses about 5K of the 8K available on the ATmega8 so there is still plenty of room for more personality code to be added.

The Arduino servo library can handle up to 12 servos on most Arduino boards but this comes at a cost of disabling PWM on pins 9 and 10 which are used by the magician controller for the dual "H" bridges.

As I wanted one motor output to drive the vibrator motor on the tail I cheated by configuring that PWM pin as a servo and then adjusting the min and max pulse settings in the attach.servo() command allowing me to go well beyond the normal range used by servos with the maximum being aproximately a 50% duty cycle. More than that will damage the small motor as it is running on 7.4V.

As my servos are rated at 6V and my LiPo battery has a nominal voltage of 7.4V I had to drop the power a bit. Although the onboard regulator can handle 1.5A I found that my 10 servos were drawing up to 3A or more in some cases.

The magician board has a jumper to allow the servos to be powered by the battery directly and there is already a 3A reverse polarity protection diode in series that drops the voltage by about 0.7V when under a reasonable load. I replace the jumper with a second 3A diode to effectively give me 6V when the battery voltage is 7.4V.

You can download the instruction manual for the Magician controller from my support site:

I had originally tried powering this project from AAA NiMh batteries. This will work if you have good quality batteries but my cheap NiMh AAA batteries were struggling to put out more than 2.5A. I have gotten up to 6A from good quality AAA NiMh batteries.

Fortunately I had a 7.4V LiPo battery pack from an old project that was about the same size and with more than twice the capacity. My advice for anyone wanting to use a lot of servos is to forget about alkaline batteries and use either high quality NiMh or LiPo batteries.

I have marked this project as complete although there will probably be a few software and hardware modifications in the near future.

If you want to know more about the QuadBot chassis then you can download the manual from my support site:


Comment viewing options

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

Well done OddBot.

On these multi-legged bots, your really nailing the gates.

Thanks PaulJD!

I still haven't got around to playing with inverse kinematics yet but for little robots like this I don't think it would be an improvement.


When or if you do, I hope you will keep us posted. Inverse kinematics as applied to small hobby robots is a field I am interested in exploring as well.


However you did it, that does seem to capture puppylike movements.



Not sure how I did it as I've never had a puppy.
I think most animals will pay close attention to anything that close to their face :-p

I was curious about the senor you used. Now I want one.



I wrote a tip/walkthrough on how to make one here: http://letsmakerobots.com/node/10822

I't probably just as easy to buy one that is pre-made and tested from an online store.

I'm suprised those little servos hold up to that.  How do these compare to the HXT900 servo?  I tried experimenting with some of those some time back and found them to be too weak and fragile for my design.

The new servos we are using look very similar to the HXT900's. I have only had one break because my son trapped the robot in a corner and the leg got jammed.

Beautiful! Love the way he stands on two feet! :D