My name is Simon, and I am an Electronic Engineer specialised in Robotics. Over the past couple of years, I completed a number of technology projects which I would really like to discuss and share with you. On this blog you should expect to see (depending on how much time I have) posts about my various projects, as well as a variety of tutorials aimed at electronics and robotics hobbyists!

If you have any more questions, then don’t hesitate to ask. I am always open to comments and suggestions, so feel free to leave a reply below or on any other page of this blog. You can also send me an email at:

This Post Has 6 Comments

  1. I see that you 3D printed a wall-e. I am looking to see if you would be interested in making me a ring box. It does not have to me motorized and drive around. I am curious on how much something like this would be and how long it would take to make. Please let me know

  2. Is it possible to do the self balancing robot with “arduino UNO” and “bridge H L298N”? thanks.

  3. Simon, thanks a lot!

  4. Dear Mr. Simon,
    Thank you for your tutorial & suggestions. Now the robot can keep balance very well!
    So, now I want to extend the project by controlling the robot via Wi-fi (it can go ahead, go back…). Could you please share any suggestion about which wi-fi module we can use and how to control?

    Thank you very much

  5. Dear Simon,

    First of all, Thank you for your detail tutorial!.

    I am Tran, from Vietnam. I am building the balance robot based on your toturial (Materials used: Arduino Mega 2560, Motor control module L298, MPU-6050, DC motors..) I have problem with code, since the “PIDValue” increas steadily to 255 even when the sensor move (pitch change) or not move (pitch change a little bit around -2 to 2). Could you please give me the suggest?. I have tried to change some things in PID Controller function or P,I,D value, but that problem still happen.

    Many thanks!

    1. Hi Tran, there are a number of possible reasons why this problem might be occurring. Here is a list of things you should check:

      > Are the motors wired in the correct direction. Check this by setting P=10, I=0, D=0. The motors should be moving in the direction the robot is leaning.
      > Is your motor controller wired properly, and did you make the correct changes to the code? See this comment for details [link].
      > Is your IMU working properly? The angle should be 0° when the robot is upright, and about 90° when horizontal.
      > Did you set the correct target angle? Do this by holding the robot upright in the exact position where it is perfectly balanced over the wheels, and click the button connected to pin-4.
      > The final possible issue is that your PID controller isn’t tuned properly. Your ‘I’ term might be too large. See this post for details about tuning the controller.


Leave a Reply