Take a look at the new B-robot EVO 2

New features, faster, more stable and with STEM challenges!



 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.


Above: the B-Robot “brainstorming” creation ideas


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. 


                     Stable position                  leaning forward                    Correcting its tilt using motors


A bit more in depth…


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.

 From Wikipedia: “A PID controller calculates an ‘error’ value as the difference between a measured [Input] and a desired setpoint. The controller attempts to minimize the error by adjusting [an Output].”

 So, you tell the PID what to measure (the “Input”) ,where you want that measurement to be (the “Setpoint”,) and the variable you wish to adjust to make that happen (the “Output”.) The PID then adjusts the output trying to make the input equal the setpoint.

For reference, a water tank we want to fill up to a level, the Input, Setpoint, and Output would be the level according to the water level sensor, the desired water level and the water pumped into the tank.


kP is the Proportional part and is the main part of the control, this part is proportional to the error. kD is the Derivative part and is applied to the derivative of the error. This part depends on the dynamics of the system (depends on the robot,´s weight motors, inertias…). The last one, kI is applied to the integral of the error and is used to reduce steady errors, it is like a trim on the final output (think in the trim buttons on an RC car steering wheel to make the car go totally straight, kI removes the offset between the target required and the actual value).

More information on PID controller here.

On B-ROBOT the steering command from the user is added to the motors output (one motor with a positive sign and the other with a negative sign). For example if the user sends the steering command 6 to turn to the right (from -10 to 10) we need to add 6 to the left motor value and subtract 6 from the right motor. If the robot is not moving forward or backwards, the result of the steering command is a spin of the robot.



Above: Top view of the B-ROBOT and the commands to the motors



What about the user control?

NEW: (Android devices) control your B-robot using the JJrobots FREE APP! 

We have developed an APP for Android users that simplifies the control of the B-robot EVO.

NEW: adjust the stability and behaviour of the B-robot in real time from the PID control APP (free)

NEW: (iOS devices)

  B-robot control APP (thanks to Xuyen for this great contribution!)


We wanted B-ROBOT to be controlled by the user from almost any existing device, but we don´t want 😉 to develop a lot of  different interfaces for different systems (Android, IOS, PC-windows…). Moreover, we decided to use existing (and powerful) protocols to control “things” and we found (some years ago) a protocol called OSC (Open Sound Control, more info here) used to control musical instruments like synthesizers. Very visual and powerful (we can display  volume control, equalizers, lights…and create our own). To remotely control B-robot, we use OSC protocol over an Internet connection (Wifi module) using UDP packets. This is a lightweight and efficient way to send commands to our Robots!. We could also  personalize the Interface we are using in our device so we will be able to control anything! (well…almost) What we need to do is to implement a lightweight library for Arduino in order to support this protocol (easy). We only use a subset of the OSC protocol to keep things small.


More about the Control System…

But things are a bit more complex… We have really two PID controllers in a cascade configuration (the output of one controller connected to the next one). The output controller is a speed controller and the inner controller is the stability controller.


 ABOVE: B-ROBOT  control algorithm loop


We could use only one stability controller (the second one) but this would mean that the control´s output would be the desired robot tilt angle, so the user would control the robot angle directly. The problem is that if the center of gravity is not perfectly located above the wheels axis , so the robot needs a little tilt angle to keep the balance and if the user sends a command of tilt=0 then the robot will maintain its balance whilst moving… When adding the second controller (speed controller) the system compensates automatically for this. The user sends a command to the robot speed=0 and this controller will send the “correct” tilt angle to the second controller (stability controller) to mantain the robot balanced and not moving! For the users it is much simpler to set the desired robot speed and the system will find the right robot angle to achieve this speed.

B-Robot EVO KIT (Plug and Play Robot version)
B-Robot EVO KIT (Plug and Play Robot version)
B-Robot EVO KIT (Plug and Play Robot version)

JJrobots´s B-ROBOT EVO 2 Kit. Created to simplify the set up and integration of all the different devices involved in this project.

This COMPLETE VERSION includes all the electronic and hardware components required to create the B-Robot. You just need to assemble everything  (optional 3D parts)

