Introduction: How-to: 17 DOF Humanoid Robot

About: Maker, engineer, mad scientist and inventor

Assembling DIY robot kits is one of my favorite hobbies. You start with a box full of components organized in small plastic bags, and ends with a mounted structure and several spare bolts!

In this tutorial I present how to assemble a kit of a 17 degrees of freedom (DOF) humanoid biped robot, i.e., a robot with 17 servomotors: three in each arm, five in each leg and one for the head.

This type of robot can be used both as a children's toy (for kids over 12 years who want to become familiar with robotics, mechanics, electronics, etc.) and for young people and adults who want to get a little more involved in software programming. It can even be used as a platform for research and development. Probably you will not be able to make a robot that practices parkour, like the Atlas, but you can try to make your robot walk, imitate movements or even play soccer!
In this tutorial I present only how to assemble the kit and use the basic software, but the possibilities of control and programming are numerous (and can be approached in future projects).

About the kit:

In this project I used the Sainsmart kit that you can find in the following link:


  • Quality of the parts: the structure of the robot is entirely in aluminum and presents good mechanical resistance. The material is susceptible to scratches during assembly, but will hardly bend or break.
  • Spare parts: the kit comes with several spare bolts and nuts. It is reassuring to know that a lost screw won't prevent you from finishing the assembly of the robot!
  • Tools: all necessary tools for assembly are included in the kit. You do not need any additional apparatus (unless you wanted to do some welding, as in my case).
  • Electronic components: both the servomotors and the control board have been shown to be of excellent quality. The kit even comes with a remote control that can be used to control the movements of the robot, which wasn't explored in this tutorial.
  • Software included: for begginers, the software provided by the manufacturer will help you to test simple movements and to program sequences of movements, without needing any programming knowledge!


  • Documentation: the kit doesn't have a good documentation available online, which can be a bit frustrating at first. Some parts of the manual are only available in Chinese, and often refer to kits other than the one used here.
  • Parts missing: despite the spare parts, it could come with a few more spacers to mount the circuit and the front structure of the robot's body.
  • Power supply: The kit does not come with batteries or a specific power supply for powering the motors (between 5 and 7.4V). It took some time to get the batteries right for the project.

Step 1: Tools and Materials

The following tools and materials were used in this tutorial:

  • SainSmart 17-DOF Biped Humanoid Kit (link). This awesome kit has with everything you need to built a humanoid robot: 17 servos, metal structure, bolts, nuts, etc. It already comes with the tools need for assembling the chassis, which is great for beginners! Electronics and cables are also included.
  • Solder iron and wire (link / link). You'll eventually need it to solder the battery pack and the on/off button. So consider having a good solder iron and wire neaby.
  • 18650 3.7V batteries (x4) (link / link). I used to power the whole circuit. This servos use between 5 and 7.4V. I used two 3.7V batteries in series for powering them. I used two packs in parallel for more current.
  • 2S 18650 battery holder (x2) (link / link). It can hold two 18650 batteries in serie, and can be easilly be attached to the back of the robot.
  • 18650 battery charger (link / link). Your batteries will eventually run out of power. When that happens, a battery charger will come to your rescue.

The links above are only a suggestion of where you can find the items used in this tutorial (and maybe support my future tutorials). Feel free to search for them elsewhere and buy at your favorite local or online store.

Step 2: Arms

Assembling the robot arms is the easiest and quickest part.

The following parts will be used on each arm:

  • U-shapped profile (x2)
  • C-shapped profile (x2)
  • Hand (x1)
  • Servos (x2)
  • Bolts (x10)
  • Nuts (x8)
  • Screws (x14)
  • Disk-type servo horns (x4)

The video above illustrates how to do the assembly.

For each arm, the following steps should be performed:

  1. Attach one pair of U-shaped profiles (back-to-back) using four bolts and nuts. Use the Phillips screwdriver in the kit to tighten the screws. At the end, you will have a profile in the shape of H.
  2. Fit a servomotors inside on one side of the H-shapped profile. Fix the motor using seven screws, three on the side of the servo motor with the metal shaft, and another four on the side of the servomotor with plastic shaft
  3. Fit the second servomotor to the other end of the H-shapped profile, similar to the previous step. Position the servos so that both are with the metal axis facing the same side.
  4. Fit the servo drive horn to the axes. In the metal shafts the appropriate discs (with some internal teeth) and screws must be used for their fixing. The discs on the plastic side are free.
  5. For wrist mounting, connect the metal profile of the hand to the C-shapped profile using four screws and nuts.
  6. Attach the hand to one end of the arm. The C-shapped profile must be connected so that its two ends fit externally on the two discs of one of the servos. Align the holes and secure with 3 screws on each side.
  7. Repeat the steps above for the other arm.

In the next part I show you how to mount the robot's legs.

Step 3: Legs

The mounting of the legs of the robot is the most time consuming part given the number of motors used. The following parts are used on each leg:

  • Foot (x1)
  • C-shapped profile (x5)
  • U-shapped profile (x2)
  • Hips (x1)
  • Servos (x4)
  • Bolts (x44)
  • Nuts (x16)
  • Screws (x25)
  • Disk-type servo horns (x8)

