Arduino Based Self Stabilising Platform

About the project

Idea is to make a platform which dynamically stabilises itself in a sort of gimbal-ish fashion. I saw a primitive version of this floating on reddit a few months ago, in which only single axis was stabilized. So here's my design with dual axis stabilization. It performs quite well for how simple its mechanism actually is!

Project info

Difficulty: Easy

Platforms: Arduino

Estimated time: 3 hours

License: GNU General Public License, version 3 or later (GPL3+)

Items used in this project

Hardware components

Arduino Uno - R3 Arduino Uno - R3 OR any other similar micro controller :) x 1
6 Dof Sensor Mpu6050 6 Dof Sensor Mpu6050 for measuring the tilts x 1
Towerpro Sg90c 360 Degree Micro Servo Towerpro Sg90c 360 Degree Micro Servo 1 servo for each axis x 2

Software apps and online services

Arduino IDE Arduino IDE OR any other IDE, relevant to your Microprocessor

Hand tools and fabrication machines

styrofoam styrofoam OR whatever building material you may prefer for building the 3D structure of platform x 1


Here I've shown how I made my Dual-axis Self Stabilizing Platform using "not so complex" methods lol. Self levelling systems have always fascinated me, whether they be in the for of a Gimbal or an Owl's head (yeah! if you don't know about this, google it. Really cool how owls can stabilise their head). 

Basically the entire system has 3 main blocks- 

  • The MPU6050 sensor which measures acceleration and rotations
  • The Microcontroller which, obviously, does all the processing
  • The servo motors which rotate and keep the platform Stable!

The frame was made with styrofoam, partly because it reduces weight, and mostly because I didn't have any other material with me at the moment haha! Nonetheless you can make you own frame with whatever material you have. Only thing to be taken care of while making this structure is that it should allow the Platform to have independent motions in the two axes- pitch and roll. Rest is upto the maker to tinker with it and optimise as per requirements

Schematics, diagrams and documents

Circuit Diagram for the system

Its mostly self explanatory. Two servos, each for an axis. MPU6050 using I2C communication for interaction with Arduino Uno. Using an external power supply for servo motors is preferable.


Arduino based Self Stabilising Platform

Code isn't that complex in itself. Major tasks have been suitably assigned in separate functions for ease in following it. Note that I haven't used any library for using the MPU6050 sensor. I followed the instruction of EEEnthusiast on youtube where he has beautifully explained the Register level code to use MPU6050, without any library! I've linked his video in the comments in my code


Photo of zeeshan0309


Electrical & Electronics Engineering sophomore at IIT P. I value "implementations" over mere "pen & paper" learning without practical implementations. Absolutely love making systems and see them work!


Leave your feedback...