Mini Quadruped - optimized for 9G servos

by TheCase, published

Mini Quadruped - optimized for 9G servos by TheCase Dec 17, 2012

Featured Thing!

26 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps


Use This Project

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag

Thing Statistics

129771Views 18463Downloads Found in Robotics


If you do not have access to a printer and would like to build one of these, I have printed a limited number of part sets. I am asking $20+shipping. A significant portion of the proceeds will go to my local makerspace: Open Lab Idaho

If you are interested in getting your hands on one, drop me a message!

droger's adaptation of andromeda's quadruped is awesome! I was planning on making my own design months ago. Life got in the way for a while, and BOOM, someone saved me a ton of time! A heartfelt thank you for that :)

Small problem though - the original design didn't fit the cheap 9G micro servos that I had on hand.

So I spent a smaller amount of time optimizing the design to fit the servos I (and a lot of other people might) have in stock.

I zipped up the OpenSCAD versions of the parts in case you need to tweak them to fit your servos or printer tolerances.

NOTE: what's shown in the picture are some mid-prototype parts. The finals are actually nicer with rounded corners and whatnot. Fancy!

UPDATE UPDATE: I cleaned up the OpenSCAD files in the zip package. I know some of you have servos with slightly different dimensions. The new scads should be parametric so that you can tweak a few dimensions to get parts that will fit your servos!

UPDATE UPDATE UPDATE: the parametrics now support different servo horn dimensions!

UPDATE UPDATE UPDATE UPDATE: I've included a beta version of the design intended for those that have the Tower Pro version of the blue servo, based on communicated measurements. No guarantees: I do not have one of these servos to test the fit. I do have some on order, but it could be a couple weeks before they arrive. The beta STLs are available in the zipped archive named case_qp_tower_stls-beta.zip .


4 pcs leg
2 pcs hip
1 pcs backbone
8 pcs shoulder
8 pcs servo button

The servo buttons go in the hole in the shoulder that is opposite of the servo horn. They act as a bearing for the back of the servo as it moves. In a pinch (if your printer has issues printing these tiny bastards), you might be able to get away with some clipped up bits of the unused horns included with your servos.

I designed the junction of two shoulder pieces to be held by two 3mm x 6mm screw/nut each diagonally offsetting from different directions.

I derived the code from lumi's wonderful "chopstick jr" on letmakerobots.com http://letsmakerobots.com/node/29708

UPDATE: I've messed around with some of the code - at least its a start. I have only worked on the forward movements. Still nothing solid. I attached it if others would like to help improve it. Note that in the top section there are 'home' values for each servo. While I did center my servo horns on the mechanical 'center' of the servo, when I set the value to 90 degrees in the code, the servos were not at center position. I had to adjust these home values to center them. YMMV

For those wondering about the electronics and the wiring - I've just added an archive with an Eagle schematic and board file. Note that I didn't work out the traces on the board. I wired mine by hand on a protoboard, but it'll give you an idea if you're confused about how to connect things.

I soldered female pin headers to accept the Arduino Nano on a small perf board. I soldered in three rows of pin headers across the back of the D5-D12 pins (which will talk to the servos). The first row is connected to the Ardiuno pins, the +5v in the next position and GND on the last.

I'm using four (4) 1.2v rechargeable AA batteries in a 2x2 snap-in holder for power. Wired directly to the 5v rail of the Arduino. I had previously tried a 9v battery tied to the VIN line, but the Arduino's voltage regulator couldn't handle the servos and kept rebooting the board every time it made its first movement.

The eyes consist of a Ultrasonic Module HC-SR04 Distance Sensor link: http://goo.gl/lUK4o . TRIG is wired to D13 and ECHO is wired to D3. You can choose whichever pins you like, just make sure to change the code to reflect this.

More from Robotics

view more

All Apps

3D Print your file with 3D Hubs, the world’s largest online marketplace for 3D printing services.

App Info Launch App

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Where exactly is the home positon? I cant figure out how to callibrate my bot :/

I've order Servos from China to make this one =)

Hi, am new to 3D printing and just printed this robot. Have been to put the body together. Does any body have any idea how to design a platform that will bit into the hold in the middle of the body? I want to create a flat surface where I can add my Arduino Uno, batteries and sensors.

Jul 30, 2016 - Modified Jul 30, 2016
UrbanAtWork - in reply to solracinfl

There are a bunch of re-mix files linked off of this model, you should scroll up and check them out. A couple years ago I made my own re-mix and just posted the backbone of the model that was built to hold a breadboard. Nothing awesome, but it was functional.

Mini Quadruped - simple body remix for breadboard

That is perfect! Thank you!

the servo wire is stopping me from putting the servos in the legs anyone got any ideas

