Ez Arduino 12 DOF Quadruped Robot – Robot Dog Lassie

Ez Arduino 12 DOF Quadruped Robot Robot Dog Lassie

Ez Arduino 12 DOF Quadruped Robot Robot Dog Lassie

Since Boston Dynamics releases the quadruped robot – Spot, making robot dog has been very popular. There are number of attempts to build similar robot. Most are expensive and very difficult to follow and to make one. This instructable is trying to deliever a DIY version with 3D printing using very cheap hardware and electonic components. It should be affordable for everyone to build one easily, watch the assembly videos at step 6 – 8. This robot is controlled and played by using smartphone, see the software section to download the app.

Step 1: Printing 3D Models

Printing 3D ModelsYou can download the 3D printed STL models here. The built robot shown here is 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
  • infill density: 10%
  • support: yes
  • adhesion type: skirt or brim

Step 2: Hardware/Electronic Components

Hardware Electronic ComponentsTo build this robot you need following hardware and electronic components:

  • 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. See full product description here, hightly recommend you read it. It will save you trouble on using it.
  • a single 3.7V 18650 lithium ion battery with XH2.54 connector.
  • 12 x Tower Pro MG90s or compatible clone servos.
  • a 5V buzzer
  • a bluetooth module, see below for details
  • a female-female dupoint wire or anything you can figure out for connecting two pins
  • some m2x6, m2x10 tapping screws
  • some M3x6,M3x14,M3x20 flat head screws and M3 nuts

Bluetooth Module

  • a HC-06, HC-05 and SPP-CA classic Bluetooth 4.0 SPP module, if you use this type of Bluetooth module; must use the virtual-gamepad-SPP Android app for control; baud rate must be set to 115200; see this tutorial to configure the baud rate using AT commands;
  • Or a BT-05 CC2540 Bluetooth LE module. 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 to use here.

The following stand alone Arduino program issues AT commands setting BT-05 BLE module service UUID, characteristic UUID and baud rate, assuming the BLE default baud rate is 9600.

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

Step 3: Software – Upload Robot Firmware


Robot Firmware –

Download this zip package and upload the firmware to HuaDuino as the video shown. The source code is in github, check out the Lassie branch and look at the source_arduino folder.

Control Apps –

  • goBLE iOS app on Apple Store; for Bluetooth LE module
  • virtual-Gamepad-BLE Android app for Bluetooth LE module; compatible to Android 5.0 and latest.
  • virtual-gamepad-SPP Android app for HC-06, HC-05 and SPP-CA classic Bluetooth 4.0 SPP module; compatible to Android 4.0 and above

Step 4: Wiring

Wiring (9)

  1. After uploading the firmware to HuaDuino, by connecting a dupoint wire between A6 and 5V pin and connecting servos to the pins (see below) will set all servos to the default angle which will have the robot in posture likes the figures. Default angle is reference angle for any locomotion to perform correctly;
  2. Remove the dupoint wire after assembly the robot, the robot will stand as the 3rd fingure; if not, you have to adjust the servo agains.

Servo Pins –

  • front right shoulder servo -> D2
  • front right upper joint servo -> D3
  • front right lower joint server -> D4
  • back right shoulder servo -> D12
  • back right upper joint servo -> D13
  • back right lower joint server -> D5
  • front left shoulder servo -> D9
  • front left upper joint servo -> D8
  • front left lower joint server -> D6
  • back left shoulder servo -> D10
  • back left upper joint servo -> D11
  • back left lower joint server -> D7

Buzzer Pin –

  • positive -> A2
  • negative -> GND

Bluetooth Module –

  • 6-pins socket

Step 5: Assembly – Body


To do this step the firmware must be loaded to HuaDuino. The models with [R] mark is a set for right side.

  • connect the dupoint between A6 and 5V pin for setting servos to default angle
  • connect Buzzer A2 and Gnd
  • front right shoulder servo – D2

Read more: Ez Arduino 12 DOF Quadruped Robot – Robot Dog Lassie

Leave a Comment

Your email address will not be published. Required fields are marked *