What you get when you buy this KIT:

  •  jjRobots Brain Shield 
  •  Arduino Leonardo (CLONE) + USB cable (already programmed)
  •  2x High Quality NEMA17 stepper motors +14 cms cables (pair)
  •  2x Stepper motor driver
  •  IMU (gyro+accelerometers) + custom cable
  • Optional: 3D printed parts (vibrant colours)
  • Powerful servo: Metal gears (you will need an arm to fight and raise your B-robot…)
  • 6x AA Battery case with ON/OFF Switch  (batteries not included)
  • Bolts+nuts needed to set everything up
  • Pair of nylon bumpers (14×5 cms)
  • Double side tape, googly eyes…


NEW: control your B-robot using the JJrobots FREE APP! (Android devices) or the Roverbot APP (for iOS phones. not official)



Rated 5.00 out of 5
102.22$ Add to cart
jjRobots electronic brain shield v3.1 (Devia)
jjRobots electronic brain shield v3.1 (Devia)
jjRobots electronic brain shield v3.1 (Devia)

JJrobots´s Brain SHIELD. Created to simplify the set up and integration of all the different devices involved in the jjrobots projects.

This SHIELD has:

  • TWO stepper motor OUTPUTs 
  • I2C communications
  • Push button (customisable)
  • SENSOR port (SONAR, IR…)
  • ESP12-E (ESP8266) WIFI module (you can communicate to this SHIELD from any smartphone/tablet/PC using it)

Some OPEN robots you can create with this Brain Shield:

  • B-ROBOT EVO 2 is a remotely controlled self-balancing arduino robot created with 3D printed parts. With only two wheels, B-ROBOT is able to maintain his balance all the time by using his internal sensors and driving the motors. You can control your Robot, making him moving or spinning,  by sending command through a Smartphone, Tablet or PC while he keeps the balance.

    The fastest self balancing robot (remotely controlled using your smartphone). Take a look to its skills!


  • The iBoardbot is an internet controlled robot capable of writing+drawing (and wiping!) on a glass surface.2
  • Remotely controlled Torch/ Laser robot: Laser pointer is a remotely controlled Arduino robot created with 3D printed parts. With only two servos, this robot is able to point any object in the X and Y axis.


  • Sphere-O-Bot: The Sphere-O-bot is a friendly art robot that can draw on spherical or egg-shaped objects from the size of a ping pong ball to a large duck egg (4-9 cm).

The Sphere-O-Bot is a simple 2 axis drawing machine that can draw on most spherical surfaces. You can use it to decorate balls or eggs.

  • Many more to come!


NOTE: There are FULL ROBOT KITS ready to be sent to you in the SHOP (scroll down to the very end of this page to see them too)


Rated 5.00 out of 5
33.28$ Add to cart
The most AWESOME robotics KIT (STEM KIT)
The most AWESOME robotics KIT (STEM KIT)
The most AWESOME robotics KIT (STEM KIT)


 Create very different OPEN SOURCE robots using the same electronics and ancillary elements. Everything can be modified, Hacked and customised!

STEM education robotic KIT:  In addition to being fun, the MOST AWESOME ROBOTIC STEM KIT engage beginners and advanced students and incorporate many of the fundamental STEM concepts providing a learning platform that everyone enjoys


Fight battles with your remotely controlled B-robot, play with your torch from 50 meters away, send messages to your friend using the Iboardbot!, paint balls/eggs using your own pens or…create your new awesome robot from scratch!

Do you think you can improve or hack any of these robots? Do it! They are OPEN SOURCE robots, so all the info,know how and code is available for everyone. Share the knowledge! (and take a look at the JJrobots FORUM)


The robots you can create with this KIT:

The iBoardbot is a robot connected to the internet capable of writing texts and drawing with great precision. Also, it can erase in a quick and effective way. Send to your iBoardbot your information from any part of the world. As it has a multi-user interface you can also play and challenge your kids, use it as a collaborative notice board or as a twitter wall in your shop window.


This is a remotely controlled torch pointer (it can be changed for a Laser pointer). It can be moved from your smartphone using the JJrobots FREE app available in Google Play