Angle the motors in on the wire side first. This should allow you to slide the opposite side in without interference.


nice.. which servo did you used?

I cant seem to find and do the right walking pattern of the bot, when I enter the code and assembled it, It can't walk its all rumbled close to nothing, would appreciate any help. thank you so much!


Is there any assembly video for this quadruped?

How do you get the servo to fit inside the C shaped parts? do you have to flex those parts for the servo to be inserted?

I made one and, after assembling it, I noticed that the leg movement didn't seem to work well with 2 DOF. The reason is that you can't lift the leg without scraping it on the ground, especially on a non-smooth surface (for example, a rug). I suggest putting the up-down servo motion (z-axis) on the body and the left-right servo (x-axis/y-axis) on the leg. This way you can lift the leg then move it sideways. Alternatively, making the existing leg curved/bent (and longer to compensate) might do the trick.

I do think the way the legs attach to the servos is very ingenious. They just snap in place and practically don't need and screws.

I still haven't touched the code since I uploaded it. The idea is that the bot will bend the diagonal opposite leg down to shift the weight to that leg, so that the leg will already be lifted before it actually has to move.

Thanks for the kudos on the design. I'm very happy how the servo horn bracket worked out!

How fast do these things go? My high school robotics team wants to build a few of these for a summer project, and we dont really have te funds to do too much testing.

The have the potential to scurry along pretty quickly. Check out some video on lumi's chopstick bot: http://letsmakerobots.com/node/29708

I've just finished assembling one of my own quadrupeds, and am beginning to program it... do you have any video of it in action?

Check out some video on lumi's chopstick bot: http://letsmakerobots.com/node/29708

really looks cool. Going to print this week end.
Did someone finish and or advance the code?

hello, i print 8 shoulder and all of 8 are broken when i tryto put the servo.
What print parameter do you use ? (infill ?)

TheCase - in reply to jhd

I think its more about your servos being bigger than the openings. Not so much the infill.

If you are familiar with OpenSCAD, download the sources and edit the parts to make the servo openings bigger.

jhd - in reply to TheCase

ok i ll try it

Can you share your code and wiring diagrams?

The files are all there - make sure to download the zip (the "Download All Files" button).

oh thank you!
sorry for the distraction :)

Real quick... what kind of 9g servo did you use for the currently uploaded model because there's tons of different sizes.

It seems there are two sizes out there. The original servos I used have "9G micro" on a gold sticker on the sides. There are also a "Tower Hobbies" brand floating around that have a slightly different dimension. But... I know, in the case of eBay, there's no telling what size you will get, regardless of the picture shown on the listing.

I included the parametric OpenSCAD design here for a reason. Not all servos are created equal - and tweaking the design to fit is easy if you are willing to print a couple test pieces to see how they fit... before you go whole hog on printing the entire set.

Mr. TheCase, I have a few questions. I submitted this to a company to print for me, but they wanted to scale it down in order to print it. Did you scale the 3d model down for printing? also, many companies do not accept .stl format. Where did you get this printed? Thanks in advance.


sent you a PM

Mr. Lumi, how much the total weight of this printed material ? we like to rent someone's 3 D printing service, n we need to calculate the weight estimation before ordering, because the rent fee based on the printed material weigth :)
thank you Sir !

Great design and familiar code :-) Did you improve the code more? I am asking that because I did not have the time to do it by myself. But now I am going to print your designed parts to see how to improve the code with a more precise robot than Chopsticks Junior :-)))

lumi! Thanks for stopping by. I haven't put as much time as I would like into the code. The stance for this bot differs from Chopstick Jr, so I did make a few tweaks to at least get him to walk forward, but that is about it. I was hoping others here would have more time to contribute to the code.

Exactly :-) I will print your parts today and see if I can get it working :-)

Hi. In a lot of quadupeds and hexapods I see the servos mounts/brackets with holes on the top and bottom, like in this one. Why is that? I mean the bottom hole, why do you need it?

to more rigidly support the servo. The "button" part goes in that bottom hole, to rest against the bottom of the servo and acts as a swivel bearing. I took at peek at your design in progress - I'm not sure that carrying the weight load on the servo horn alone would provide enough stability.

I'm not sure about my design either, I would need someone to test it :). I think I understood what you told me... Just to be sure, your sg90 servos have a flat bottom, right? So your "button" part is just pressed against the servo and allows it to rotate and at same time keeps it in place, and with more support? This seams to make sense, but why is there a tiny hole in the "button" part? And this pressure doesn't cause friction between the button and the bracket?

flat bottom: yes
press fit: yes
more support: yes
tiny hole: good question
friction: no, PLA against PLA is rather smooth running

mkay... I realize this is a derived design, so.. Do you know why the tiny hole is there?

