ArduRoller - balanced car on pixhawk

Great - have started planning my balancing robot project. I have an original Pixracer that I can use - if not I`ll get a Pixhawk.
My inspiration for this project = ArduRoller = a great project, but hope to use supported controller…

I try to find information that can help me decide if I should use geared DC motor or Stepper motors?
I have Nema17 + a lot of different stepper drivers + have found information about how to control a Stepper motor with PWM signals using a Teency LC… ( - but need more time before I decide.

Other Components I consider:

  • Taranis X9D Plus Radio
  • FrSky RX
  • GPS
  • Sonar
  • FPV camera/TX…
  • other fun stuff :slight_smile:


Did order 2 Teency LC - if I need to make PWM/Stepper adapter (do not know yet)

Did order a motor driver shield (if controlling Steppers using I2C is an option)

Frame: Not started yet, but based on alu profiles + 3D printed parts

Any comments about DC Geared motor with rotary encoder VS stepper motor?

Started playing with the nema based design in Fusion360!


I may use vibration dampers like this to reduce the vibations from the Stepper Motors.

Here are what i use. Dc motor with AB encoder.
The motor drive is A4950. It’s an PWM input driver. Means that APM can driver it directly.
APM cannot driver stepper motor unless you find the right stepper motor drive.

An alternative if using stepper motors?

Did order DC motors with encoders + motor driver module

I do not find any news about Pixhawk support, so I may try an APM based controller

There is a new project that will be developped this summer here:

Implementation of Balance Bot with Ardupilot, Ebin Philip

Yes, that’s right. I’m almost 100% sure we will have balance bot support by the end of this summer.

Any information about the electronics used? Based on the original ArduRoller?

Only so I can start planning/ordering what I need.
I have a original PixRacer that I hope to use + waiting for geared DC motors and motor drivers…
My components:

Different sensors
PixRacer + GPS + FrSky RX
Taranis 9xD radio…
3S LiPo

Hi Mundsen,

That sounds good. Good to see you’ve selected motors with wheel encoders. that’s not a requirement but that will help.

Here is what the balance bot my main support ( is building for me. This one is missing the GPS in the picture (it has one now) but also the wheel encoders… wheel encoders will be added later.

Cool - is there a project blog…?
What kind of motor drivers is that? Do you have product info/URL?


Not yet but I’ve posted a link to this topic with the main developer.

Hi Mundsen,
I’m working on the Balancebot for GSoC. I’m planning to use this motor driver: Looks like your list of parts is good enough, but I’m not sure if your motor driver is supported:
I am waiting for the parts to arrive right now, so there isn’t really much to write a blog :smile: but I’ll put one up as soon as we make some progress

1 Like

Then Ill order the same motor driver, so Ill be able to use the same code… :slight_smile:

Did order one :slight_smile:

Playing with the design while waiting for the parts to arrive.

When I read about self balancing robots I find some saying there should be a weight on the top (like the batteries…) and some other say the main weight should be towards the motor axis - what is best?

In this model I have placed the motor controller on the top of the motors, and the LiPo on the top - should I swap LiPo and controller??


I think it may need to be taller. I’m not an expert but I don’t think it matters where the controller is but I think the vehicle needs to be taller and needs some weight near the top. I think the amount of weight at the top affects the top speed - a higher weight leads to a potentially higher top speed (or acceleration?)

Imagine if the body had almost no weight - i.e. it was just the motors connected to a tubular frame, when the motors spun the frame between the motors would just spin in the opposite direction. As the weight and height of the weight are raised, I think the downward pull of gravity gives the wheels something to push against. There’s probably an ideal balance depending upon the power of the motors and how far over you want the vehicle to lean when accelerating.

I agree it may need to be taller - this is only the base.
I think there should be some distance between the motors/motor controller and the Pixhawk/Pixracer/GPS/Compass… to reduce the electromagnetic noise?

The original ArduRoller seems to have a body height something like 20-25 cm based on the image and that the wheels are 120mm

More like this? (still playing with the design)

Weight on the top, body = 20-22 cm
Space for other stuff like a raspberry Pi…

If FPV - I guess we need a tilt servo for the FPV camera?

1 Like


That looks really good.

The tilt servo for the FPV camera is an great idea :-). Rover supports camera gimbals so it should work and is documented on the wiki.

What about ultrasonic or IR sensor…?

sure, sonar/lidar/ir sensors could be interesting. The regular rover object avoidance should work on it.

Is the “self balancing robot” support going to be limited to spesific controllers like the PixHawk/PixRacer, or also include other controllers like Raspberry + shield and the Holybro Kakute…?

The Holybro seems like an fine option - low cost/small…