The fastest self balancing robot (remotely controlled using your smartphone). Take a look at its skills!

The Sphere-O-Bot is a simple 2 axis drawing machine that can draw on most spherical surfaces. You can use it to decorate balls or eggs.

More robots to come using the same elements+electronics! (we are working on more cool projects…)


DIY Brobot
From one robot to another using the same elements



Rated 5.00 out of 5
177.10$ Add to cart



Why are you using Stepper motors?

There are several options for motors: DC, Brushless, Steppers… We choose stepper motors because they have enough torque, you could connect the wheels directly without gears that generate some backslash (this is a common problem in balancing robots), they have good bearings and you will be able to control the speed of the motors with accuracy. In standard sizes these motors are cheap (we use the same motors used on a regular 3D printers) and the drivers are cheap and easy to interface with Arduino too.

Why you use a Wifi connection?

Using a Wifi connection allow us to work with a lot of devices (Smartphones, Tablets, PCs…) Bluetooth devices are cheaper but their range is usually shorter. Old devices are not supported and you could not connect it to Internet easily. The Wifi module that we recommend, allow us to create an Access Point, so you don’t need to use an existing Wifi infrastructure (cheap Wifi modules don´t let you do this). You can connect your device directly to the Robot anywhere but if you prefer you can hack it and use your own infrastructure therefore controlling your robot (or whatever you have created) over the Internet from any remote place in the world! (Cool, isn´t it?)


Self balancing robots are fun to see and play. A self balancing robot requires sensors and control algorithms. You will find all the HOWTO and technical documents which explains the “behind the scenes” in JJROBOTS. Learn electronics and robotics creating your own BROBOT from scratch!.

There are some commercial solutions to the balancing robot, but here we want to share knowledge and thoughts. You can use the BROBOT parts to create more robots or gadgets, keep in mind all the devices used in a BROBOT are standard devices/electronics with a lot of potential. In the JJROBOTS community we want to show you how! You are now buying a self balancing robot, your are buying your own electronic and ancillary devices!

Thinking about creating a GPS self guidance robot? a modified version of BROBOT is your robot!

How much payload could carry BROBOT?

BROBOT could easily carry your soft-drink cans. We have tested with 500g of payload with success. More weight makes the robot more unstable but this could be fun also, isn’t it?

Why use stepper motors for a balancing robot?

There are several options for motors, DC, Brushless, Steppers… We choose stepper motors because they have enough torque, you could connect the wheels directly without gears that generate some backslash, they have good bearings and you could control the speed of the motors very precisely. Also they are cheap and the drivers too…

Could I use rechargeable batteries of Lipo batteries?

Yes, you could use standard AA batteries (alkaline recommended), AA rechargeable batteries (e.g. NiMh) or you could optionally use a 3S Lipo battery. Run Lipo batteries at your own responsibility.

What is the runtime of BROBOT?

With rechargeable AA batteries (e.g. Ni-Mh 2100mAh) you could expect around half to an hour of runtime

Could BROBOT work without the wifi module?

Yes, BROBOT could work and keep its stability. But, of course you could not control it without the module.

Could I change the name of the Wifi network that BROBOT generate?

Yes, on the configuration sketch you could change the name and also some other internet configurations. You could also connect BROBOT with your existing Wifi network

Is this a project for an Arduino beginner?

Well, BROBOT is not an easy “beginner project”, but it has a lot of documentation so you have a platform to grow your skills. You could first mount your BROBOT following the instructions and it should work OK, then you could start understanding some parts of the code and finally writing your own pieces of code…

For example it could be easily (there are tutorials for this) to write your code so the robot automatically move the arm and spin itself if you don’t send a command in 10 seconds…

More advanced hacks: Convert to a totally autonomous robot with obstacle avoiding adding a SONAR, convert to a follow line robot, and so on…

Why BROBOT electronics are not so cheap?

We are a really small startup (2 persons in our free time) and now we could only run small batch of electronics. As yo know the price of electronics drops quickly in high volume productions but we are starting… If we sell many boards and we could run more volume productions we will drop the prices!!. JJROBOTS didn´t born to get money, our spirit is to sell “good products” to found our next projects and spread the robotics knowledge