HomePage/assetList/Open Source Self-balance Robot
Open Source Self-balance Robot
3370 0
Production process


  • Project: Microduino Open Source Self-balance Robot
  • Objective: To DIY your own two-wheel self-balance robot.
  • Difficulty: Medium
  • Time-consuming: 2-Hour
  • Maker:
  • Introduction:
  • This two-wheel self-balance robot integrates multiple functions. It is also the study topic that combines automatic control theory, dynamics theory and technology.
  • It can accomplish self-balance and also support several ways of remote control.
  • Remotely controlled by Joypad.
  • Remotely controlled by Bluetooth APP.
  • This project is totally achieved with Microduino. Users can experience the fun of DIY.

Bill of Material

Bill of Modules (Joypad Mode)

Bill of Modules (Bluetooth Mode)

Other Material

Program Download

Download source programs from the address below:BalanceCar_Microduino


  • ConnectMicroduino-USBTTLwith a USB cable for program uploading after that.
  • Attetnion: Please upload the program before stacking all modules.
  • Open Arduino IDE for Microduino environment. (For the buildup, please refer to:AVR Core:Getting started)
  • Click【Tool】, select the right board card(Microduino-Core+) and the processor(Atmega644pa@16M,5V) and chose the corresponding port COMX.
  • Click 【File】->【Open】, scan to the project program address, click “BalanceCar_Microduino.ino” and open it.
  • After all that finished, please click“→”and download programs the development board.

Setup Steps

  • Step1:
  • Connect Structure-A1 and Structure-A2 as shown in Figure1-1.

  • Insert Structure-B1 and Structure-B2 into the two sides of Structure-A1.
  • After “Step 1”, you just completed the buildup of Frame of the robot

  • Step2:
  • Follow the Figure 2-1, connect the two stepping motors and Structure-C1, then fixate them with Copper columns .
  • Please be noted the direction of the motor interface. The interfaces of the two motors should be installed symmetrically.

  • You just finished the installation of Motor parts .

  • Step3:
  • Follow the Figure 3-1, insert the Motor parts to the Frame of the robot. Please be noted the motor interface needs to correspond to the gap of the Frame of the robot.

  • After that, please insert the Structure-B1 into the slot gap to make sure the Motor parts are fixated firmly.

  • You just finished the assembly of the Chassis of the robot

  • Step4:
  • Fixate the Axis connector on the axis of the Stepping motor as shown in the Figure 4-1.
  • Then fixate the Wheels on the Axis connector with Screws.

  • See the result of that in Figure 4-2.

  • Step5:
  • Follow the Figure 5-1 and put the 2S battery into the slot of the Chassis of the robot .
  • Then, fixate Structure-C2 and Structure -C3 on the upper and lower sides of the Chassis of the robot respectively.

  • Refer to the following Figure 5-2, use Structure-A3, Structure-C4 and Structure-C5 to fixate the structure of the robot.

  • After Step5, it is as shown in the figure 5-3 :

  • Step6:
  • Fixate the Microduino-Stepperwith nylon screws, nylon columns and nylon nuts on the top of the Chassis of the robot.
  • Note: Please refer to the installation procedure strictly as shown in the picture to assemble the base board ofMicroduino-Stepper.
  • Under Joypad mode, the communication module isMicroduino-nRF24(Please firstly install 2.4G antenna)
  • Under BLE mode, the communication module isMicroduino-BT
  • Please be noted of the interface position of the two Stepper cables.


  • Note: Please be noted of the installation direction when connecting the stepper cables.

  • Step7:
  • Insert 2S battery into the battery interface ofMicroduino-Stepper, and the robot is powered on. Lift the robot and it’ll stay stand up and keep balance.


Operation Description

  • If stacking nRF24 module in Step6, the robot will enter Joypad remote control mode by default after power-on, or it’ll enter BLE mode.

Joypad Remote Control Instructions

  • When we useMicroduino-nRF24as the Communication module, for the Joypad, you can choose nRF mode.

BLE Control Guide

  • Download the BLUE remote control (Android) here:File:MTank.rar
  • Make sure the phone is Android 4.3 or higher. and the Bluetooth function is open.
  • Search the Bluetooth device “Microduino” and connect.
  • Then, you can control via the APP.

Lithium Battery Charging

  • If you find the motor rotates slowly during use or the self-balance robot can’t stand up. At this time, the 2S battery is under low battery, which needs to use the supporting lithium battery balance charger.
  • Follow the picture below and insert the white 3pin interface of the 2S battery into the 3pin interface of the Lithium battery balance chargerand plug in the power.

  • You can judge the charging state by the indicator of the Lithium battery balance charger as follows:

Code Description

  • “userDef.h” is the config. file.
  • The code below can configure the channel under the nRF mode, which needs to be consistent with the Joypad controller.
  • For the nRF mode channel of the Joypad, you can refer to:nRF Mode Channel Configuration

#define NRF_CHANNEL 70 //nRF channel
  • Refer to Buildup Steps / Step6 for installation direction.Microduino-Motionmodule need to choose PITCH direction.

#define YAW 0 #define PITCH 1 #define ROLL 2 //Attitude sensor installation direction. #define DIRECTION PITCH
  • The following code can adjust the PID parameters of the self-balance robot’s angle ring and speed ring.
  • Angle ring parameter setup:

#define KP_CON 0.2 // 0.25 #define KI_CON 0 #define KD_CON 28 // 30 28 26

  • Speed ring parameter setup:

#define KP_THR 0.065 //0.08//0.065 #define KI_THR 0.0005//0.05 #define KD_THR 0


  • Q:What if the self-balance robot can’t stand up during use?
  • A:Please refer to the following picture to judge if theMicroduino-Steppermodule is installed right and the Stepper cable is connected correctly.

  • Q:What if you find the robot tilt to one side over the course and hear abnormal sound generated by theStepping motor ?
  • A:At this time, you can toggle the robot to the other side and it’ll stand up and go back to normal instantly.
Required hardware
Code show
Attachment download
Asset info

Creation time:11/07/2018

Course recommendation
Master, don't look at it silently. Please login to help me comment.

Register now