Return to Robotics Tutorials

Comparison of Robot Motor Controllers

Selecting a motor controller for your robot can be a challenge. There are many factors to consider: from the maximum current draw to wheel speed encoders and regenerative braking. The following summary includes many of the controllers that I examined while building a 4WD rover.

The set of motor controllers included below was pre-selected with the following key features:

  • Suitable for DC brushed motors
  • Dual-channel
    Enables easy differential drive control for 2WD, 4WD or 6WD robots, especially when velocity control is included (wheel speed encoders).
  • High current capacity
    High torque motors demand high current when loaded (especially if ever stalled)
  • RC & microprocessor control
    It is very convenient to enable both driving via a remote control (RC) transmitter and receiver as well as local / autonomous control from an onboard microcontroller (serial or I2C).

Feature Comparison

Sabertooth Dual 12A
TRex 13A 6-16V Dual
Ion Motion
RoboClaw 2x15A USB
Category Feature
# Motors   2 2+Aux 2 2
Current Continuous 12A 13A (15A onAux) 15A 18A
Peak 25A 30A 30A 40A
Voltage   6-24v (30v max) 6-16v 6-34v 6-30v
Cost   U$80 U$100 U$90 U$100
Modes Analog Y (0-5) Y (0-5v) Y (0-2v) N
Serial Y Y Y N
BT N N N Y (serial)
BEC Voltage 5v 5v 5v 5v
Current 1A (1.5A pk) 0.1A 3A 2A (3A pk)
Decoders   N N Y (vel & pos) Y (in I2C)
Inputs RC/Analog 2 5 2 2
Serial Y Y Y N
Encoders N N 2 2
Stop Y N Y N?
Outputs Bidir Motor 2 2 2 2
Unidir Motor 0 1 0 0
Servos N N N 4-6 (3 @ 6v?)
CPU Program N N (FW update) N Y (USB,ISP/FTDI)
Core N/A ? ATmega32 ATmega328P
Mapping Deadband Y Y Y N?
Exponential Y Y Y


Calibration Y Y Y N?
Control Acceleration Y Y Y N?
Current limit Y* (overcurrent) Y, prop Y N?
Regen brake Y N Y N
Fuse N N N PTC fuse
Battery Cutoff Y N? Y Y
  Charging Lithium N N N
Sensor Motor current Y* (Limit only) Y Y Y
  Bat voltage ? N Y Y
  Temperature Y* (Limit only) N Y N
  Acceleration N N N Y
  Encoders N N Y Y
Notes   - Safe reverse - Swap RC/serial upon override - Buffered cmds - Discontinued?

Feature Definition

Continuous Current
Defines the maximum current that the motor controller can output (per motor/channel) over an extended period of time. Review the motor torque curves to determine a suitable limit (eg. 1/3 of stall torque current) and be sure to double it if you are running a 4WD robot with two motor channels.
A battery eliminator circuit (BEC) allows the motor controller to redirect some of the current from the main battery source to the logic controller and any external logic you might have. Without a BEC, you may need to supply an additional battery input for the logic in addition to the main motors. The BEC output is usually regulated to 5v, which is stepped-down from the main battery voltage (eg. 12v, 7.2v, etc.). The greater the BEC output current, the more logic can be powered by the BEC output.
Mapping: Calibration
In the case of analog and RC input modes, it is very likely that the actual minimum and maximum ranges (in volts for analog and microseconds for RC) may not match the full range expected by the motor controller's logic. Many controllers offer a calibration mode that monitors the input and attempts to determine the maximum range and scale accordingly. Ultimately, this means that the control stick's input resolution is maximized.
Motor Control: Acceleration
Some controllers provide the ability to limit the acceleration that the motor will respond to. This prevents sudden / jarring motions on the robot and damage to the geartrain. It can also be used to limit the amount of wheelslip that occurs when starting the robot from a standstill (useful if depending on odometry for position). In essense, the acceleration limit will provide a gradual response to your control input, increasing speed as time elapses.
Motor Control: PID
PID controllers enable accurate wheel speed and position to be maintained in a closed-loop feedback system. The most common use for this is to ensure that left and right motors are turning at the same speed, which enables the robot to travel forwards. It is highly likely that each motor will have a different resulting speed when provided the same PWM input signal (due to friction and other factors), so a PID (or PI) loop is very useful.


Reader's Comments:

Please leave your comments or suggestions below!
 Is 2x32 strong enough to carry a human (i.e. Jazzy chair) or g0 with 2x60 ?
 Hi Keith -- Unfortunately, I don't have any experience with heavy-payloads, so can't provide a reliable recommendation. A need to transport a human up sloped terrain would clearly place a considerable demand on the motor controller. From what I have seen of the mobility scooter controllers, it seems many run in the ballpark of 40-70A. Good luck!
 Thanks for the motor controller comparison table. Very helpful. I am building a 1:6 scale German tank that weighs about 200lbs. The dual motors I am using are 24VDC with rated current of 25A and stall current up to 130A.

I am leaning toward using the roboclaw 2x30. This should work right? I have been looking at Cytron smartdrive Duo 2x30 that is only $65 but no one seems to use them or have much info about their performance and reliability.

thanks again
 Sounds like a great project, Morgan!
I don't have experience with motors of your size, but from the datasheet it does appear that the 30A continuous spec might be adequate for your setup, assuming that the temperature is managed and terrain is forgiving enough to keep the motors in their nominal operating region. Overall, I have been quite pleased with the RoboClaw motor driver


Leave a comment or suggestion for this page:

(Never Shown - Optional)