The ULN2003A driver board paired with a 28BYJ-48 unipolar stepper motor is the definitive choice for low-cost, low-speed, high-precision positioning tasks—like automated blinds, camera sliders, or pet feeders—where holding torque requirements stay below 0.05 Nm and speeds remain under 15 RPM. If your project demands high speed, heavy lifting, or dynamic acceleration, skip this combo entirely and jump straight to a NEMA 17 bipolar stepper with a TMC2209 chopper driver. This guide provides the exact sizing math, wiring pinouts, and failure diagnostics you need to determine if the ULN2003A is the right tool for your bench, or if you need to pivot to a heavier drive topology.

Motor Type Comparison: Where the 28BYJ-48 Fits in the Torque Curve

Treating all stepper motors as interchangeable is a common trap in embedded design. A unipolar motor driven by a Darlington array behaves fundamentally differently than a bipolar motor driven by an H-bridge chopper. The table below maps the ULN2003A stepper motor setup against common alternatives to clarify its exact operational envelope.

Motor / Driver Combo Torque Curve Profile Control Complexity Typical Cost Best Application
28BYJ-48 + ULN2003A High holding torque at 0 RPM, drops sharply past 15 RPM. Max ~0.034 Nm (at 5V). Low. Simple GPIO sequencing (4-step or 8-step). No current tuning required. $2.50 - $4.00 Slow linear actuators, lightweight valve control, display dials.
NEMA 17 + A4988 Flat torque curve up to 300 RPM. High holding torque (~0.40 Nm). Medium. Requires STEP/DIR pulses and VREF current tuning via potentiometer. $15.00 - $22.00 3D printers, CNC routers, high-speed conveyor belts.
NEMA 17 + TMC2209 Flat torque curve, ultra-quiet. Supports sensorless stall detection (StallGuard). High. UART configuration for microstepping, stealthChop, and current limits. $25.00 - $35.00 Precision optics, quiet desktop automation, closed-loop emulation.
SG90 Micro Servo Peak torque at specific angles, relies on internal potentiometer feedback. Low. Single PWM pin (50Hz, 1-2ms pulse width). $3.00 - $5.00 RC linkages, pan-tilt camera mounts, robotic arms (<180° sweep).

According to All About Circuits, unipolar steppers like the 28BYJ-48 sacrifice roughly 30% of their potential torque compared to bipolar equivalents because the center-tap wiring means only half of each coil is energized at any given time. You trade raw power for extreme simplicity and cost.

Wiring and Terminal Identification: The 5-Pin Unipolar Harness

The ULN2003A is not an H-bridge; it is a low-side current sink. It contains seven NPN Darlington transistor pairs capable of sinking up to 500mA per channel. Because it can only pull lines to ground, it strictly requires a unipolar motor with a common center-tap.

Bench Note: The ULN2003A datasheet from Texas Instruments specifies built-in flyback diodes across each Darlington pair. You do not need to add external snubber diodes when driving the inductive coils of the 28BYJ-48, provided you are operating within the 500mA per-channel limit.

Here is the exact terminal identification for the standard 28BYJ-48 5-pin JST connector. Miswiring the center-tap will result in dead shorts or zero movement.

Wire Color Function ULN2003A Board Pin Internal Coil Connection
Red VCC / Center-Tap Common Connects to Power Supply (+), NOT the ULN2003A IC pins. Center-tap of Coil 1 AND Coil 2.
Pink Coil 1A IN1 (Sinks to GND via Darlington 1) End of Coil 1.
Yellow Coil 2A IN2 (Sinks to GND via Darlington 2) End of Coil 2.
Orange Coil 1B IN3 (Sinks to GND via Darlington 3) End of Coil 1.
Blue Coil 2B IN4 (Sinks to GND via Darlington 4) End of Coil 2.

The Gear Ratio Discrepancy: If you are writing open-loop positioning code, be aware that the 28BYJ-48 is advertised with a 64:1 gear reduction, yielding 2048 steps per revolution in half-step mode. In reality, the internal gear train (32, 22, 26, 31, 32 teeth) results in an exact ratio of 63.68395:1, meaning one full revolution is actually 4076 half-steps (or 2037.88 full steps). If your project requires the motor to return to an exact home position after 100 revolutions, this 0.5% error will compound into a visible misalignment. You must account for this in your firmware step-count math.

Sizing Rule of Thumb and Worked Load Example

The golden rule for stepper motor sizing is the 2x Safety Factor: The motor’s rated holding torque must be at least twice the calculated peak load torque. This margin accounts for static friction, inertial loads during acceleration, and the steep drop-off in dynamic torque as RPM increases.

Worked Example: Automating a Pet Feeder Flap

