Ez Arduino Spidey - Making a 12 DOF 3D Printed Quadruped Robot




About: We love robotics!

This is an inexpensive 3D printed 12 DOF quadruped robot using Arduino kind control board. It has two playing modes. One is autonomous pilot mode which the robot walks and performs actions randomly. This is the default. The other is control mode where the robot is controlled by iPhone or Android phone via BLE technology. This page should guide everyone to make one easily.

We have an hexapod robot, you may be interested to make it too, see here.

Step 1: Printing 3D Models

Download the 3D printed STL models files here. Suggested parameters for slicing the models to print are as followings. You may adjust them to fit the 3D printer you're using. If you don't have a 3D printer, you may find online 3D print service.

  • bottom/top thickness: 1mm
  • shell thickness: 1.2mm
  • ayer height: 0.2mm fill
  • density: 10%
  • support: yes
  • adhesion type: skirt or brim

Step 2: Software

Software are free to download:

uploading the Arduino code by open firmware.ino in the Arduino Software, see step 10 on IOS app and step 11 on Android app to control the robot.

for HuaDuino, in Arduino IDE software:

  • the board selection: "Arduino Nano", processor "ATmega328" for AVR Boards support version 1.6.20 or older.
  • the board selection: "Arduino Nano", processor "ATmega328 (Old Bootloader)" for AVR Boards support version 1.6.21 or newer.

Step 3: Hardware

The components can be found in ebay, amazon, aliexpress, DX and etc online store.

  • a HuaDuino board, it is Arduino Nano compatible with enhanced features. It integrates everything on a single PCB. It's a lot easier for people to make a bot with it. Embedded battery charging circuit, battery charging is more convenient. It can be found on Amazon and ebay.
  • a single 3.7V 18650 lithium ion battery or battery pack with XH2.54 connector, if you want longer running time getting a pack with two 18650 in parallel. You may like to use this 18650 battery holder. However, it is also fine to use 3.7V 10440 lithium ion and 3.7V lithium polymer battery dimension not bigger than W35mm, L70mm & T60mm.
  • 12 x Tower Pro SG90 or compatible 9g servos.
  • a female-female dupoint wire or anything you can figure out for connecting two pins
  • some m2x6 tapping screws
  • a BT-05 CC2540 Bluetooth LE module - this is optional if you don't need App control. In fact, there are many BLE modules named differently, but they are built with CC254x chip. Examples such as HM-10 and CC41-A are the typical you can find in the market. Since the firmware is different, the AT command set may vary too. You may use this code to identify them. To work with the robot code and the apps, baud rate is required to set to 115200; service UUID must set to 0xDFB0 and characteristic UUID must set to 0xDFB1 using the AT commands. Below is the code intended to do that automatically but it may not work if you have different one.. The reference of the AT command set to configure BT-05 BLE can be downloaded here. You don't need this module if you like to make this gamepad to control and play Spidey.

The following Arduino program issues AT commands setting BLE module service UUID, characteristic ID and baud rate, assuming the BLE default baud rate is 9600. For running below code in HuaDuino with the module onto it, the S1 switch must be set to the BT position.

