

The A4988 Stepper Motor Driver (Red) is a compact and versatile module designed for controlling bipolar stepper motors with precision. It features adjustable current control, microstepping capabilities (up to 1/16 steps), and built-in thermal shutdown protection, making it a reliable choice for a wide range of applications. This driver is widely used in 3D printers, CNC machines, robotics, and other projects requiring precise motor control.








The A4988 Stepper Motor Driver (Red) has the following key technical specifications:
| Parameter | Value |
|---|---|
| Operating Voltage (Vcc) | 8V to 35V |
| Logic Voltage (Vdd) | 3.3V or 5V |
| Maximum Output Current | 2A per coil (with sufficient cooling) |
| Microstepping Modes | Full, 1/2, 1/4, 1/8, 1/16 |
| Current Control | Adjustable via onboard potentiometer |
| Thermal Shutdown Protection | Yes |
| Overcurrent Protection | Yes |
| Dimensions | 20mm x 15mm x 11mm |
The A4988 module has 16 pins, which are described in the table below:
| Pin Name | Type | Description |
|---|---|---|
| VMOT | Power Input | Motor power supply (8V to 35V). Connect to the stepper motor power source. |
| GND | Power Ground | Ground connection for motor power supply. |
| VDD | Power Input | Logic voltage supply (3.3V or 5V). |
| GND | Power Ground | Ground connection for logic voltage supply. |
| 1A, 1B | Motor Output | Connect to one coil of the stepper motor. |
| 2A, 2B | Motor Output | Connect to the other coil of the stepper motor. |
| STEP | Logic Input | Pulse signal to control motor steps. |
| DIR | Logic Input | Direction control signal. |
| ENABLE | Logic Input | Enables or disables the driver (active low). |
| MS1, MS2, MS3 | Logic Input | Microstepping mode selection pins. |
| RESET | Logic Input | Resets the driver (active low). |
| SLEEP | Logic Input | Puts the driver into low-power sleep mode (active low). |
Power Connections:
Motor Connections:
Control Signals:
Microstepping:
Adjusting Current Limit:
Enable/Disable:
Below is an example of how to control a stepper motor using the A4988 driver with an Arduino UNO:
// Define control pins
#define STEP_PIN 3 // Connect to STEP pin on A4988
#define DIR_PIN 4 // Connect to DIR pin on A4988
void setup() {
pinMode(STEP_PIN, OUTPUT); // Set STEP pin as output
pinMode(DIR_PIN, OUTPUT); // Set DIR pin as output
digitalWrite(DIR_PIN, HIGH); // Set initial direction
}
void loop() {
// Rotate the motor one step at a time
digitalWrite(STEP_PIN, HIGH); // Generate a step pulse
delayMicroseconds(1000); // Wait for 1ms (adjust for speed)
digitalWrite(STEP_PIN, LOW); // End the step pulse
delayMicroseconds(1000); // Wait for 1ms (adjust for speed)
}
Motor Not Moving:
Motor Vibrates but Doesn't Rotate:
Driver Overheating:
Motor Moves Erratically:
Q: Can I use the A4988 with a unipolar stepper motor?
A: No, the A4988 is designed for bipolar stepper motors only.
Q: What happens if I exceed the current limit?
A: The driver will enter thermal shutdown to protect itself, but this may cause erratic motor behavior.
Q: Can I control multiple stepper motors with one Arduino?
A: Yes, you can use multiple A4988 drivers, each connected to a separate set of control pins on the Arduino.
Q: How do I calculate the current limit?
A: Use the formula: Current Limit = VREF / (8 × RS), where RS is the sense resistor value (typically 0.1Ω).
By following this documentation, you can effectively use the A4988 Stepper Motor Driver (Red) in your projects!