A4988 Stepper Motor Driver Module
A4988 Stepper Motor Driver Module
Microstepping bipolar stepper motor driver with up to 2A per coil and 1/16 step resolution
Introduction
The A4988 stepper motor driver is a complete microstepping motor driver with built-in translator for easy operation. It’s designed to operate bipolar stepper motors in full-, half-, quarter-, eighth-, and sixteenth-step modes, with an output drive capacity of up to 35V and ±2A.

Key Features
Microstepping
1/16 step resolution
High Current
Up to 2A per coil (with heatsink)
Protection
Thermal shutdown & overcurrent
Simple Control
STEP/DIR interface
Adjustable Current
Via potentiometer
Status LEDs
Power and fault indicators
Technical Specifications
Operating Voltage | 8-35V |
---|---|
Logic Voltage | 3-5.5V |
Max Current per Coil | 2A (with heatsink) |
Microstep Resolution | Full, 1/2, 1/4, 1/8, 1/16 |
Step Frequency | Up to 250kHz |
Protection Features | Thermal shutdown, undervoltage lockout, crossover-current |
Package | QFN-28 (5mm × 5mm) |
Module Dimensions | 20mm × 15mm × 10mm |
Pin Configuration

Pin | Description | Connection |
---|---|---|
VMOT | Motor power (8-35V) | Connect to power supply |
GND | Ground | Connect to power supply ground |
VDD | Logic voltage (3-5.5V) | Connect to Arduino 5V |
STEP | Step input | Connect to Arduino digital pin |
DIR | Direction input | Connect to Arduino digital pin |
ENABLE | Enable (active LOW) | Optional control |
MS1, MS2, MS3 | Microstep selection | Connect to GND or VDD |
1A, 1B, 2A, 2B | Motor coil connections | Connect to stepper motor |
Current Adjustment
- Power off the driver and disconnect motor
- Set multimeter to measure DC voltage (200mV range)
- Place probes on the potentiometer and GND
- Power on the system
- Adjust potentiometer until VREF = I_Trip × 0.8
- Example: For 1A current, set VREF to 0.8V
Formula: VREF = Current Limit × 0.8 (e.g., 1A × 0.8 = 0.8V)
Microstep Configuration
MS1 | MS2 | MS3 | Microstep Resolution |
---|---|---|---|
LOW | LOW | LOW | Full step |
HIGH | LOW | LOW | 1/2 step |
LOW | HIGH | LOW | 1/4 step |
HIGH | HIGH | LOW | 1/8 step |
HIGH | HIGH | HIGH | 1/16 step |
Arduino Connection Example
// Basic A4988 Stepper Control const int dirPin = 2; const int stepPin = 3; const int stepsPerRevolution = 200; void setup() { pinMode(dirPin, OUTPUT); pinMode(stepPin, OUTPUT); } void loop() { // Set direction clockwise digitalWrite(dirPin, HIGH); // Spin motor slowly for(int x = 0; x < stepsPerRevolution; x++) { digitalWrite(stepPin, HIGH); delayMicroseconds(1000); digitalWrite(stepPin, LOW); delayMicroseconds(1000); } delay(1000); // Wait a second // Set direction counterclockwise digitalWrite(dirPin, LOW); // Spin motor quickly for(int x = 0; x < stepsPerRevolution; x++) { digitalWrite(stepPin, HIGH); delayMicroseconds(500); digitalWrite(stepPin, LOW); delayMicroseconds(500); } delay(1000); // Wait a second }
Heatsink Installation
- Clean the metal surface of the A4988 chip
- Apply thermal adhesive or thermal tape
- Press heatsink firmly onto the chip
- Allow adhesive to cure if needed
- Ensure no electrical contact with other components
Important: Always use a heatsink when driving currents above 1A
Troubleshooting
Motor Not Moving
- Check power supply connections
- Verify ENABLE pin is LOW (or disconnected)
- Confirm STEP pulses are being sent
- Check current adjustment
Driver Gets Hot
- Ensure proper heatsink installation
- Reduce current if not needed
- Check for short circuits
- Improve ventilation
Inconsistent Movement
- Verify microstep settings
- Check motor wiring connections
- Ensure sufficient power supply
- Slow down STEP pulse frequency
Application Examples
3D Printers
Precise axis control
CNC Machines
Accurate tool positioning
Camera Sliders
Smooth motion control
Lab Automation
Precise liquid handling
Related Posts
IC 74173 – 4-Bit D-Type Register with 3-State Outputs
IC 74173 - 4-Bit D-Type Register with 3-State Outputs
TTL Quad D Flip-Flop with Asynchronous Clear and Output Enable
...
DIY Metal Detector Kit
DIY Metal Detector Kit
DC 3V-5V Non-Contact Sensor Module with 60mm Detection Range
Introduction
The DIY Metal Detec...
CNC V3 Shield with 4 A4988 Drivers
CNC V3 Shield with 4 A4988 Drivers
Complete Arduino-compatible CNC controller for 3D printers and milling machines
...
CN3791 12V MPPT Solar Charger Module
CN3791 12V MPPT Solar Charger Module
Maximum Power Point Tracking Solar Charge Controller for Lead-Acid/Lithium Batteries
...
CJMCU-TRRS 3.5mm Jack AV Stereo Module
CJMCU-TRRS 3.5mm Jack AV Stereo Module
Compact breakout board for audio/video signal interfacing with TRRS connectors
...
TTP223 Capacitive Touch Sensor Module (Red)
TTP223 Capacitive Touch Sensor Module (Red)
Single-Key Touch Detection with Digital Output for Arduino and DIY Projects
...
Capacitive Soil Moisture Sensor
Capacitive Soil Moisture Sensor
Corrosion-Resistant Humidity Detection for Plants and Agricultural Applications
Intro...
VHM-314 Bluetooth Audio Receiver Board Module
VHM-314 Bluetooth Audio Receiver Board Module
High-fidelity stereo audio receiver with Bluetooth 5.0 and 3.5mm audio output
...
BD243 DIY Mini Tesla Coil Prototyping Kit
BD243 DIY Mini Tesla Coil Prototyping Kit
High-Voltage Wireless Power Demonstration - Build Your Own Spark Gap Tesla Coil
...
BF120-3AA Precision Strain Gauges (120Ω)
BF120-3AA Precision Strain Gauges (120Ω)
High-precision foil strain gauges for load cell applications with 120Ω resistance
...
Recent Comments