Mike's Robot Dog

Boston Dynamics' robot dog, Spot Mini is unavailable at any price. A Chinese copy is $30,000. Cut 99% of the cost and build one at home.

Similar projects worth following
Walking robot platforms can navigate buildings, climb stairs, enter cars, and traverse farmland. Potentially, they can become elder companions or herbicide free weed removers. Excessive cost for such a platform, tens of thousands to millions of dollars, discourages students, makers and startups from advancing the technology. My goal is to create an open, shared, walking platform that costs hundreds of dollars. The affordable accessibility this provides, coupled to the intellectual capabilities of people throughout the world, may spark a new industry.

For competition purposes, there are three distinct robotics modules included here. 

 Number One, in the build instructions are the details for a 4 leg module (one week build time and cost of less than $500.)--user supplies power, control and sensors.

Number Two, in log number 14, "Dog's Head," there is a dog head with servo controllable ear motors. Modules one and two are shown operating below.

Number Three, in log number 13 are the instructions to build a "Tilt Module" that can provide tilt information for a control processor.

In the build instructions you can find all the information necessary to build (in one week for less than $500.) a four leg module for Mike's Robot Dog. Control and power lines for the 12 servo motors are brought out to terminal blocks. Power, sensors and control signals must be supplied to make the dog stand or move.

The leg module stands! Here's a video. Go to log number 12, Wiring the Module for Power and Control, for details.

I designed a low cost tilt module, using four roller ball tilt switches, to provide tilt information for the control processor.

The switch module looks like this.

For more details, check out "Tilt Module" in the logs.

Here's the overview video for the robot leg module.

Let's go for an overview of the overall project and start with the video below:


Increase torque of legs

Decrease weight of legs

Build a stiff, low weight body

Stand on three legs

Add tilt sensors to facilitate adjustments when moving

Take steps

Add onboard power


Take steps

Add head with sound interaction

I had to show this . . . Google's AIY Vision Kit can be used to detect human faces or smiles (and probably other things). This will allow my dog to "know" that someone is there and if they are smiling. More information can be found in log number 10, "Google AIY Vision."

Spot Mini is an amazing (perhaps scary) robot dog built by Boston Dynamics--not for sale.

If you want to purchase something similar, a company in China produces a research platform for around $30,000. Another legged platform, Anymal, can follow you into an elevator.

Using a 3d printer, off the shelf servo motors, an Arduino and a couple of ultracapacitors; I have started something along the same line--but the cost is more like $300. 

She's young and shaky, but my dog can now stand. The body is longer and the rear legs reversed--look to my log, "The Forces Are Not All With Me."

Here's where we "stand" on March 28.

This is where it started.

If you want to use the 3d print files (and some of the design files) go to Some of my .stl files do not have a corresponding design file because the .stl files are 1) the combination of two or more .stl files in Tinkercad or 2) they are mirror images of .stl files, mirrored in Tinkercad. The leg pieces can take 10-12 hours each to print as they are sizable.

