B-robot EVO (the evolved Self balancing robot)

by jjrobots, published

B-robot EVO (the evolved Self balancing robot) by jjrobots Oct 21, 2015

Educational Thing

11 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps


THIS IS AN OLD VERSION OF THE B-ROBOT, for the new one go to: B-robot EVO 2


B-robot EVO:

Faster, more stable and customizable (and easier to set up -less bolts and nuts...-)


Now with battle arms to fight another robots (or stand up when you fall).

Remotely controlled using your smartphone or tablet (WIFI).

This robot is the natural evolution of the B-robot (http://www.thingiverse.com/thing:700637)
and uses the same electronics you would need to create the remotely controlled laser pointer (and other upcoming robots!): http://www.thingiverse.com/thing:1017965

B-robot EVO is an Arduino based robot. It is Open software and hardware. You can easily modify its behaviour changing the acceleration/speed/stability parameters in the Arduino CODE. Some cool ideas and MODs in the B-robot forum:

New features:

  • Now can use regular AA batteries (or a 3 cells LIPO battery)
  • two SERVO outputs (one used for the ARM)
  • Easier to print and using less plastic
  • FUN MODE activated from your smartphone/Tablet (increased agility and velocity)
  • Increased WIFI range (up to 40 meters)

Assemble instructions:


What you need to print:

· 2xWheel
· Arm
· 2x Lateral
· Servo holder
· Top Shelf
· Motor Shelf
· Electronics Shelf
· 2x Bumper

More info:

B-robot EVO custom KIT

Print Settings

Printer Brand:










20% is enough


PLA is working perfectly.
Shell thickness=0.8 mm

How I Designed This

This robot uses:

  • two stepper motors
  • MPU 6050 (gyro+accelerometeres)
  • ESP12 WIFI module

You can make your own control board and upload the Arduino CODE available here: https://github.com/jjrobots/B-ROBOT/

or buy the COMPLETE KIT (with or without plastic parts) here:

If you like the JJrobots, take a look to the...THE MOST AWESOME ROBOTICS KIT

JJrobots Google PLAY remote control APP

Now available! The JJrobots FREE APP to control your Brobot EVO (android devices).

Download it from:

You can create the iBoardbot using the same electronics and ancillary elements of the B-robot

iBoardbot: an OPEN SOURCE internet remotely controlled drawing robot created with the same elements (and electronics) used in the B-robots

Take a look to the iBoardbot:



Overview and Background

What is it? How does it work?

B-ROBOT is a remotely controlled self balancing arduino robot created with 3D printed parts. With only two wheels, B-ROBOT is able to maintain its balance all the time by using his internal sensors and driving the motors. You can control your Robot, making him move or spin, by sending commands via a Smartphone, Tablet or PC while it maintains its balance.

This self balancing robot reads his inertial sensors (accelerometers and gyroscopes integrated on the MPU6000 chip) 200 times per second. He calculates his attitude (angle with respect to the horizon) and compares this angle with the target angle (0º if he wants to maintain balance without moving, or a positive or negative angle if he wants to move forward or backwards). Using the difference between the target angle (let’s say 0º) and actual angle (let’s say 3º) he drives a Control System to send the right commands to the motors to maintain his balance. The commands to the motors are accelerations. For example if the robot is tilted forward (angle of robot is 3º) then he sends a command to the motors to accelerate forward until this angle is reduced to zero to preserve the balance.

Lesson Plan and Activity

What problem are we solving here?

The physical problem that B-ROBOT solves is called the Inverted Pendulum. This is the same mechanism you need to balance an umbrella above your hand. The pivot point is under the center of mass of the object. More information on Inverted Pendulum here. The mathematical solution to the problem is not easy but we don’t need to understand it in order to solve our robot´s balance issue. What we need to know is how should do to restore the robot´s balance so we can implement a Control Algorithm to resolve the problem.

A Control System is very useful in Robotics (an Industrial automation). Basically it´s a code that receives information from sensors and target commands as inputs and creates, in consequence, output signals to drive the Robot actuators (the motors in our example) in order to regulate the system. We are using a PID controller (Proportional + Derivative + Integral). This type of control has 3 constants to adjust kP,kD,kI.

More info at: http://jjrobots.com/projects-2/b-robot/

More from Robotics

view more

All Apps

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

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

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

3D Print a wide range of designs with Treatstock. Easy to use tools to get the perfect result. The global 3D printing network that connects you with high-quality and fast working print services nea...

App Info Launch App

The Electronics Shelf doesn't print - major flaws. Both Cura and Slic3r could not even render it properly. I had to run it through https://tools3d.azurewebsites.net/ to repair and then it rendered ok for print.

Switch to the new version of the robot: the EVO 2.
All the files (3D models) are available here: http://www.jjrobots.com/b-robot-evo-2-assembly-guide/
We will publish everything as soon as possible ;-)

And BTW, the github source of these STL's are completely different and it makes it very difficult to determine what is the "single source of truth" or latest version with all JJRobots projects all over the web. And yes, the Electronics Shelf on github is different (older?) and also doesn't render in Cura or Slic3r.

The new version of the B-robot EVO is way better than the "old" one (and requires less plastic to be printed). Find some ...challenges to beat with it: http://www.jjrobots.com/b-robot-challenges-racing/ (we will publish more soon)

Very cool. I had fun just watching the video.

Tried printing out the war addons mace arm and i noticed that the ring is not sitting flat on the bed. You can see it Nettfab if you zoom in.
Any chance of uploading these items as separate files please.
Great project and I am looking forward to getting mine fighting.

