Introduction: DIY Spot Like Quadruped Robot

This is a Spot like quadruped robot based on LX-16a smart servos (12 DOF).

This robot about 2 times smaller than Spot and about 250 times cheaper :)
All materials and parts required to build this robot cost about $300. It uses cheap smart servos LX-16A (~$15 each) that are power enough to move this robot, but not enough for jumps :)

NB! The latest version is available there:


  • 12x LX-16A smart servos (3 per leg)
  • Bearings per each leg:

2x 693ZZ (3x8x4mm), 3x 6704ZZ (20x27x4mm), 1x 6705ZZ (25x32x4mm)

  • Bearings per each leg's hip:

2x 693ZZ, 2x 6704ZZ

  • Phillips self tapping screws M1.7x8mm
  • 2x M3 self tapping screws for leg gears
  • 2x washers per leg, between leg gear and bearings (693ZZ)

Step 1: STL Files and Robot Overview

STL files for 3D printing:

Robot contains 4 legs, each leg has 3 servos.

Servos drives the 3d printed gears, the gear ratio is 1:2.

Step 2: Assembly the Leg

The robot is too complex, so it is better to start with one leg.

3D print the leg's parts and check the bearing holes. Depends on 3D printer settings the holes could be too small and may requires a little extension using knife or other tools.

But in general, the bearings should be inserted tightly, without gap.

Here the 3D model of one leg:

Then assembly the opposite leg and joint their hips with two M3 bolts.

Step 3: The Tune Up of Leg's Servos

Before completion with leg make sure that in the servos middle positions (500) the leg's joints positions are according to picture.

Use the following link to set the servos positions:

Here the example command to move the servo with ID 1 to position 500:

> python set_pos 1 500

Step 4: Assembly the Body

3D print the body parts. The body consists of middle tube inside the frame.

The frame consist of:

4x body_plane_L.stl

4x body_plane_R.stl

3x body_frame.stl

And the middle tube (optional):


STL files:

All 3D printed items are jointed with small Phillips screws.

The body joints together the two pairs of legs, front and back.

Step 5: Servos Setup

Now it is time to setup the servo IDs according to the provided pictures.

Attach one servo per time to smart servo controller and use the following link with instruction how to setup the servo ID:

Step 6: G-Code Controller

For this robot I wrote the native G-Code controller that is available on GitHub:

You will find all required instruction how to compile it in this link:

If you will compile and run this controller without code modification then it will move the robot to its first tune-up position according to the pictures.

The G-Code controller contains 2 tune up positions and example of G-Code file with different robots positions and walking styles. The more details description of G-Code controller and all its features is out of this instruction scope and requires separate instruction.

You can look at the demo video that shows some very complex movements that this G-Code controller supports.

Step 7: Final Tune Up

Here the second tune up position that can be activated in G-Code controller by un-commenting the corresponding line.

The leg's joints angels between body and floor should be 90 degree when robot is not loaded.

You can fine tune the servo's offset (from -120 to 120 points) in G-Code controller as shown in code snippet.

Step 8: Related Links and Videos