The video above shows how to do assemble the legs. The following steps must be performed:

  1. Attach the first servomotor to the foot of the robot. The servo fits in the center of the foot (there will be a rounded part for the shaft socket) and must be secured using six screws (three on each side).
  2. Place a horn on each side of the servo, remembering that the disks are different for the plastic and metal shaft.
  3. Join two C-type profiles (back-to-back), with a rotation of 90 degrees with respect to the other. Use four bolts and nuts to connect these two parts. After mounted this piece will be used in the ankle of the robot.
  4. Attach the ankle to the servomotor installed at the foot of the robot. One of the C-shaped profiles should be attached to the two servo disks using three screws in each.
  5. For the leg and thigh of the robot, the same type of assembly will be used. For the leg, attach a C-shaped profile with a U type profile using four bolts and nuts. A servomotor should be placed inside the end where the U-profile is and secured with seven screws (three on the metal shaft side and four on the opposite side). Repeat this assembly twice.
  6. Connect the ankle to the leg of the robot. The servo of the leg should be connected to the C-shaped profile free end at the ankle, using six screws for connection between the two parts.
  7. The thigh assembly should be performed in the same way as the leg, connecting the existing servo in the thigh to the free end of the C-profile of the leg.
  8. To connect the leg to the body (shown in the next step) it will be necessary to mount the hip. Connect the hip (rectangular part) with a type C profile using four screws and nuts.
  9. A servo must be connected facing the hip piece. This part has a rounded cavity to fit the servo shaft. Use six screws to secure the servo. Then connect the horns to the axles using screws when necessary.
  10. Lastly, connect the hip to the thigh, just as in the previous sections.

In the next step I present how to mount the body of the robot and perform docking arms and legs.

Step 4: Body

Mounting of the body is the last part before you can start to play with the electronics. It's a quick one!

The following parts are used here:

  • Plain body part (x2)
  • Rounded body part (x1)
  • C-shapped profile (x2)
  • Servos (x4)
  • Bolts (x24)
  • Screws (x25)
  • Disk-type servo horns (x8)

The video above shows how to do assemble the body.

To assemble it, the following steps must be performed:

  1. The body assembly is started by fixing the four servo motors in the body structure (flat triangular shaped aluminum part). Install the two motors on each shoulder and the two motors on the pelvis using a few screws for fastening.
  2. Install the second body plate one on the top of the servos, using screws for fixing. Attention to the screws on the inside, close to the shoulders
  3. Place the horns on the four servos, using screws in the gears.
  4. A C-shaped profile must be attached to each shoulder using four screws for attaching to the servo horn.
  5. Position the robot arms, fitting it on the C-shaped profile of the end of each leg to the motors of the pelvis. Secure the legs using six screws.
  6. Position the arms, fitting the servo at the end of each arm to the C-shaped profile C of the robot 's shoulder. Attach them using six screws for each arm.
  7. Install the servo of the head between the two body plates, using screws on both sides.
  8. Finally, install the front of the robot. Use some spacers by securing them with nuts in front of the robot. Install the rounded front part over the spacers using screws.

Step 5: Wiring Up

Once the metal frame is assembled, start with the electronics.

Attach four spacers to the back of the robot, securing them with nuts. Install the control plate over the spacers, and use four screws to secure it. At this point, unroll the servomotors cables and connect them to the control board as below:

  • S1 = Left leg foot
  • S2 = Left leg ankle
  • S3 = Left leg knee
  • S4 = Left leg tight
  • S5 = Left leg pelvis
  • S8 = Left arm hand
  • S9 = Left arm elbow
  • S10 = Left arm shoulder
  • S11 = Head
  • S12 = Right arm shoulder
  • S13 = Right arm elbow
  • S14 = Right arm hand
  • S16 = Right leg pelvis
  • S17 = Right leg tight
  • S18 = Right leg knee
  • S19 = Right leg ankle
  • S20 = Right leg foot

In my case, I chose to use batteries to power the robot. I fastened two battery holders to the back of the robot using screws and nuts. I used two 18650 series batteries in each holder (doing so 7.4V). The battery packs were then connected in parallel to have a larger current to drive the motors. The negative pole of the battery has been connected to the control board GND. On the positive pole I installed a switch (supplied from the kit itself) to turn the robot on/off. Solder the wires to the button and another piece of wire in the other terminal. This wire should then be connected to the control board in the Vs terminal.

Despite having used batteries with considerable capacity, the autonomy has been very low. As the batteries begin to discharge the servos may begin to shake, and may go so far as to make erratic movements.

Step 6: Software

To use the robot, install the software and drivers available on

Download the file bellow and extract somewhere on you PC:

Install the driver (usc_driver.exe) and then run the control software (rios_usc.exe).

The usage is very simple. Plug the micro USB cable into the robot on the PC. Select the appropriate communication port and start the connection. Only then turn on the servos power (be careful because they can move violently to the starting position).

The software presents a graphical representation of the robot. Each engine has a sliding bar, which can be used to choose the angle of each engine gasket. It should move as the buttons are triggered. In the interface it is possible to save a sequence of movements, with a gap between them. Choose the angle of each joint and add movement to the stack. When you click play, the robot executes the sequence of saved moves.

Step 7: Have Fun!

Thanks for reading my tutorial and watching the videos. I hope you liked them and that they would be useful in some way, either to help in assembling your robot or to inspire you to carry out future projects. Do not forget to like and share this project with your friends. Your support is very important! :D

This tutorial is participating in Toys contest. Be sure to check and give your vote!

If you still don't follow my tutorials, please take a look at those other projects. I hope you like them!

And if you enjoyed this or other of my tutorials, and want to see more robotics content, Arduino or internet of things, consider financing my future projects! Just bought a kit and feel that it needs a better documentation? Tell me on the comments.

Please consider supporting my future projects with a small donation! :D

  • Bitcoin donation: Deposit Address = 1FiWFYSjRaL7sLdr5wr6h86QkMA6pQxkXJ
  • Paypal donation:
  • Send me a kit, and I'll create some content on how to assemble it!
Toys Contest

Participated in the
Toys Contest