Akanog: we use Corona CS238 servos, very powerful for its size and not too current demanding. A bigger servo will need another servo holder :-\
If you scale up the 3D parts the control parameters of the Arduino code would need to be adjusted.


i have bought from you jjrobots site the full roboter kit.
there is also the servo included.

then i printed the evo2 stl files but the servo (i think cs238) does not fit in the
evo2 side plate.

what did i wrong?

We are about to release the new version (the EVO 2), in the meantime you can find all the 3D models (assembly guide and others) here: http://www.jjrobots.com/b-robot-evo-2-assembly-guide/


thanks for you fast answer.

i have build it with this video.
but in the video you are using not the same servo which i bought
(http://www.jjrobots.com/product/awesomeroboticskit/) from you.

my server from you looks like this one: https://hobbyking.com/en_us/corona-cs238mg-metal-gear-servo-4-6kg-0-14sec-22g.html?___store=en_us
on the video it looks more like the servo SG90 - which fits perfect in the 3d printed frame but is not strong enough.

which is the correct server.
can i buy them also from you?

thanks alex

PS can i also ordern the wheel-rings from you seperatly?

I see. Please send us an email to [email protected] with your purchase order number. We will send you all the info requested.

Have ordered the electronic parts, downloaded the stl files and printed one part - servo holder. This is too small for the servos I have - Parallax. It s about 24 mm long and the holes are about 12 mm apart. Is this correct and if so what servos should I use. If not do I need to scale the prints up?

The top shelf STL file is broken. Had to run it thru Model Repair Service (https://netfabb.azurewebsites.net/) to fix it. So is the servo holder, and wheel and the Electronics Shelf. Nearly every STL file needs repair. How has anyone built this?...

Hi Flashsolutions,
We are using CURA 15.XX and Slic3r to print without issues so far. Which software are you using?

I am using Simplify3D. It is far more strict about the integrity of STL files. When run thru Model Repair Service, the files get repaired just fine, but most of your files will not print correctly as is. For example, the holes in the electronics shelf get filled in by S3D because it complains about non-manifold edges and self intersecting surfaces.

Also, just to note. I had two NEMA 17 stepper motors to use for this project, same as the ones used in my Prusa I3. They don't fit in the motor shelf because the section in the center that was apparently once there for the IMU, is too wide, so I had to bring the STL file into Sketchup and remove it since the instructions now call for it to be applied with double stick tape to the electronics. Maybe including the dimensions of the steppers you used would be helpful to others who want to make this.

I have most of parts printed now, including a NinjaFlex insert for the wheels. I ordered the electronics kit from the website, but wish it would have included the power switch or was sold separately as I had everything else. I may have to end up modifying the top shelf to adapt to a different power switch.

Thanks for your comments Larry.
We will take a look to that issues with the Simplify3d.
On the B-robots project´s page the manufacturer´s motor model is indicated as 42BYGHW609. That is the motor we used to create the 3D model (with its dimensions).
There is a more complete B-robot electronic KIT with the battery holder/motors/strap/bolts/power switch and custom cables (http://goo.gl/OexVBH).
Could you email us with your motor manufacturer´s reference so we can have a look to its dimensions?

The stepper motor is 44mm in length. I bought it on eBay http://www.ebay.com/itm/320842713273?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

And yes, I know you have a complete kit which includes the switch, but it also includes many other things I already have and is twice the cost of the kit I purchased. It would great if the power switch were included in a less expensive combination or individually.

Can you upload the electronics shelf?

Already uploaded ;-)

GREAT robot! I made one with some customized wheels and arms ;-D
Thank you for your design and work behind the code and electronics guys

What is the 'rubber ring' around the wheels ?

It is a 3mm rubber band (or you can use a 78mm internal diameter rubber ring)


this is an awesome job!! but i have a question, is this posible to biuld one without the "B-robot electronic BRAIN v2.0"? i have the other components at home :D

thank you!

Or you can download the version 1 of the pcb on oshpark:

I tried to order all the components from three different webpages (digikey/Oshpark and another one for the Wifi module) and the final price was much higher than buying directly the electronics to the guys of jjrobots. Thank you anyway fantasiiio!

All parts together will cost approximately between $15-$20 each board. I ordered parts from Chinese vendor on ebay. For the communication modude, I'll use either a cheap bluetooth xbee ($8) or ESP8266 ($3)

Where did you source the brain/shield if you don't mind my asking?

Yes, it's possible. The brain is only a breakout board to connect all stuff. If you check pinout of electronics components (stepper drivers, IMU and Wifi), you can connect them on the right arduino pin. You have to check in the Setup() function of the arduino sketch. All pin assignment are hard-coded there.

Take a look to:
https://github.com/jjrobots/B-ROBOT/ you have there all the info you need to put the electronic together.

The schematic shows an xbee module. Is the ESP12 WIFI module a direct replacement?

Hi thanks for this nice B-Robot
But i have some trouble when i print the electronic shelf stl
After print perfect 5 height layers the Z axes is going up 4mm en restart the print
but there is no material.
The problem is also visible in slicer Slicr3r, there are many empty layers.
I hope you understand the problem.

Gr. R.

I have uploaded another version of the shelf (v2). Try it. We are using CURA and no problems printing it so far :-)

Thanks again for posting v2 of the file but also the same problem.
I will try Cura.

Courty, who had the same issue, posted in the forum a .STL version of the model tested in Slicer. I have updated this file here too.

Indeed this stl is working in Slic3r.

Genial! Espero poder montarlo pronto!

Could you please provide separate STL files for each part?

Here you go. Separated parts ;-)