Let’s size a motor to lift a hinged acrylic flap for a pet feeder.

  • Flap Mass: 80 grams (0.08 kg)
  • Distance from hinge to center of mass: 45 mm (0.045 m)
  • Gravity: 9.81 m/s²

Step 1: Calculate Peak Load Torque
Torque (τ) = Force × Distance
Force = Mass × Gravity = 0.08 kg × 9.81 m/s² = 0.7848 N
τ = 0.7848 N × 0.045 m = 0.0353 Nm

Step 2: Apply the 2x Safety Factor
Required Motor Holding Torque = 0.0353 Nm × 2 = 0.0706 Nm

Step 3: Evaluate the 28BYJ-48
At a standard 5V USB supply, the 28BYJ-48 produces approximately 0.034 Nm of holding torque. Even if you power the 12V variant at 12V (yielding ~0.06 Nm), it falls short of our 0.0706 Nm requirement. Under this specific load profile, the 28BYJ-48 will stall during acceleration.

The Fix: You must either redesign the mechanical linkage to reduce the moment arm (e.g., using a counterweight or moving the hinge point), or upgrade to a NEMA 17 stepper motor (typically 0.40 Nm holding torque) driven by an A4988. Do not attempt to push the ULN2003A beyond its torque envelope by increasing step delay; it will simply overheat and miss steps.

Failure Signatures: Diagnosing Hum, Overheat, and Stall

When a ULN2003A stepper motor circuit fails, it rarely fails silently. The physical symptoms map directly to specific electrical or mechanical faults.

1. Humming or Vibrating Without Rotation

Cause: Incorrect coil sequencing or step pulse frequency exceeding the pull-in torque limit.
Fix: Verify your GPIO firing sequence. The correct 4-step full-wave sequence is 1000, 0100, 0010, 0001. If the motor vibrates but doesn't turn, your sequence is likely firing adjacent coils simultaneously out of order, or your delay between steps is too short (under 2ms per step for the 28BYJ-48). Increase the inter-step delay to 5ms and test again.

2. ULN2003A IC Overheating

Cause: High voltage drop across the Darlington junctions. The ULN2003A is a BJT-based array, meaning it drops roughly 1.0V to 1.5V per channel when sinking current. If you are driving a 12V 28BYJ-48, the coils draw roughly 160mA each. With two coils energized, that is 320mA total. Power dissipation = 1.2V × 0.32A = 0.38W. The standard DIP-16 package will reach 60°C+ in still air.
Fix: If the IC is too hot to touch, implement a software "sleep" state. De-energize all coils (set all GPIOs LOW) when the motor is stationary. Unlike chopper drivers that use microstepping to hold position efficiently, the ULN2003A burns maximum power just to hold the rotor in place.

3. Stalling and Missed Steps Under Load

Cause: Exceeded pull-out torque at the operating RPM. Stepper torque is not constant; it degrades as speed increases due to coil inductance limiting current rise time.
Fix: You cannot fix this with code if you are already using an 8-step half-stepping sequence (which smooths rotation but slightly reduces peak torque). You must reduce the load, introduce a mechanical gear reduction between the motor shaft and the load, or swap to a bipolar NEMA 17 setup.

The Decision Tree: Final Component Selection

Use this decision matrix to finalize your bill of materials. Do not default to the ULN2003A simply because it is cheap; evaluate the mechanical reality of your load first.

Project Parameter Condition Concrete Component Pick
Load Torque Calculated peak load is < 0.017 Nm (after 2x safety factor) Buy: 28BYJ-48 (5V) + ULN2003A Driver Board.
Operating Speed Required RPM is < 15 RPM Buy: 28BYJ-48 (5V) + ULN2003A Driver Board.
Positional Accuracy Requires absolute position memory without a homing switch, or > 180° continuous rotation is NOT needed. Buy: MG996R Metal Gear Servo (abandon stepper topology).
High Torque / Speed Load torque > 0.05 Nm OR required RPM > 50 RPM Buy: NEMA 17 (17HS4401) + BigTreeTech TMC2209 Driver.
Budget Constraint Total motor + driver budget must remain under $4.00 per unit at scale. Buy: 28BYJ-48 + ULN2003A (Accept mechanical compromises to fit torque limits).

If your load profile aligns with the first two rows, the ULN2003A stepper motor kit is the correct, most economical choice for your embedded project. Wire the red center-tap directly to your 5V rail, sequence the four control pins via your microcontroller's GPIO, and ensure your firmware accounts for the true 63.68:1 gear ratio. If your load exceeds those boundaries, bypass the Darlington array entirely and design your PCB around a modern bipolar chopper driver.