A4988 Stepper Motor Driver Module + Heatsink – 5 Pack – 3D Printer / Reprap / CNC

A4988 Stepper Motor Driver Module with Heatsink — 5 Pack (3D Printer / Reprap / CNC)

High-quality A4988 stepper motor driver modules (5 units) with sticky heatsinks — ideal for 3D printers, RepRap, CNC axes, robotics and DIY motion control. Supports microstepping, current limiting via onboard potentiometer and simple STEP/DIR interface.

Qty: 5 units Includes: Heatsinks Driver: A4988 Microstepping: Full/2/4/8/16

What’s Included

Key Features

Item Specifics (copy/paste-ready)

BrandUnbranded / Generic
ModelA4988 Stepper Driver Module
MPNDoes Not Apply
TypeStepper Motor Driver
ChannelsSingle driver per module (bipolar)
MicrosteppingFull / 1/2 / 1/4 / 1/8 / 1/16
Operating Voltage (Motor)8V – 35V (typical; check motor & module specs)
Logic Voltage3.3V – 5V (logic pins tolerant on many breakouts)
ConditionNew
Unit Quantity5
Country/Region of ManufactureChina

Why pick A4988?

Possible Uses

Wiring Diagram — ESP32 / Arduino → A4988 → Bipolar Stepper

ESP32 / Arduino GPIO D (STEP) → STEP GPIO E (DIR) → DIR GPIO F (EN) → ENABLE (optional) 3.3V / 5V → VLOGIC / VDD (module depends) GND → GND (common) A4988 Stepper Driver Module MS1 MS2 MS3 RESET SLEEP DIR STEP ENABLE VDD / 5V GND VMOT (motor +) GND OUT1A OUT1B OUT2A OUT2B Bipolar Stepper Motor Coil A → OUT1A / OUT1B Coil B → OUT2A / OUT2B Motor Supply → VMOT (8–35V) Notes: Tie all grounds together. Use decoupling caps on VMOT (100uF+). Set current limit with potentiometer, fit heatsink. Disable power while wiring.
Important wiring notes:
  • Motor supply (VMOT) must be suitable for your stepper (usually 8–35V). Do NOT exceed module / motor ratings.
  • Place a large electrolytic capacitor (100µF–470µF) across VMOT & GND to protect the driver from supply spikes.
  • Set the current limit via the on-board potentiometer BEFORE running the motor; use a multimeter to measure the reference voltage per A4988 datasheet.
  • MS1/MS2/MS3 set microstep mode (see table below); tie to GND for full step.

Microstepping table (typical)

MS1MS2MS3Microstep
LOWLOWLOWFull step
HIGHLOWLOWHalf step
LOWHIGHLOWQuarter step
HIGHHIGHLOWEighth step
HIGHHIGHHIGHSixteenth step

Enhanced ESPHome Example — A4988 Stepper (ESP32)

Paste this into ESPHome; change pins and timings to suit your motor. This uses ESPHome's stepper platform for A4988 drivers (STEP/DIR interface).

Click to expand — ESPHome YAML (A4988)
# ESPHome A4988 stepper example (ESP32)
esphome:
  name: a4988_node
  platform: ESP32
  board: esp32dev

wifi:
  ssid: "YOUR_SSID"
  password: "YOUR_PASS"

logger:
api:
ota:

# Simple stepper using the A4988 (STEP/DIR)
stepper:
  - platform: a4988
    id: x_stepper
    name: "X Axis Stepper"
    step_pin: GPIO16
    dir_pin: GPIO17
    enable_pin: GPIO5        # optional: pull low to enable
    sleep_pin: GPIO18       # optional: tie high to wake
    reset_pin: GPIO19       # optional
    max_speed: 1000 steps/s
    acceleration: 200 steps/s^2
    microsteps: 16          # keep in sync with MS1/MS2/MS3 wiring

# Example: simple cover-style automation (run 200 steps forward/back on schedule)
interval:
  - interval: 1min
    then:
      - stepper.set_target:
          id: x_stepper
          target: 200
      - delay: 5s
      - stepper.set_target:
          id: x_stepper
          target: 0

# Expose a service to move absolute steps from Home Assistant
# (Home Assistant can call stepper.set_target via API)

Notes: set microsteps to match hardware MS pins. Use enable_pin to disable driver when idle (power saving / reduce heat). Always configure safe acceleration & max_speed for your motor.

Enhanced Arduino Example — AccelStepper (recommended)

This sketch uses the AccelStepper library (install via Library Manager). It supports speed, acceleration, and smooth moves.

Click to expand — Arduino sketch (AccelStepper)
// Arduino + A4988 example using AccelStepper
#include <AccelStepper.h>

// Define pins
const int stepPin = 2;    // STEP
const int dirPin  = 3;    // DIR
const int enablePin = 8;  // ENABLE (active low)

AccelStepper stepper(AccelStepper::DRIVER, stepPin, dirPin);

void setup() {
  Serial.begin(115200);
  pinMode(enablePin, OUTPUT);
  digitalWrite(enablePin, LOW); // enable driver

  stepper.setMaxSpeed(800.0);      // steps per second
  stepper.setAcceleration(200.0);  // steps per second^2
  Serial.println("A4988 AccelStepper demo ready");
}

void loop() {
  // Move to 2000 steps (e.g., one revolution * steps per rev)
  stepper.moveTo(2000);
  while (stepper.distanceToGo() != 0) {
    stepper.run();
  }
  delay(1000);

  // Move back
  stepper.moveTo(0);
  while (stepper.distanceToGo() != 0) {
    stepper.run();
  }
  delay(1000);
}

Tip: tune setMaxSpeed and setAcceleration to match your motor torque and microstep setting. Use digitalWrite(enablePin, HIGH) to disable driver.

Practical Tips & Safety

SEO Keywords

A4988 driver, stepper motor driver, A4988 5 pack, 3D printer parts, RepRap, stepper driver module, microstep driver, bipolar stepper, CNC, ESP32 stepper, Arduino stepper, AccelStepper, VMOT, VREF

Postage & Returns

Ships from UK. Dispatch within 1 business day  International shipping available via eBay Global Shipping Programme.

Returns: 30-day returns accepted. Buyer pays return postage unless the item is faulty or not as described.