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

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.
| Pin | Function | Type |
|---|---|---|
IN1 IN1 | Digital | Digital input |
IN2 IN2 | Digital | Digital input |
IN3 IN3 | Digital | Digital input |
IN4 IN4 | Digital | Digital input |
VCC +5V | Power | Power in |
GND GND | Power | Power in |
M_BLUE Motor Blue | Free | Free |
M_PINK Motor Pink | Free | Free |
M_YELLOW Motor Yellow | Free | Free |
M_ORANGE Motor Orange | Free | Free |
M_RED_COM Motor Red / +5V common | Power | Power out |
Verified from the Tinkered component library · TI / generic breakout module.
The ULN2003 Stepper Driver connects to any of the microcontrollers supported in Tinkered. Mind the 5 V logic level on 3.3 V boards.
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.
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.
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.
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.
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.
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.
Use the fine step resolution to sweep a printed dial or clock hand, driving a physical indicator from sensor data or the current time.
Drive slow, repeatable pans and time-lapse moves where the motor's quiet, geared output matters more than raw speed.
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.
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.