void setup() {  
  Serial.begin(9600); //change to fit your ble initial baud_rate, usually is 9600<br>
  Serial.println("AT+UUID0xDFB0\r"); // set service UUID<br>
  Serial.println("AT+CHAR0xDFB1\r"); // set characteristic UUID<br>
  Serial.println("AT+BAUD8\r"); // set baud rate to 115200
void loop() {}

The steps you should do of uploading the Arduino sketch to HuaDuino for BLE control are as following

  1. insert the BLE module, switch S1 to USB side, turn on huaduino,
  2. uploading the above ble module setup program
  3. turn off huaduino, switch S1 to BT side
  4. turn on huaduino, let the ble module setup program run in few seconds.
  5. switch S1 to USB side
  6. uploading the robot program
  7. switch S1 back to BT side, the robot now can be controlled by BLE

Step 4: Installation of Servos and the Control Board

Step 5: Legs

Step 6: Servo Wiring

Connection to digital pins of HuaDuino are as followings:

  • D2 to front right femur servo
  • D3 to front right tibia servo
  • D4 to front right coxa servo
  • D5 to back right femur servo
  • D6 to back right tibia servo
  • D7 to back right coxa servo
  • D8 to front left femur servo
  • D9 to front left tibia servo
  • D10 to front left coxa servo
  • D11 to back left femur servo
  • D12 to back left tibia servo
  • D13 to back left coxa servo

Step 7: Calibration

Using a female-female dupoint wire between A5 and 3.3V pin, the robot servos will be set to default reference angles. This is the status for installing servos and having servo arm capping on the correct angle.

Step 8: Installation of Servo Arms

while the female-female dupoint wire connected between A5 and 3.3V pin, puts the servo arms to the servo shaft

Step 9: Finishing Up

insert the CC2540 Bluetooth BLE module to the board's Bluetooth connector, and slide the S1 switch to the BT side, finally closes the robot with the top cover and eyes.

Step 10: Plays Using IPhone

To success doing this part, you must configure CC2540 Bluetooth BLE module, see the step 3 - hardware

  • opens the iOS app and closes it the robot
  • after few seconds the BLE paring between the robot and iPhone should be done, you will see the connection symbol changed to green
  • press the top middle virtual button will switch the robot to control mode
  • press bottom middle virtual button will turn back to autonomous self walking mode

Step 11: Plays Using Android Phone

  • open the Android app while robot is on pressing the connection symbol closed the top edge
  • after few seconds you should see listed BLE device and select it and connection symbol should turn to blue when successes
  • press the top middle virtual button it will switch to control mode
  • press bottom middle virtual button will back to autonomous self walking mode

Step 12: Battery Charging

  • plugs a 5V power source micro USB cable to the robot USB port
  • a red light indicates charging
  • a green light indicates charging completed

Make it Move Contest

Runner Up in the
Make it Move Contest



    • Barbeque Challenge

      Barbeque Challenge
    • Paint Challenge

      Paint Challenge
    • Beauty Tips Contest

      Beauty Tips Contest

    44 Discussions


    Question 11 days ago

    Hi Manic,
    I tried not to ask for help, but i cant seem to change the demo to control mode and its driving me nuts, LOL. These are the facts,
    -I am using PlayBle,
    -I can connect to the Bluetooth, the app icon turns blue..
    -set the service UUID to 0xDFB0 the characteristic UUID to 0xDFB1 and the Baud to 115200.(included evidence).
    -I am using the BT(HC-06) seen in the picture, which version is Firmware V3.0.6,Bluetooth V4.0 LE.

    I connected the BT to a USB serial and used Tera Term to check the traffic between the BT and the PlayBLE app and i can see traffic(see the screenshot).If i run the robot code without the servos, activate the serial monitor and use the app, then i get no traffic. Any suggestion?

    Great design by the way, everyone at the office is crazy about the spider.



    Bluetooth_parameters.jpgtraffic between playble and the bluetooth.jpgBT.png
    2 answers

    Answer 11 days ago

    Nevermind, found the BT required more settings to be configure. used LightBLE to get it working.


    Question 7 weeks ago

    Hi, it was imposible to me to find the huaduino board, so my question is, if i can make it with an arduino uno or what board would you recommend me?, I bought an arduino uno and an expansion because of all the servos.

    3 answers

    Reply 6 weeks ago

    the software should work, but the 3d models will not fit, you have to remodel the body part.


    Reply 6 weeks ago

    And a Last question, sorry for disturbing you but is my first robot, I didn't find the GOBLE. h library, so if you can help me giving me a link where I can download or how I can get this code, I'll be so thankful with you


    Reply 6 weeks ago

    Ok, thank you and if I buy an arduino nano and an expansion in which I can make the programation it would work?


    Question 3 months ago

    Hello Manic, thank you for giving to everyone the opportunity to built a robot. That's a great project for beginners like me!

    I just've just tried to turn on my spydey robot and it's a failure... The spider reacts oddly. She is shaking and she can't carry herself. I attach a video.

    Do you konw what could be the solution?
    Thanks in advance.

    3 answers

    Reply 2 months ago

    cannot open the video, can you upload to youtube and share the link here?


    Reply 2 months ago

    you didn't do correctly on step 7 and 8, the sevos are not on the correct angle before you put on the servo arm and applying the screw.


    Question 2 months ago

    Здравствуйте, спасибо большое за Ваш проект. Я собрал робота на Arduino nano, робот передвигается в автономном режиме. У меня есть Bluetooth HC-06, подскажите пожалуйста как правильно подключить его к Arduino, и настроить. Заранее спасибо.

    1 answer

    Reply 2 months ago

    This robot is not using hc-06, but the BlueTooth LE module BT05, building instructions are fairly clear. Since you used different electronics it is hardly to give you advises.


    3 months ago

    Hello. Nice spidey ! ;)
    I built it and autonomous mode is working fine. So I wanted to try the control mode.
    BT05 is seen by PlayBLE, but icon stays orange, I can't control it... Is there any test I can do ?
    Thanks in advance.

    2 replies

    Reply 3 months ago

    Verify the UUID and CHAR of BT05 are set correctly, see Step 3.


    Reply 3 months ago

    You're right. I did the step 3, but without checking.
    I realize now that I have a cheap BT05, and it doesn't keep UUID and CHAR. Thanks for your help, it's on my side now to have it working !


    4 months ago

    I have just finished this robot and its very jerky, and 1 leg shakes like mad extremely quick, any ideas ? i've bought all the exact parts as mentioned.

    1 reply

    Question 7 months ago on Step 3

    I finish building the robot.
    When I try to uplaid the Arduino SW I always get this message:

    Arduino: 1.8.7 (Windows Store (Windows 10), Board: "Arduino Nano, ATmega328P (Old Bootloader)"
    Sketch uses 26366 bytes (85%) of program storage space. Maximum is 30720 bytes.
    Global variables use 906 bytes (44%) of dynamic memory, leaving 1142 bytes for local variables. Maximum is 2048 bytes.
    avrdude: ser_open(): can't open device "\\.\COM3": The system cannot find the file specified.

    What I'm Doing wrong?

    1 answer

    Answer 7 months ago

    Arduino IDE didn't find the COM port. Did you install the usb driver? If you did, you might select the wrong port. You can use the windows device manager to see which COM port it is. And you can try to disconnect and connect again the USB cable, it will be more obvious to see it in device manger.