A4988 Stepper Driver

The A4988 is an Allegro DMOS microstepping driver with a built-in translator that runs one bipolar stepper motor from simple STEP and DIR pulses.

A4988 Stepper Driver: Microstepping driver

What is the A4988 Stepper Driver?

The A4988 is a microstepping motor driver from Allegro MicroSystems, most commonly sold on a StepStick-style carrier board. It drives a single bipolar stepper motor from a motor supply of 8-35V and can deliver up to 2A per coil with adequate cooling (roughly 1A per phase without a heat sink or forced airflow). A separate logic supply of 3-5.5V on VDD powers the control side, so it interfaces directly with 3.3V and 5V microcontrollers.

An on-chip translator handles the coil switching, so the host only needs to toggle two lines: each pulse on STEP advances the motor one increment, and the level on DIR sets rotation direction. The MS1, MS2, and MS3 inputs select the step resolution across five settings (full, half, quarter, eighth, and sixteenth step). These three pins have internal pull-downs, so leaving them disconnected defaults to full-step mode.

Current is regulated by a fixed off-time chopper, and the peak coil current limit is set with the on-board trimmer potentiometer by measuring its reference voltage (Vref). This lets the driver run motors rated well below the supply voltage without a series resistor. Built-in protections include thermal shutdown with hysteresis, crossover-current protection, and undervoltage lockout. RESET, SLEEP, and ENABLE pins allow the outputs to be reset, put in a low-power state, or disabled.

A4988 Stepper Driver pinout

PinFunctionType
ENABLE ENDigitalDigital input
MS1 MS1DigitalDigital input
MS2 MS2DigitalDigital input
MS3 MS3DigitalDigital input
RESET RSTDigitalDigital input
SLEEP SLPDigitalDigital input
STEP STEPDigitalDigital input
DIR DIRDigitalDigital input
VMOT VMOTPowerPower in
GND_MOT GNDPowerPower in
2B 2BDigital stepper motor coil outputFree
2A 2ADigital stepper motor coil outputFree
1A 1ADigital stepper motor coil outputFree
1B 1BDigital stepper motor coil outputFree
VDD VDDPowerPower in
GND_LOGIC GNDPowerPower in

Specifications

Operating voltage
5 V (max 35 V)
Interface
stepper
Dimensions
20.4 × 12.5 × 15.3 mm

Verified from the Tinkered component library · Allegro MicroSystems / generic StepStick carrier.

Circuit requirements

  • Use two supplies: motor power (8-35V) on VMOT and logic power (3-5.5V) on VDD. Both ground pins and the microcontroller must share a common ground reference.
  • Place a large electrolytic capacitor (100µF is a common value) across VMOT and GND close to the board before powering on. Connecting motor power without this bulk capacitor can let LC voltage spikes destroy the chip.
  • Set the coil current limit with the on-board trimpot before running a motor. Measure Vref and compute the limit from the carrier's sense-resistor value (on common Pololu-style boards the coil current limit is approximately Vref x 2.5).
  • RESET has no external pull-up and holds the outputs off when low. Tie RESET to the SLEEP pin (or pull it high) so the driver leaves the reset state.
  • STEP and DIR are logic inputs from the microcontroller. The four motor outputs (1A, 1B, 2A, 2B) connect to the two coils of a bipolar 4-wire stepper (or a 6-wire motor wired bipolar).
  • In full-step mode the chopper limits each coil to about 70% of the set current limit, so a current measured in full step will be exceeded in microstep modes.

Board compatibility

The A4988 Stepper Driver connects to any of the microcontrollers supported in Tinkered. Mind the 5 V logic level on 3.3 V boards.

Common A4988 Stepper Driver mistakes

Powering VMOT with no bulk capacitor

Applying motor voltage without a large electrolytic capacitor across VMOT and GND allows inductive voltage spikes that routinely blow the A4988. Always fit the capacitor before connecting motor power.

Hot-plugging the stepper motor

Connecting or disconnecting the motor coils while the driver is powered can destroy the chip. Power everything down before changing the motor wiring.

Never setting the current limit

Running the driver at its default trimpot position often pushes far too much or too little current, causing overheating and thermal shutdown or weak, skipping steps. Set Vref for your motor's rated coil current first.

Leaving RESET floating

RESET has no internal pull-up, so if it is left disconnected or held low the outputs stay disabled and the motor will not move. Tie RESET to SLEEP or pull it high.

Forgetting the common ground

The logic ground and motor ground must both return to the microcontroller's ground. Without a shared reference the STEP and DIR signals are not seen and the driver does nothing or behaves erratically.

A4988 Stepper Driver datasheet

Official A4988 Stepper Driver datasheetAllegro MicroSystems / generic StepStick carrier

Popular A4988 Stepper Driver projects

3D printer and CNC axis control

The A4988 is the classic RAMPS/StepStick driver for X, Y, Z, and extruder axes, giving quiet, precise positioning with 1/16 microstepping.

Motorized camera slider

Drive a lead-screw or belt slider from an Arduino, using STEP pulses to control speed and DIR to reverse for smooth timelapse and video moves.

Pan-tilt and automated blinds

Pair the driver with a small NEMA 17 to build pan-tilt heads or motorized window blinds where holding torque and repeatable positioning matter.

Build with the A4988 Stepper Driver.

Drop the A4988 Stepper Driver into a circuit, write firmware, and simulate it in your browser, then deploy to real hardware. All in one editable Tinkered project.