Ez Arduino MiniKame Mk2 - Making a 8 DOF 3D Print Quadruped Robot




Introduction: Ez Arduino MiniKame Mk2 - Making a 8 DOF 3D Print Quadruped Robot

About: We love robotics!

This is an inexpensive 3D printed 8 DOF quadruped robot using Arduino kind control board. It has two playing modes. One is autonoumose pilot mode which the robot walks and performs action randomly. The other is control mode where the robot is controlled by iPhone or Android phone via BLE technology.

This instructable page contains detail of steps in sequence of videos to people who are interested to build one.

Step 1: Printing 3D Models

You can download the 3D printed STL models here. Those samples are printed in PLA. Suggested parameters for slicing the models to print are as followings. You may adjust them to fit the 3D printer you're using.

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

If you don't have a 3D printer, you may find online 3D print service.

Step 2: Software

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: Electronics Components

    The electronic components can be found in online store such as ebay, amazon, aliexpress and etc.

    • 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. The photo is with two 10440 lithium batteries in parallel.
    • 8 x Tower Pro SG90 or compatible 9g servos.
    • a BT-05 CC2540 Bluetooth BLE module - this is optional if you don't need App control. Baud rate is required to set to 115200. For iOS app, the service UUID must set to 0xDFB0 and characteristic must set to 0xDFB1. Below is the code to do that automatically. Attached is the reference of the AT command set to configure CC2540.
    • a female-female dupoint wire or anything you can figure out for connecting two pins
    • some m2x6 tapping screws

    The following Arduino code issues AT commands setting BLE module UUID, characteristic and baud rate, assuming the BLE default baud rate is 9600. For running this program 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
      Serial.println("AT+UUID0xDFB0\r"); // uuid
      Serial.println("AT+CHAR0xDFB1\r"); // characteristic
      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 code by open "firmware.ino"
    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 hip servo
    • D3 to front right leg servo
    • D4 to back right hip servo
    • D5 to back right leg servo
    • D6 to back left hip servo
    • D7 to back left leg servo
    • D8 to front left hip servo
    • D9 to front left leg servo

    Step 7: Calibration

    Using a du-point wire between D12 and 3.3V pin, the robot servos will be set to default angle and in stance position. This is the status for installing servos and having servo arm capping on the correct angle.

    Step 8: Installation of Servo Arms

    while the du-point wire connected between D12 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.

    Step 10: Plays Using IPhone

    To success doing this part, you must configure CC2540 Bluetooth BLE module, see the step 3 - electronics components
    • 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, and press again 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 and press again it 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

    Microcontroller Contest

    Runner Up in the
    Microcontroller Contest



    • Creative Misuse Contest

      Creative Misuse Contest
    • Metalworking Contest

      Metalworking Contest
    • Fix It! Contest

      Fix It! Contest

    44 Discussions


    Question 8 weeks ago

    Hi (me again ;) ),

    this are the BLEs i've tested.

    I'll make a video, but could someone confirm, that these modules should work?

    6 more answers

    Looks like they are right one. Did you run below configure program mentioned in the "component section"? And also you can use the AT command to check them, see this reference https://cdn.instructables.com/ORIG/FKZ/KSLN/JGSG65...


    void setup() {

    Serial.begin(9600); //change to fit your ble initial baud_rate

    Serial.println("AT+UUID0xDFB0\r"); // uuid


    Serial.println("AT+CHAR0xDFB1\r"); // characteristic


    Serial.println("AT+BAUD8\r"); // set baud rate to 115200


    void loop() {}

    Well ... giving up.

    This is how i'm doing it:

    - Switch to USB, Load the BT-Code on th Huadino, Unplug from PC

    - Switch to BT, putting BT-Module on the Huadino

    - Plug back into PC ... waiting 10 seconds, Unplug from PC

    - Switch Back to USB, Plug back into PC, Upload the MiniKame Code, Unplug from PC

    - Switch to BT ... Power up the Huadino

    After that the BT seems to connect (no more blinking) but the App-Icon on my Android devices (several tested) keeps red.

    I've tried several variations of the BT Code. None of them seems to work.

    The "demo" has killed some of my servos (4), so by now there is no need for working code, anyway ;)

    I don't know, what else could be done.

    feel bad for you, not sure which part you went wrong, success cases of other people making us to believe the videos and instructions are quite clear for people to follow.

    we're working on a version of robot software using Infrared communication, the setup should be easier than BLE, but it will take a while, stay tune anyway.


    I have the same modules and the same problems. I don't know why I'm not abble to change the UUID and the CHAR, it only stays to its default value FFE0 and FFE1.

    AT+VERSION : JDY-09-V4.3

    If you find the way, please let me know

    Update : to change UUID and CHAR the correct command for this module are :


    Serial.println("AT+ROLE0\r"); //put as slave

    Serial.println("AT+UUIDDFB0\r"); // uuid

    Serial.println("AT+CHARDFB1\r"); // char

    Serial.println("AT+BAUD8\r"); // set baud rate to 115200

    After doing this, it works for me !

    Hope it will help you.

    Same as your question,It seems that Android can connect to BLE, but the joystick does not reflect?Need to modify the code?O,The fix is that the actual parameters(baud) and manual are incorrect !

    Yes, I think. Maybe we have to remove the '0x' in the Gobble code with this module. I will try as soon I have some free time.

    Is there an other site for the HuaDuino? Can’t find it on AliExpress only on Ebay but I can’t pay on it so I need to find another site or another board. Any tips?

    2 more answers

    saw it once in amazon they named it differently, something likes atmega developer board, but not longer can find it, we're afraid ebay is only the place to get it, using other arduino board is possible the software will run without problem, but it will be so troublesome and you should have good background in electronics.

    All parts printed and assembled, battery charged, sketch uploaded but whenever there's more than three servos plugged in the power light goes out, and it shuts off. Did I get the wrong battery? I have a 3.7v LiPo on there

    4 more answers

    Typical 3.7v LiPo battery usually has a protection circuit on it, it is used to limit the output current or power for overloading . The workaround is to directly soldering the wire to the battery terminals. Be caution of soldering, not to shorting the battery. If you can, better to use 18650 battery or 10440 battery.

    That makes a LOT of sense! Ordering a different battery today - any recommendations on the mAh for 18650 or 10440?

    higher mAh gives the robot running longer time, we use to have those marked 3000mah and 1000mah of 18650 and 10440 respectively.

    Added a 18650 battery today and it works beautifully! :) Now to add the bluetooth! Thank you for answering my battery questions! :) I went ahead and ordered another Huaduino board to build the 12 servo version you designed next.


    Question 2 months ago


    The only way I can upload to this board is through the ICSP. Serial will not work even with a serial programmer through the Bluetooth TX RX lines.

    Power switch on. IDE recognizes it on port 4 but cannot send data.

    FIXED** After re-flashing the Nano bootloader several times I can use the USB to upload the sketch.

    2 more answers

    Hello, I have the same problem I can't upload the sketch to the HuaDuino (red led on, and amber blinking). Could you please explain how to re-flashing the nano bootloader please.

    Also, the driver port is "Silicon Labs CP2010x USB to UART Bridge" is it correct ?

    Thanks a lot for your further help.

    great! you found the solution, may be somehow the bootloader was distored.


    Question 2 months ago


    i'm still not able to connect via bluetooth on Android.

    I've ordered a second BT-Module just to make sure it's not the module.

    It connects, but doesn't turn blue. The LED on the BT goes to solid red, so a connection is established.

    Maybe the HuaDino is faulty?

    1 more answer

    Basically connection establishing between the android app and BLE module is not related to the robot software and huaduino board.

    Can you show a picture of your BLE module? Because you're using the term BT Module, the one we use is BLE module. It is a bit confused if we are talking about the same animal.

    Even better if you can make a video of the steps you did. Perhaps, we can find the clues.

    And also you can try the iOS app, but a bit more configures is needed to this, see the instructions of compoent section.