ULN2003 Stepper Driver

A ULN2003 Darlington-array breakout that lets a microcontroller drive a 5V unipolar stepper motor (typically the 28BYJ-48) directly from four digital pins.

ULN2003 Stepper Driver: Darlington driver board

What is the ULN2003 Stepper Driver?

This module carries a single ULN2003 chip, a high-voltage, high-current array of seven NPN Darlington pairs. On the board, four of those channels are broken out to the IN1-IN4 header and a 5-pin motor connector, turning a general-purpose sink driver into a low-cost controller for unipolar stepper motors, most often the 28BYJ-48 sold in the same kit.

Each Darlington channel is an open-collector current sink: when an input goes high, the matching output pulls its coil terminal to ground and energizes that phase. The motor's red center-tap wire connects to the board's +5V common, and firing IN1 through IN4 in the correct sequence steps the rotor. Four onboard LEDs mirror the input states so the phase pattern is visible. Every channel handles up to 500mA and includes an integral clamp diode, so no external flyback protection is needed for the inductive coils.

The ULN2003 outputs are rated to 50V and 500mA per channel, well beyond what a 5V 28BYJ-48 needs (roughly 200-300mA total), leaving generous headroom. Because the chip only sinks current, it drives unipolar steppers, small relays, solenoids, and lamps, but it cannot reverse coil polarity and so will not run a bipolar stepper.

ULN2003 Stepper Driver pinout

PinFunctionType
IN1 IN1DigitalDigital input
IN2 IN2DigitalDigital input
IN3 IN3DigitalDigital input
IN4 IN4DigitalDigital input
VCC +5VPowerPower in
GND GNDPowerPower in
M_BLUE Motor BlueFreeFree
M_PINK Motor PinkFreeFree
M_YELLOW Motor YellowFreeFree
M_ORANGE Motor OrangeFreeFree
M_RED_COM Motor Red / +5V commonPowerPower out

Specifications

Operating voltage
5 V (max 50 V)
Interface
gpio
Dimensions
32 × 20 × 35 mm

Verified from the Tinkered component library · TI / generic breakout module.

Circuit requirements

  • Feed the motor from the board's +5V and GND terminals. A 28BYJ-48 can pull 200-300mA, so prefer a dedicated 5V supply over the Arduino 5V pin when running under load or over USB.
  • Tie the driver board GND to the microcontroller GND so logic and motor share a common ground reference; without it the inputs float and stepping is erratic.
  • The motor's red wire (center tap) goes to the +5V common (M_RED_COM); the four coil wires (blue, pink, yellow, orange) connect to the ULN2003 outputs in order.
  • No external flyback diodes are required. The ULN2003 has integral clamp diodes on the COM rail to absorb each coil's inductive kickback when it de-energizes.
  • Each output sinks up to 500mA (600mA peak). Stay within that per channel and mind total package dissipation when several channels conduct at once.
  • Inputs are TTL/CMOS compatible through an internal series base resistor. 5V logic drives them fully; 3.3V logic works but with reduced drive margin.

Board compatibility

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

Common ULN2003 Stepper Driver mistakes

Powering the motor from the Arduino 5V pin

The 28BYJ-48 draws 200-300mA, enough to brown out a board running on USB and cause resets or missed steps. Run the motor common from a separate regulated 5V supply and share grounds.

Forgetting the common ground

If the driver board and the microcontroller do not share a GND connection, the IN1-IN4 signals have no return path, the LEDs may glow faintly, and the motor jitters or stalls.

Wiring the coils or IN pins out of order

The half-step and full-step sequences assume a fixed phase order. Swapping two coil wires or two input pins makes the motor hum and vibrate in place instead of rotating smoothly. Keep the standard blue/pink/yellow/orange order and matching step table.

Trying to drive a bipolar stepper

The ULN2003 only sinks current to ground and cannot reverse the current in a winding. It works with unipolar 5-wire and 6-wire motors only, not two-phase bipolar steppers, which need an H-bridge driver like the A4988 or DRV8825.

Ignoring the gearbox in the step count

The 28BYJ-48 hides a roughly 64:1 reduction gearbox, so one output-shaft revolution is about 2048 full steps (or 4096 half steps), not the 32 or 64 of the bare motor. Positioning code that uses the ungeared count will rotate far too little.

ULN2003 Stepper Driver datasheet

Official ULN2003 Stepper Driver datasheetTI / generic breakout module

Popular ULN2003 Stepper Driver projects

Motorized blinds and curtains

Pair the board with an ESP32 or Arduino to open and close shades on a schedule; the low-speed, high-reduction 28BYJ-48 holds position without a brake.

Analog-style clock or gauge

Use the fine step resolution to sweep a printed dial or clock hand, driving a physical indicator from sensor data or the current time.

Camera pan or slider control

Drive slow, repeatable pans and time-lapse moves where the motor's quiet, geared output matters more than raw speed.

Small robotic arm or rotary table

Actuate a lightweight joint or a turntable for 3D scanning and photography, using four GPIO pins per axis and the onboard LEDs to watch phase timing.

Build with the ULN2003 Stepper Driver.

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