

The RoboClaw 2x15A Motor Controller (Part ID: IMC412) by BASICMICRO is a dual-channel motor controller designed to drive two brushed DC motors with a maximum continuous current of 15A per channel. It offers advanced motor control features, including speed, direction, and position control, and supports multiple communication protocols such as USB, TTL serial, RC, and analog inputs. The RoboClaw is ideal for robotics, automation, and other applications requiring precise motor control.








| Parameter | Specification |
|---|---|
| Manufacturer | BASICMICRO |
| Part ID | IMC412 |
| Motor Channels | 2 |
| Maximum Continuous Current | 15A per channel |
| Peak Current | 30A per channel (for short durations) |
| Input Voltage Range | 6V to 34V |
| Communication Interfaces | USB, TTL Serial, RC, Analog |
| Control Modes | Speed, Direction, Position |
| Encoder Support | Quadrature encoders (up to 19.6Mhz) |
| Dimensions | 3.2" x 2.4" x 0.8" (81mm x 61mm x 20mm) |
| Weight | 3.8 oz (108g) |
The RoboClaw 2x15A Motor Controller features multiple connectors for power, motor outputs, and communication. Below is a summary of the key pin configurations:
| Pin/Connector | Description |
|---|---|
| VIN+ | Positive input voltage (6V to 34V) |
| VIN- | Ground (negative input voltage) |
| M1A | Motor 1 output terminal A |
| M1B | Motor 1 output terminal B |
| M2A | Motor 2 output terminal A |
| M2B | Motor 2 output terminal B |
| Pin/Connector | Description |
|---|---|
| S1 | RC/Analog input 1 |
| S2 | RC/Analog input 2 |
| TX | TTL Serial transmit |
| RX | TTL Serial receive |
| GND | Ground for communication signals |
| USB | USB interface for PC communication and control |
| Pin/Connector | Description |
|---|---|
| ENC1A | Encoder 1 channel A input |
| ENC1B | Encoder 1 channel B input |
| ENC2A | Encoder 2 channel A input |
| ENC2B | Encoder 2 channel B input |
The RoboClaw can be controlled via TTL Serial communication with an Arduino UNO. Below is an example code snippet to control motor speed and direction:
#include <SoftwareSerial.h>
// Define RoboClaw serial pins
#define ROBOCLAW_RX 10 // Arduino pin connected to RoboClaw TX
#define ROBOCLAW_TX 11 // Arduino pin connected to RoboClaw RX
// Create a SoftwareSerial object for RoboClaw communication
SoftwareSerial roboclaw(ROBOCLAW_RX, ROBOCLAW_TX);
void setup() {
// Initialize serial communication with RoboClaw
roboclaw.begin(38400); // Default baud rate for RoboClaw
Serial.begin(9600); // For debugging with Serial Monitor
// Send a command to stop both motors
sendMotorCommand(0, 0);
}
void loop() {
// Example: Set motor 1 to 50% forward speed and motor 2 to 50% reverse speed
sendMotorCommand(64, -64); // Speed range: -127 (full reverse) to 127 (full forward)
delay(5000); // Run motors for 5 seconds
// Stop both motors
sendMotorCommand(0, 0);
delay(2000); // Pause for 2 seconds
}
// Function to send motor speed commands to RoboClaw
void sendMotorCommand(int motor1Speed, int motor2Speed) {
// Ensure speed values are within the valid range
motor1Speed = constrain(motor1Speed, -127, 127);
motor2Speed = constrain(motor2Speed, -127, 127);
// Send command to RoboClaw
roboclaw.write(0x80); // Address byte (default: 0x80)
roboclaw.write(0x00); // Command byte for motor speed control
roboclaw.write(motor1Speed + 128); // Motor 1 speed (offset by 128 for 0-255 range)
roboclaw.write(motor2Speed + 128); // Motor 2 speed (offset by 128 for 0-255 range)
roboclaw.write(0x00); // Placeholder checksum (not used in this example)
}
Motors Not Running:
Overheating:
Communication Issues:
Erratic Motor Behavior:
Can the RoboClaw control stepper motors? No, the RoboClaw is designed for brushed DC motors only.
What happens if the current exceeds 15A? The RoboClaw includes overcurrent protection and will shut down temporarily to prevent damage.
Can I use the RoboClaw with a Raspberry Pi? Yes, the RoboClaw supports USB and TTL Serial communication, which can be used with a Raspberry Pi.
Is the RoboClaw compatible with LiPo batteries? Yes, the RoboClaw can be powered by LiPo batteries within the 6V to 34V range.