Leo: the Pet Cat




Introduction: Leo: the Pet Cat

About: I am a hobbyist and my focus is on robotics and RC drones. I have been associated to electronic projects since I was five years old. Since then, till now, almost everyday I have been tinkering with electronic …


This is my first instructables. The first version of "Sony Aibo Robot (1999)" attracted me towards robotics at the age of four, ever-since, it was my dream to make a pet robot for me. So i came up with "Leo: the Pet Cat" which can be built at home at a low budget. I was inspired by the projects "KITtyBot" (https://create.arduino.cc/projecthub/StaffanEk/ki... ) and "OpenCat" (https://create.arduino.cc/projecthub/StaffanEk/ki... ) and combined these two projects with some spice of my own. Currently it is an android controlled robot, I am still working on it and I wish to make it fully autonomous.

Step 1: Gather Your Parts:


  • 1 x Arduino Nano
  • 1 x Arduino Nano Sensor Shield
  • 1 x HC-05 Bluetooth Module
  • 12 x Micro Metal Gear Servo Motors (MG 90S)
  • 1 x 2s LiPo Battery Pack 1500-2200 mAh
  • 1 x 5V UBEC


  • 3D printed body parts
  • Bendable depron foam board / Dollar Tree foam board
  • Screws
  • Super glue

Step 2: Assemble Your Parts

Get all your 3D printed parts to get started with the assembly. I used the body files from the "KITtyBot" project ( https://create.arduino.cc/projecthub/StaffanEk/ki... ). It is a very well written project with the assembly instructions. For the femur and tibia (leg parts) I found the "OpenCat" project perfect ( https://create.arduino.cc/projecthub/petoi/opencat... ). To add a body cover, I used a bendable depron foam board piece and cut it out according to my desired shape. Also, Dollar Tree foam board works fine if you peel the paper cover. I glued two PVC board pieces with the 3D printed body and screwed the foam cover with the PVC board.

OpenCat Thingivers link: https://www.thingiverse.com/thing:3384371

Step 3: STL Files for 3D Print

These are the STL files I printed to make my Leo. Files are taken from the "KITtyBot" and the "Opencat" project published in thingivers ( https://www.thingiverse.com/thing:3384371 ). Quantity of each file to be printed is mentioned within the name of each file.

Step 4: Connections:

The 12 servos are marked from 0 to 11. The connections are given below:

Servo 0: Pin 3

Servo 1: Pin 4

Servo 2: Pin 5

Servo 3: Pin 6

Servo 4: Pin 7

Servo 5: Pin 8

Servo 6: Pin 2

Servo 7: Pin A3

Servo 8: Pin 12

Servo 9: Pin 11

Servo 10: Pin 10

Servo 11: Pin 9

RX (Bluetooth): TX pin

TX (Bluetooth): RX pin

Step 5: Make Your Robot Alive: Programming

The current code has 11 functions. These are:

1. Forward (forwardcreep)

2. Reverse (reversecreep)

3. Left Turn

4. Right Turn

5. Dance 1

6. Dance 2

7. Dance 3

8. Kick

9. Sit

10. Stand

11. Handshake

Walking Gaits:

The walking gaits/ movement functions (forwardcreep, reversecreep, left turn and right turn) are taken from the "KITtyBot" project ( https://create.arduino.cc/projecthub/StaffanEk/kit... ) where the code is described perfectly in detail. I am working on my own walking gait code to make the robot a bit faster and to add a running capability as well.

The rest of the functions are developed by me.


I have written three dance functions. When the dance command is sent from an android device, the code randomly chooses one from the three functions and perform any one of the three dances. Here I used the "random" function to pick a number from 1 to 3 (in the code you will find it as 1 to 4, it is because the random function counts 1 as inclusive and 4 as exclusive). each of the three numbers are assigned with a dance function. Thus, the dances of the robot are unpredictable each time. It will make you feel like the robot dances according to his own desire!


This part is my favorite. When we kick a ball in soccer, we aim first, move the leg backwards and finally kick the ball with force. I tried to imitate this kick. Firstly, the robot balances itself with its other three legs and pulls its active leg up. Then the active leg kicks the ball with full force and puts the leg back to the ground.

Sit and Stand:

The Sit function is comprised of total three for loops. The first two loops make the robot lean towards the ground. The third loop is used to put the head and frontal body upwards to give Leo a resting position. The Stand function has only one loop which brings back all the servos to 90 degree.


For the handshake, Leo sits back to its resting position first. The four loops work afterwards to put his paw up for a handshake. There is a five seconds delay for the handshake. The final loop brings Leo back to its resting position. Finally the stand function works again.

Step 6: The Arduino Code:

Here is the Arduino Code. This code is still under development.

Step 7: Power It Up and Play!

I am using a 2S 7.4 Volt 2200 mAh Lipo battery with a 3A 5V UBEC for powering up my robot. 12 servos draw a good amount of current, so using a low current rated battery will not be able to cope up with the amount of current drawn. Therefore, the voltage will be dropped down. 1500-2200 mAh battery is suitable this robot.

If you have a question, ask me in the comment section below, or contact me at mehrababrar@gmail.com

Enjoy !

1 Person Made This Project!


  • Lamps Challenge

    Lamps Challenge
  • Rice & Grains Challenge

    Rice & Grains Challenge
  • Puzzles Challenge

    Puzzles Challenge



7 weeks ago

Hi, could you tell me a couple of queries that I haven't seen in the code or in any annotation, what program do you use to connect bluetooth like the buzzer?
Thank you
postscript my granddaughters liked the montage and I'm starting the montage like hell
a greeting and continue with many works like this
from Galicia Spain

Vikysupriyo sarkar
Vikysupriyo sarkar

11 months ago on Step 4

Hi I am Supriyo sarkar from Kolkata
I saw your robot cat. I want made it but there is problem, that I can not understand your circuit connection the battery, and ultrasonic sensar, and neack servo and tail servo motor. So plzz kindly of you help me than I will really thank ful to u. Plzz reply me fast as soon as possible..


1 year ago

Hello Mehrab Abrar, your project is amazing
Seems like the link to thingiverse website is broken , please can you send me the stl files ,
The body part for this cat robot is not provided here ....please can you guide me

Thankyou in advance


1 year ago

ما شاء الله بارك الله في عملك
This is the best cat done for movements since it has 12 degrees of freedom for legs and 2 degrees of freedom for neck.


2 years ago

Hi Mehrab Abrar, introduce me Khoirul Rizal. I am very interested in your Leo Cat robot. I've tried to make it using your tutorial on Instructable. But I have a problem with the code. Can you send me the code, please?
Thank you very much :)
My Gmail: khoirulr4@gmail.com

WhatsApp Image 2020-11-06 at 09.08.10.jpeg
Mehrab Abrar
Mehrab Abrar

Reply 1 year ago

Hello Khoirul ! Congratulations, your robot looks very neat! We discussed about your robot in gmail :D Didnt know that you posted your comment here as well.


Reply 1 year ago

Dear Mehrab Abrar,
Thanks for replying to my Email.
There is good news, I have finished the robot of course with your help. I am very grateful to you for guiding me via email in making this cat robot :)
Thank you very much, and Happy New Year 2021 :D
Thank you
Khoirul Rizal


Reply 1 year ago

Hi, Your work was impressive!!
I have a something wrong in code , can you send me the code too??
thank you


2 years ago

Bro I just like this project, ill surely make this project. Hope it will work.
Your Regards,
Sakil Shaikh

Mehrab Abrar
Mehrab Abrar

Reply 1 year ago

Hello Sakil_007, Thank you so much for your interest in my project :) may I know what more information you need?
Best of luck !


2 years ago

Bro I just wanted the full information of this robot
you can mail me or message me on instagram
(mr.sakil_shaikh) :)

Mehrab Abrar
Mehrab Abrar

Reply 2 years ago

Thank You so much ! :D