

The Sabertooth 2x32 Motor Controller is a dual-channel motor controller designed for controlling DC motors with high efficiency and precision. It is capable of handling up to 32A per channel continuously, making it ideal for medium to large-sized robotics and automation projects. The controller supports advanced control options, including speed, direction, and mixed mode for differential drive systems. It is compatible with a variety of input methods, such as analog, R/C, serial, and packetized serial, offering flexibility for diverse applications.








| Parameter | Value |
|---|---|
| Channels | 2 |
| Continuous Current (per channel) | 32A |
| Peak Current (per channel) | 64A |
| Input Voltage Range | 6V to 30V |
| Control Methods | Analog, R/C, Serial, Packetized Serial |
| Operating Modes | Independent, Mixed, Regenerative Braking |
| Dimensions | 3.25" x 2.75" x 1.5" (82.5mm x 70mm x 38mm) |
| Weight | 4.8 oz (136g) |
| Communication Protocols | TTL Serial, USB (via adapter) |
| Safety Features | Overcurrent, Overtemperature, and Undervoltage protection |
| Pin Name | Description |
|---|---|
| M1A, M1B | Motor 1 output terminals (connect to the first DC motor) |
| M2A, M2B | Motor 2 output terminals (connect to the second DC motor) |
| VIN (+, -) | Power input terminals (connect to the battery or power supply) |
| S1, S2 | Signal input pins for control (e.g., analog, R/C, or serial input) |
| 0V | Ground reference for signal inputs |
| 5V Out | 5V regulated output for powering external devices (up to 50mA) |
| USB | USB port for configuration and firmware updates (via USB-to-serial adapter) |
| DIP Switches | Configuration switches for setting operating modes and input types |
The Sabertooth 2x32 can be controlled via serial communication with an Arduino UNO. Below is an example code snippet for controlling motor speed and direction:
#include <SoftwareSerial.h>
// Define TX and RX pins for SoftwareSerial
SoftwareSerial SabertoothSerial(10, 11); // TX = pin 10, RX = pin 11
void setup() {
SabertoothSerial.begin(9600); // Initialize serial communication at 9600 baud
}
void loop() {
// Send commands to control motor 1 and motor 2
SabertoothSerial.write(64); // Motor 1: Stop (64 is neutral)
SabertoothSerial.write(192); // Motor 2: Full forward (192 is max forward)
delay(2000); // Wait for 2 seconds
SabertoothSerial.write(0); // Motor 1: Full reverse (0 is max reverse)
SabertoothSerial.write(128); // Motor 2: Stop (128 is neutral)
delay(2000); // Wait for 2 seconds
}
Note: Ensure the DIP switches are configured for packetized serial mode when using this code.
Motors Not Responding:
Overheating:
Erratic Motor Behavior:
USB Not Recognized:
Q: Can I use the Sabertooth 2x32 with a 3.3V microcontroller?
A: Yes, but you will need a logic level converter to safely interface the 3.3V signals with the 5V logic of the Sabertooth.
Q: How do I enable regenerative braking?
A: Regenerative braking is enabled by default. Ensure the power supply can handle the returned current, or use a battery as the power source.
Q: Can I control brushless motors with the Sabertooth 2x32?
A: No, the Sabertooth 2x32 is designed for brushed DC motors only.
Q: What happens if I exceed the current limit?
A: The controller will enter a protective mode to prevent damage. Reduce the load or use motors with lower current requirements.