Again, no idea. It doesn't even print on my printer. Perhaps it was intended to be used as a screw hole? Or maybe something to break up the smooth surface if one chose to glue the button to their servo? Seriously, your guess is as good as mine.

Awesome! I really like droger's adaptation and your version! :D

Thought you'd like to know that I sent the Plate_Tower.STL file to Shapeways to see if they can print it for me and from my discussion they said that for them, the servo buttons need to be on a separate sprue as they won't print right for them. I can't seem to edit the STL with Blender (I am really green when it comes to this) or anything else I have to strip out the buttons and save them to a separate file. Is it possible to get an uploaded version without the buttons and I can then print that and print the buttons separately?

Great design! The tower pro version was still a little too tight for me. The hole fit the servo body perfectly but there wasn't enough space to angle it in with the wires. I had to grow the length to 24.5 (an additional millimeter) to get it to work.

Second Place in popular things right now lol

very nice with the parametric updates. i think shoulder(27,7) should be about enough for the Tower Pro 9g SG90 servos.
The only thing left is the servo horn side needs a bit more tweaking :)

Hi, I know this is almost a year old, but was wondering if you've got a complete set of files for the SG90 servos?

Excellent - if you could send the final numbers, I'll make a "tower hobbies" set for those that need it.

how do you measure the servo horns? i have one in front of me im just unsure at that you need for them

how do you go about measuring the servo horn? i have one in front of me but oblong shapes like that im unsure how to measure (i have digital calipers btw)

I just need the diameter of each round and the length between the centers of those diameters

I just wanted to point out, it would appear there are two popular types of the blue translucent 9g servos. The most popular one I've seen are called Tower Pro 9g SG90 servos: http://imgur.com/SSCmv.jpghttp://imgur.com/SSCmv.jpg They look almost identical to the ones this project uses, except for two important differences. The first are the wires come directly out of the side, and they are also a few mm taller.

This causes two problems, the first is in order to put these servos into the holders, notches have to be cut in the plastic to handle the wires on the side. The shoulders also need to be longer in order to handle the added height of the servo.

I actually had a really hard time finding the servo used in this project, but I finally found it on eBay. They look like this: http://imgur.com/rRL1m.jpghttp://imgur.com/rRL1m.jpg

They have a notched or angled bottom where the wires come out of, allowing these to slide into the mounts flush without a notch.

You should be able to angle the servo into the slot - clearing the wires before you slide the whole servo in.

I just added parametric versions of the OpenSCAD sources. You should be able to easily modify and export parts to fit your servos.

Fantastic, thank you.

yea that is unfortunate, i think he is working on it though.

i made a bracket based off the ones used in this project but they are far from finished.

Not sure if you noticed, but I cleaned up the code and commented everything. I do plan on putting together a parametric version soon - the plan is to make it as simple as changing the x/y/z dimensions of the servos...

I wish I could just move it around with a remote control :D

heh. that was my "next step" on this project: adding bluetooth.

One of the n-pods I was looking at (Specifically: Dagu's Hexapod) uses an IR Remote and Sensor. Maybe that could be adopted to be used on this...

What print settings did you use?

Im having particular trouble printing the shoulder :/

I have a .5mm nozzle. Three solids vertical, single perimeter, 15% infill.

I think for the shoulders its best to print them laying down, mine snapped crazy easily :/

how can I change file for this tfit towerpro sg90 servo, it is 27mm tall and slots in shoulder parts are just 25mm, and how to fit cable of servo if there is no space for it on the side of hip and leg?

That's why I included the OpenSCAD files - so you can change the dimensions if necessary. I'm not sure what the TowerPro servos look like. If you could link me to a picture of one - I'll see if there is a major gotcha that would cause my parts to not work with that particular servo.

Yeah, if you don't mind waiting for them to come from overseas, you can get them for around $2 each, maybe less, in bulk. $3 each is not bad for quick delivery.

I went ahead and ordered some off ebay already to give me something to do xmas week. after that i might try and make a Johnny 5, since i havent really seen any good ones on here yet

i went ahead and ordered a cheap arduino nano and a sensor (didnt feel like tailoring the eagle files to fit my pro mini)

I should be able to get one of these atleast built by xmas :D

very nice! what servos have you used? I'm going to buy some so might as well try to get the same ones

Just search for "9G micro servo" in the usual places.  The little blue ones.  I don't have the particular link of the lot I purchased at the moment.

Very cool robot. Can you share the code to control it ?

I just added my current version of the code - still a lot of work, but it might be a better start for you than the untouched chopstick code.

There's a link in the instructions for the code that intend to attempt to use... I actually haven't gotten to that part yet.

As I refine it (or something else) to work with this bot, I will share it here.