I use twelve high torque (277 metal gear servo motors at a cost of about $18. each. These have no end stops and they draw a fair amount of current to move, but they respond consistently to commands.

Under heavy load, each servo motor draws 3.5 to 4.5 amps. To move from a sitting to upright position, eight motors need to provide...

Read more »

Waveform Audio File Format (WAV) - 439.41 kB - 06/03/2018 at 19:43


f3d - 71.45 kB - 06/03/2018 at 19:43


f3d - 77.91 kB - 06/03/2018 at 19:43


Standard Tesselated Geometry - 51.64 kB - 06/03/2018 at 19:43


Standard Tesselated Geometry - 46.18 kB - 06/03/2018 at 19:43


View all 52 files

View all 7 components

  • Dog's Head

    Mike Rigsby06/03/2018 at 20:12 0 comments

    Here's the first version of a head--with flapping ears synchronized to barks.

    I don't have a dog, so we had to visit a friend and record their dog's bark. Of course, Juston (the dog) just stood silently for all the many things that normally trigger a bark (treat, knock on the door, promise of a car ride). Finally, he was induced to talk.

    This "Dog Head Module" is a 3d printed head with two servo motors that can be used to flap ears. It can be added to any dog robot (wheels or legs) and modified (the raw head files are available on this site).

    My wife, Annelle, made a clay head for scanning.

    The head is fairly large and was scanned on a Makerbot Digitizer.

    The resulting scan file (included) was too large to import into Tinkercad. I reduced the file size (included) then imported the head into Tinkercad and made holes for the servo motors and wires.

    I mounted the micro servo motors in their 3d printed brackets, then melted (using a soldering iron) the bracket into the head.

    I added a servo horn extender to the servo horn so that the ear would move a reasonable amount.

    Bearing brackets (3d printed) were melted onto the dog's head. They accommodate the 1 1/4 inch by 2-56 machine screws that allow the ear to move.

    A bearing adapter piece must be melted to each ear.

    A finished (not painted) ear looks like this.

    Back to the art shop (Annelle) for a paint job.

    Assembled, the head looks like this.

    I used an Adafruit sound module board and trigger the bark file (included on this site) with an Arduino. I coordinated the ear flapping servo motors with the bark sound. 

    You could put square 8x8 led modules in for the eyes. The mouth could be cut away and modified to move for the bark . . . this is just a starting place.

  • Tilt Module

    Mike Rigsby05/25/2018 at 20:27 0 comments

    This low cost module using four roller switches and a 3d printed bracket can be used to provide tilt information for a robot.

    The idea is to use four roller ball tilt switches (about $.50 each from Amazon) and a 3d printed bracket to detect tilt. I designed a four degree tilt to each of the four "arms" so that the balls would roll downhill when the robot is level.  By assigning the numbers "1" for north, "2" for east, "4" for south, and "7" for west it is possible to read each switch then add the numbers and know whether there is tilt and in what direction.

    The leds shown below are just for testing--not part of the finished sensor.

    I start with the tilt switch holder and insert the tilt switches. The "not active" end is pointed toward the center (longer wire, silver instead of brass). The "active" end--when lower than the other end--will result in continuity between the end wires.

    I use wire wrap wire (then solder it) to connect the pins. The center position I tie to ground on the Arduino. Direction one goes to A0, direction two goes to A1, direction four goes to A2 and direction seven goes to A3 (since I used 12 Arduino Uno pins for servo control, I'm running low on input/output pins).

    The final assembly, fastened to the dog using a wood screw, looks like this.

  • Wiring the Module for Power and Control

    Mike Rigsby05/24/2018 at 19:55 2 comments

    To make the module stand requires power and control. Here's a schematic of the power components.

    Let's look at the physical wiring. I connected the + and - power blocks using number 18 stranded wire.

    I added an Arduino Uno to control the servo motors.

    Pins 0 through 11 are connected as follows:

    A top view of the connected wiring is shown below.

    The starting position for the servo motors on the legs is shown below.

    Because each spline on a servo shaft/horn represents about 15 degrees, the servo motors must be operated until a satisfactory position is achieved and that value should be recorded.

    The .ino Arduino sketch for standing/sitting on this site as module test 0524.

    Here's the standing routine.

  • Leg Test With High Torque Servo Motors

    Mike Rigsby05/11/2018 at 19:42 0 comments

    Today I tested the more powerful leg.

    The original leg--using 20 kg-cm servos--could exert 1250 grams of "push" on a scale. The new leg--using 40 kg-cm servos--measured 3300 grams of "push" before the upper plywood test jig lifted. In other words, I'm getting nearly three times the lift with the new motors. The original leg used three $18. motors while the new leg uses one $18. motor and two $38. motors; so my cost per leg just went up $40. 

    The extra torque was too much for the upper axle piece and it sheared at the connection where it holds the leg.

    I reprinted the axle at 100% fill and it is now holding for test purposes. I'm in the process of redesigning the connection for more strength.

    An unexpected benefit of the new motors involves a stiff gear train that resists external movement. If I raise the leg in the air and remove power to the servo motors, the leg stays in place.

    This is a major benefit in that the motors draw virtually no current (thus no wasted heat and battery energy) unless they are moving.

    I'm working on stronger connections and I've ordered enough parts to complete four legs. 

  • Google AIY Vision

    Mike Rigsby04/22/2018 at 00:27 0 comments

    I assembled a Google AIY Vision Kit tonight (took about two hours). This will be great for the dog since it will allow the detection of humans and whether they are smiling. I am using the default mode--have not explored the many options at this time.

    When no face is detected, the light on top is not illuminated.

    When a face is detected (and it will easily detect a single face at a distance of 20 feet) the light turns blue.

    When there is a smile, the light turns yellow. A big smile will turn the light bright yellow and trigger a piezo buzzer.

  • Stronger Leg

    Mike Rigsby04/21/2018 at 18:59 0 comments

    I've completed the addition of two larger, more powerful motors (twice the torque of the original servo motors). The files for the changed parts are available on this site.

    First, I added the aluminum servo horn to the new shoulder axle.

    Next, I disconnected the existing elbow joint.

    Now, I set the new motor and bracket in a similar position to the old--so I wouldn't mix things up too much.

    I mounted the motor to the upper leg.

    I attached the aluminum servo horn and back bearing to the ankle servo connector.

    I attached this assembly to the lower leg.

    I attached the lower leg to the elbow assembly.

    I pushed the shoulder axle through the linear bearing and attached it to the upper leg motor bracket.

    I attached the servo horn to the servo motor and tightened the locking screw through the hole in the axle/shaft.

    I checked the total leg mass and it came in at 986 grams--which is 86 grams more than the original. 

  • Leg Removal and Upgrade--Part 1

    Mike Rigsby04/14/2018 at 00:11 0 comments

    The left rear leg has to come off for new motors (twice the torque) in the shoulder and elbow joints.  First, the wires have to be disconnected.

    Next, the leg is removed from the body.

    The total leg assembly will require design tweaking to keep the weight down and minimize some sharp edges (I don't want to get hurt--the motors are getting pretty powerful now).  A good leg assembly could be a "module" for the Robotics Module Challenge.

    I put the existing leg assembly on the scales and it came in at 900 grams.

    The shoulder motor and bearings (existing) are 351 grams.

    The new (larger and heavier motor) shoulder motor and printed bearing comes in at 280 grams.

    At least it's going in the right direction--I would love to have the new leg weigh the same or less as the old leg.

  • Testing the Large Servo Motor

    Mike Rigsby04/11/2018 at 19:12 0 comments

    Before changing the servo motors, I need to know something about the motion limits and power requirements of the large motors (FT 5335 M from Pololu).

    Using an Arduino, any commands lower than 30 degrees do not correspond to movement, thus 30 degrees represents the most clockwise position (viewed from the top).

    The 150 degree command is the last one that works in the counter clockwise position, thus I have about 120 degrees available for movement.

    At 7.4 volts, two amps minimum is needed to during unloaded motor travel. About .12 amps are required to stay in position with no force applied.

  • Larger Servo Motor

    Mike Rigsby03/30/2018 at 19:22 2 comments

    The dog stands, but just barely. As long as the voltage remains solid, motors don't overheat and all four legs share the lift in a fairly even manner, she will stand.

    It's time for more torque. I'm trying a larger servo motor (1/4 scale) that provides double the torque of my current motors (550 oz. in versus 277) at slightly more than double the cost ($39.95 each).

    Here's what the new motor looks like compared to the old one.

    Now, to start the knee change design process. First, I measured the new servo and printed a template to see if the motor and screw holes would align.

    Too precise!  The motor has to be "angled in" to fit the cable; thus the length of the slot must be slightly larger than the length of the servo body to work.

    Just adding a millimeter here and there resulted in a hole too large. Time to adjust again and reprint the template.

    This is a good fit--now to add some depth and sides.

    That looks good. Next, it needs to blend with the upper leg attachment bracket.

    During the 4 1/2 hour print, filament on the spool was tangled and a weak layer was printed in the bracket.  Time to change filament and print again.

    This looks pretty good.

    I think this will work--of course I'll have to create a new receiving bracket for the lower leg.

  • The Forces Are Not All With Me

    Mike Rigsby03/26/2018 at 20:22 0 comments

    My experimental results were confusing, so I needed a better grasp of the forces at work.

    The front end of the dog would stand easily enough. The rear end refused--either the feet would slide, the entire dog shift rearward or some other odd combination.  Tests indicated that the rear legs could produce the same torque as the front legs, so what was going on?

    I decided to assume some experimental circumstances. From the left side, suppose that the left front foot is fixed to the ground and the shoulder is free to rotate. Change the knee angle from 60 degrees to 80 degrees.

    The body should rise and move backward.

    Now, same imaginary experiment, but don't let the body move rearward--let the friction of the rear legs or some other force prevent rearward movement.

    The body rises and the leg "looks" the way I thought it would.

    Now, looking at the left side, let's assume the front and rear legs are operational--feet fixed and shoulders free to rotate.

    The body must rise and move rearward or the feet must slide forward or some combination.

    Now, another thought experiment. From the left side, let's look at the front shoulder joint and assume that the shoulder rotates in the clockwise direction.

    This will tend to make the rear of the body go down and it will tend to push the body backward (think wheel instead of leg and the "foot" (wheel) does not slide).

    What happens when the rear shoulder joint turns clockwise?

    This will tend to make the rear go down and the front rise up while pushing the body rearward.

    Everything seems to push the body backward and a couple of things work to push the rear end toward the ground.

    Now, I'm pulling out my ace--in 1999 I purchased a Sony robot dog, Aibo.

    To stand, Aibo's left front shoulder turns clockwise and his left rear shoulder turns counterclockwise.

    I flipped the rear legs on my dog (right rear became left rear; left rear became right rear) and he was able to stand.

    This doesn't explain how Boston Dynamics gets their dog to stand--but that's not my problem. Note in the "Details" that the "Anymal" dog uses the opposing rotation method.

    For general information, while tearing my dog apart I noted that a leg assembly (including three 67 gram motors and two steel bearings) comes in at 808 grams. I need to reduce this in a redesign--just another thing to keep in mind.

View all 14 project logs

  • 1
    Leg Module

    In one week, for less than $500., we can have a four leg module that requires for operation: power, control for 12 servo motors, sensors.

    Here's what the module should look like:

    Let's start with a list of materials needed. First, there are the 3d printed parts (files available on this site).

    (4) Super Servo Holder

    (4) Upper Axle Strong

    (8) Back Bearinga

    (4) Rotate Piece Fat

    (4) Bearing Linear

    (4) Axle Nut

    (4) Upper LegA

    (4) Super Servo Combo

    (36) Axle Bolt

    (4) Ankle Servo Conn

    (4) Lower Leg

    (4) Foot Holdera

    (4) Axle

    (4) Foot

    (4) Wire Guide

    Other Parts:

    (32) m3 x 16mm bolts

    (32) flat washers for m3 bolts

    (48) m3 nuts

    (8) FT 5335M servo motors (

    (8) aluminum horn for FT 5335M servo (

    (20) 2-56 x 7/16" bolts

    (28) 2-56 nuts

    (24) m3 x 8mm bolts

    (4) 20 kg-cm servo motor (

    (16) m3 x 12 mm bolts

    (8) 2-56 x 3/4" bolts

    (8) lockwashers for 2-56 bolts

    (1) plywood body  1/2" plywood 28" x 10"

    (1) paint for plywood body

    (16) #6 x 1 1/4" wood screws

    (24) #6 x 3/4" wood screws

    (4) 5 position terminal blocks

    (4) number 4 x 1/2" wood screw

    (4) servo extension cable

    (1) aluminum duct tape (or any other tape)

    (4) small tie wrap

    For the body, I examined several materials and decided to go with 1/2" plywood. The body requires about 200 square inches of material. Below are some of the materials considered:

    1/4" plywood  2.15 grams per square inch

    1/2" plywood 4.3 grams per square inch

    1/4" acrylic  4 grams per square inch

    5 mm foam board  .59 grams per square inch

    1/4" plywood is too flexible--I had bending problems requiring support on the early dog versions.

    5 mm foam board looks great in theory, but I had doubts about the stiffness and my ability to connect things securely.

    1/4" acrylic would look "cool," but it's not so easy for me to work with.

    I examined carbon fiber sheets, but that looked like a project unto itself.

    I cut the plywood in a shape to reduce the weight.

    Then, I painted the plywood.

  • 2
    Assembling the Leg

    Here's the main pieces.

    Attach a servo motor to "Super Servo Holder" using (4) m3 x 16 mm bolts, nuts and flat washers.

    Set the left front shoulder servo to the ccw rotation maximum, 150 degrees.

    Attach the "Upper Axle Strong" to the aluminum servo horn using (2) 2-56 x 7/16 bolts and nuts.

    Attach "Back Bearinga" to "Rotate Piece Fat" using (3) m3 x 8mm bolts. Attach servo horn (from 20 kg-cm servo) to "rotate piece fat" using (3) 2-56 x 7/16" bolts and nuts.

    Slide "Upper Axle Strong" through "Bearing Linear."

    Thread "Rotate Piece Fat" onto "Upper Axle Strong."

    Tighten "Axle Nut" onto "Upper Axle Strong."

    Set Servo Twist Motor to 90 degrees. Attach "Servo Twist Holder" to "Upper Lega" using (4) m3 x 12 mm bolts and nuts.

    Install motor in "Super Servo Combo" using (4) m3 x 16 mm bolts, nuts and flat washers.

    Attach "Super Servo Combo" to "Upper Lega" using (4) 3d printed "axle bolts."

    Set "Super Servo Combo" motor to cw max--30 degrees.

    Attach "back bearinga" to "Ankle Servo Conn" using (3) m3 x 8 mm bolts.

    Attach aluminum servo horn to "Ankle Servo Conn" using (2) 2-56 x 3/4" bolts, nuts and lockwashers.

    Connect "Ankle Servo Conn" to "Lower Leg" using (1) "Axle Bolt."

    Connect "Foot Holdera" to "Lower Leg" using (2) "Axle Bolts."

    Place "Axle" in "Foot." It's a loose fit.

    Insert foot/axle into "Foot Holdera."

    Secure foot using (2) "Axle Bolts."

    Connect lower leg assembly to upper leg assembly by attaching "Ankle Servo Conn" to servo motor. Leg should be in sitting position. Insert servo horn screw and tighten.

    Adjust "Rotate Piece Fat" so that leg will be in sitting position. Insert servo horn screw and tighten.

    Place "Servo shoulder holder" and "Bearing Linearb" on plywood body. Assume sitting position for dog. Secure using (4) number 6 x 1 1/4" screws and (4) number 6 x 3/4" screws.

    Insert servo twist motor into "Rotate Piece Fat." Install and tighten servo horn screw.

    Install 5 position terminal block using (2) number 6 x 3/4" wood screws.

    Install wire guide. Use (1) number 4 x 1/2" wood screw.

    Connect servo extender cable to "Super Servo Combo" servo motor.

    Route cable and secure using duct tape. Secure servo wire to "Servo Twist Holder" using a tie wrap.

    Secure wires in terminal blocks. From outside looking in, position number 1 (left most) is upper servo control wire. Position 2 is "servo twist" control wire. Position 3 is lower ("super servo combo") control wire. Position 4 is positive. Position 5 is negative.

    Do this three more times. Left front and right rear legs are the same. 

    Right front and Left rear legs are set up with the "Servo shoulder motor" set to the maximum cw limit (30 degrees) instead of 150 degrees.

View all instructions

Enjoy this project?



Keigomoriyama wrote 3 days ago point

Wow i was amazed from what i saw here and i would like to help as much as possible. I admit i'm really newbie but i have a 3d print so I can help trying different designs and even if small i want to give my contribution

  Are you sure? yes | no

Francisco Dominguez wrote 06/11/2018 at 18:17 point

Hello Mike

I love your work.

I am working on quadrupeds too.

I did this little dog named EasySpot:

This doen't need any custom made part just 12 servos, one arduino and a i2c servo driver module.

I am working on a bigger version with custom made parts, like your Mike, I will name it TranquiSpot.

If I can help you on this project please tell me.

 Paco from Spain

  Are you sure? yes | no

Mike Rigsby wrote 06/12/2018 at 21:23 point

I watched your video--it's very impressive! You should consider entering it in the Hackaday competition; you've already accomplished a great amount.

  Are you sure? yes | no

Stuart Longland wrote 05/12/2018 at 11:14 point

Looks like Boston Dynamics might be selling Spot Mini … although probably at eye-watering prices…

Somehow, I think this project will deliver a cheaper and more open robot. :-)

  Are you sure? yes | no

Mike Rigsby wrote 05/12/2018 at 14:06 point

I'm glad to see that they will become available--it will be interesting to see their initial pricing and market strategy.

  Are you sure? yes | no

malvasio.christophe wrote 04/12/2018 at 14:29 point

for your new goals of onboard power & increased torque there is if you want ;)

  Are you sure? yes | no

Duke Circuit Co.,Ltd wrote 03/17/2018 at 04:14 point

Looks cool,wish you can have a good market.

  Are you sure? yes | no

malvasio.christophe wrote 02/28/2018 at 07:41 point

is this printed in full ?

missing legs rotation

  Are you sure? yes | no

Graham Toal wrote 02/26/2018 at 20:00 point

  Are you sure? yes | no

jorge wrote 02/24/2018 at 14:29 point

Hello, congratulations

Can you tell me which condenser you use (link)?
Thank you!

  Are you sure? yes | no

lion mclionhead wrote 02/23/2018 at 17:12 point

Boston makes a micro version out of servos.  Because of the limited torque & speed of servos, it's very slow & moves more like a toy.  The Ghost Robotics Minotaur has come the closest to replicating Boston, for a lot less money.

  Are you sure? yes | no

ActualDragon wrote 02/23/2018 at 17:21 point

+1, the ghost is super cool

  Are you sure? yes | no

John wrote 02/22/2018 at 00:06 point

As the shoulders  carry the loaded weight, I would consider using 2 bearings (with some distance between them) per the improved shoulder joint. It would take the weight torque off of the single bearing ... which would be coupled to the motor. Also, to reduce the weight of the legs, you might want to use cabling to connect the driver motors located on the "body", down to the joint. It is a little more complex, but reducing the inertia of the legs might help the motors "upstream". Usage would be similar to a bicycle's brake / shifting shielded cables. That would also allow you to gear the motors, IF you have enough motor speed to trade for reducing the power loads.

When I saw the Boston Dynamics "dogs", I wanted to build some, too! Glad to see someone doing it! I like your design! IIUC, they use Neural Networks to learn to walk, etc. What are you using (or going to use)?

A possible optional material to use MIGHT be PVC pipe, rather than 3D printing the "bones". The schedule 40 stuff is pretty tough. You'd still have to print the joints.

Just for fun, there is a linux voice interface called "Mycroft", just in case you ever want to call your dog, or give it vocal commands. I think it runs on a raspberry PI.

As a final thought Home Depot has 2 sizes of bearing, in drawers in the hardware section (where they keep nuts, bolts and washers). I know that that is not helpful if there is no such store where you live.

  Are you sure? yes | no

Mike Rigsby wrote 02/22/2018 at 00:48 point


Thanks for your well thought out comments! I am using two bearings per leg--but no distance between them. That gives me 24 mm of bearing surface (which is better than the nothing I started with). 

Cabling the downstream joints would reduce the leg inertia--I'll have to see how much of a problem that is before I make changes there.

I'm not going to pretend that I have all the answers and "learning to walk" is a challenge to be addressed. If the legs have enough torque and speed to stand up with load and potentially walk, then I'll address the programming and feedback tasks. I can get double the torque if needed, but the motors cost $70. each instead of $18.

I didn't know that Home Depot had any bearings--I'll take a look next time I'm there.

I am interested in voice recognition and visual (camera) recognition, but I have to know how much weight I can carry before I go there.

Really, if I can get a self-contained (battery on board) platform up and walking, then it will be something that a lot of people can enhance with their skills.

  Are you sure? yes | no

John wrote 02/22/2018 at 02:12 point

I just recently stumbled across the HD bearings, myself!

Again, great project!

  Are you sure? yes | no

ActualDragon wrote 02/22/2018 at 02:50 point

two words: magnetic. bearings.

  Are you sure? yes | no

Stephen Tranovich wrote 02/14/2018 at 01:19 point

This looks really promising! Congrats for getting it to stand on its own! Can't wait to see it walk.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates