Kame: 8DOF small quadruped robot

by bqLabs, published

Kame: 8DOF small quadruped robot by bqLabs Jan 13, 2016
2 Share
Download This Thing! Customize Order This Printed Tools & Utilities

Thing Info

28812Views 2313Downloads Found in Robotics
Report Thing


Kame is a little quadruped robot based on an ESP8266 WiFi module. It has 8 servos (two per leg) and a small LiPo battery.

It can be programmed with Arduino. For more information, full FreeCAD sources and some code, you can visit its GitHub repository

Author: Javier Isabel.

Print Settings

Printer: Witbox 2

Rafts: Doesn't Matter

Supports: Doesn't Matter


How I Designed This

Designed with FreeCAD

More from Robotics

view more

Thing Info

28812Views 2313Downloads Found in Robotics
Report Thing


Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag. Print Thing Tag

All Apps

This App connects Thingiverse with Makeprintable, a cloud-based mesh repair service that analyzes, validates and repairs most common mesh errors that can occur when preparing a 3D design file for p...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

could someone guide me to a replacement printable model for the F693ZZ?

I've printed most of the parts but those bearings are impossible to get in my country and getting them online + customs., taxes, courier fees and other forms of taxpayer thievery would lighten me of a sum that I could probably spend on an off-the-shelf hexapod, servos included! Not to mention they'll probably be here by fall. 2017's fall, that is.

many thanks!!!!

Would someone be so kind as to explain what OctoSnake is and where it comes from? It is located in the kame.py class within the given code for this project. I am struggling to understand where this class is coming from and what all it entails.

Any help would be highly appreciated. Thank you in advance.



OctoSnake is a little library to implement oscillatory movements on robots.
I think you aren't looking in the correct repository. The actual repository with the code (and parts) needed for this robot is: https://github.com/JavierIH/miniKame
There you can find, in code/arduino/src directory, all code and libraries needed for program the robot with an ESP8266 board.

I think the code you were talking about is part of another robot, which is a bigger version and its located here: https://github.com/JavierIH/kame , in this case, it has another implementation of the OctoSnake library in Python which is available here: https://github.com/JavierIH/pybotics

I'm going to write this info in the readme of the projects, because at now sure is a bit confusing. Thank you for your feedback hackerkat.

Thank you again, JavierIH! This is incredibly helpful. I was really struggling to figure out OctoSnake.

And no problem! I am glad to be of help!

May 9, 2016 - Modified May 9, 2016

Hi all,

I am really excited to build this little guy, however I have a question as far as the screws.

What sizes are all of the screws and tiny parts? How many of them are necessary for this project?

Thank you in advance for your help.



Hi, here you can find the BOM with all the screws and nuts: https://github.com/JavierIH/miniKame/wiki/BOM

Thank you so much JavierIH! This is very useful!

Apr 29, 2016 - Modified Apr 29, 2016

hey guys!
I was having trouble coding this for vanilla arduino, so I made some code for it(pins 9-12)
/* Sweep
by BARRAGAN http://barraganstudio.com
This example code is in the public domain.

modified 8 Nov 2013
by Scott Fitzgerald


Servo myservo1;
Servo myservo2;
Servo myservo3;
Servo myservo4; // create servo object to control a servo
// twelve servo objects can be created on most boards

int pos = 0; // variable to store the servo position

void setup() {
myservo4.attach(12);// attaches the servo on pin 9 to the servo object

void loop() {
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees

Love the design and will build one that fits my generic 12g Metalgearservos. I had a quick look at the ESP8266, wow that thing is so capable.

What are you guys using to control the Kame? I have played around with the main.cpp in the repository and made a really bad webserver out of it, so that one connects with a phone-browser and then just have a page served by the bot that does Ajax-calls to the Kame. Still have to see if that works in a realized bot.
Are there any plans to make it a bit autonomous, like with a ultrasound sensor for eyes?
And last questions, is there an explanation available for the oscillator controls, this is wicked and I have no experience at all with it :-)

ditto for @anttho's question. I'm almost done mine and am having trouble with this. Can you show us which servo on the bot maps to the code please.

Apr 3, 2016 - Modified Apr 3, 2016
Blomdoft - in reply to PlastiBots

Did you two figure it out? I am hoping that the combination of the servo numbers from the repository of the full size Kame together with the servo to port mapping in the miniKame code will work. Looks something like this:



|(2)__)(0) (1)(__(3)|

|| | KAME | ||

| |

| |

| |

| |


|| ||



USBs |

board_pins[0] = D1;
board_pins[1] = D4,
board_pins[2] = D8;
board_pins[3] = D6;
board_pins[4] = D7;
board_pins[5] = D5;
board_pins[6] = D2;
board_pins[7] = D3;
Apr 3, 2016 - Modified Apr 3, 2016
PlastiBots - in reply to Blomdoft

Nothing from my side yet. Still waiting for parts to arrive before I can do real testing. Thx for posting your findings. Can you clarify what you are referencing pls? Is the front of Kame to the left? Which is the upper (servo inside body) and which is the leg servo?

As a FYI - I 'm using an Adafruit Huzzah (w/ESP8266) and have modified the code to work with it and Blynk. So far so good from the standpoint of having 8 PWM pins and being able to control it from a phone with Blynk. When I'm done, I'll post my results with code to my blog @ www.PlastiBots.com.

Apr 3, 2016 - Modified Apr 3, 2016
Blomdoft - in reply to PlastiBots

Sure, I am referencing the minikame.cpp from https://github.com/JavierIH/miniKame/blob/develop/code/arduino/src/minikame.cpp together with the code for the large Kame https://github.com/bqlabs/kame/blob/develop/code/kame.py . Looks like 0,1, 4 and 5 are the inner servos - and 2, 0, 1, 3 are the front.
I got all of the hardware here, except for a battery. Will try to somehow fit an Upstepper, USB-Loader circuit and a 1s-Battery in there, so have to modify a bit and therefore it will probably take me longer to have a finished bot.

Thx @Bloomdoft. The second link clarified the layout . Will try it and report back in a week or so.

which servo goes to what pin(header) I cant seen to find that info

any help would be appreciated

how to open file in electronics folder.

I believe you have to download and install KiCad

its free

Mar 26, 2016 - Modified Mar 26, 2016
viantd - in reply to anttho

thanks, I am confused about this application. I've tried before but get an error library message. but somehow now I can open it.

the only thing I can say about your library error then working is that it's a free program

the only thing you can do is get the latest build

Have you considered this project with 9g servos? (sg90 as well)
I'm wondering if that would be a good choice due to it's very low price (even with its lower speed and torque).
I'm totally learning freecad to change the project so it might fit theses 9g servos.
Any sugestions?

compare sizes of servo, they do not fit in height.
also you need to use BEC (voltage step-down), TGY-306 is a HighVolt servo for direct power from 2S LiPo. most 9g servo use 4.8- 6.0 vols. don`t forget about current, one servo has 1-3 Amper current consumption. youre BEC may burn out.


My first reaction was too: what a cool robot but what a pity that I need about 160-200euros of servos. I am confused... You say dont forget about current and mention 1-3A current per servo and we have 8 of them. Your Lipo is listed only 460mAh so that does then not last more then 10min or less or the current in real is not so high?

Anyway I am going to look for ones with same size and if required I bring down the voltage to 6V, use 4x NiMh which are cheap and can be charged in a normal charger. Tnx for sharing the design!

Yes, I've seen that the size is not exactly compatible, I'm considering a design modification.
The goal here is to make it more cost effective, especially for those like me who lives in countries where everything becomes much more expensive due to importation fees and so on. In this case we need to be more economic in our projects.
Anyway, I still haven't laid many thoughts about the desired circuit, however I'm planning to use an arduino nano along with more severe modifications.

I really like the little robot and will build one ASAP. But first I would like to know how you control it? I assume that you connect to it over WiFi, but through what? Please explain this. Also a version that uses Bluetooth would be nice so you can use a PlayStation controller or like wise.

I'm planning on making this in a STEM unit at our school with nine 6th graders. I can handle the 3D printing and assembly but need a little more clarification on the controller. Is the Arduino code on GitHub good for say a UNO? Is a motor shield necessary? Any info would be greatly appreciated!

NodeMCU is based on ESP8266 which is basically a Wifi module with some GPIOS; the module can be programmed using the Arduino IDE by installing a plugin (https://github.com/esp8266/Arduino).

Servos do not require a H-Bridge (they are driven by pulse width), they can be directly connected to an Arduino digital output pin, just keep in mind that the VCC (5V) for the servo must not be an IO pin as each servo can draw a lot of current.

You can use one of the standard Arduino libraries to drive servos, have a look at the tutorial (https://www.arduino.cc/en/Tutorial/Sweep).

Nevertheless bq provided their code (https://github.com/bqlabs/miniKame/tree/develop/code).

Jan 28, 2016 - Modified Jan 28, 2016
jbrazio - in reply to rockcreeper

You should buy this one (HiLetgo Eleduino), more user friendly with the USB connection; the other module is just a breakout board with a builtin antenna, some bootstrapping maybe required (http://bit.ly/23wwBy7).

Thanks so much for your help. About to order all the parts!

can you send all scheme for build it?
connections and code fpr arduino

Maybe I am not looking right but I cannot find anywhere the schematic?
And the link you gave here says Kame is powered by a RPi not an ESP8266...
Confusing, I want to build this robot but how...Only thing I see are pictures, the CADfiles and some code but if I dont know how to wire it I cannot build...

I'd like to see some video of this little guy working.

bellissimo , quale scheda usa per pilotare i servocomandi ?

Hi guys! Excellent design! What servos are you using?

Hi! We are using Turnigy TGY-306G-HV. The full BOM is available here: https://github.com/bqlabs/miniKame/wiki/BOM

22€ each servo.. could you please explain why were those coreless servos chosen ?
Can you also provide an schematic how the wiring is done ? Thanks.

Hi, we have chosen this servos because its speed makes Kame able to jump. Also, they work at 7,4V, and this allows us to plug them to the LiPo battery without any converter. At this time, I haven't a schematic, but the circuit its simple. The board used is a NodeMCU. Signal wires of the servos are just connected to its PWM pins. At this time, we are developing a simple PCB for making all the connections easy (It will be published on GitHub too).

Anyways, we have published all the sources of the mechanical parts on GitHub, it would be nice to receive a pull request modifying the printable parts for allow different servos :)

I'll give it a shot, if successful I'll submit the changes but I'm planning to change the dev board to an Arduino Mini/Nano and the servos to something cheaper to start.

[ TGY-306G-HV: 23x20x12 50ms 21g ]

I found two candidates:

  • DS238MG: 29x19x13 140ms 22g
  • HK15158A: 36x19x15 70ms 25g

I like the idea of using an arduino nano to simplify the project, especially using cheaper servos.
I'm considering the 9G's due to it's very cheap cost (1~2 dolars per unit), and I already have them =D
Let's talk about these modifications.

warning about plastic gear.

I love the Kame design and I am also considering to adapt it for using 9g servo's.