The 28BYJ-48 is a 5V geared stepper motor that pairs with the ULN2003A driver board. It has a 64:1 gear ratio, giving you 2048 steps per revolution — fine enough positioning for clocks, dials, camera sliders and small automation projects. The driver board connects directly to four GPIO pins and handles the current, so no additional components are needed.
- 28BYJ-48 5V stepper motor included
- ULN2003A driver board with screw terminal included
- 64:1 gear ratio, 2048 steps/revolution in full-step mode
- 4-wire unipolar drive via driver board
- Works directly with Arduino and ESP32 (3.3V logic compatible)
- Power via separate 5V supply or USB 5V rail
- Low noise, good holding torque for its size
- Widely supported by stepper libraries
Specifications
What's in the box
Motor connects to driver board via the 5-pin JST-XH cable. Four dupont pins from the driver board connect to GPIO.
Great for
Wiring & getting started
- Connect motor to driver board
Plug the 5-pin JST-XH connector from the motor into the driver board — it only fits one way.
- Wire the driver board
Connect IN1, IN2, IN3, IN4 to four digital pins on your Arduino or ESP32. Connect the driver board's 5V and GND to 5V power (not directly from Arduino 3.3V pin — the motor needs more current).
- Install the Stepper library
Arduino IDE has a built-in Stepper library. Alternatively, install AccelStepper by Mike McCauley from Library Manager for smoother control.
- Use the correct step count
Set steps per revolution to 2048 for full-step mode (the most common). For half-step mode use 4096.
Common questions
Can I run this from the Arduino 5V pin?
Technically yes for light loads, but not recommended. The motor draws more current than the Arduino's USB-to-serial chip can safely supply. Use a separate 5V source (USB wall adapter or 5V bench supply) and share GND with the Arduino.
Is it compatible with ESP32 (3.3V logic)?
Yes. The ULN2003A driver board accepts 3.3V logic-level signals, so ESP32 GPIO pins drive it directly. Keep the motor's 5V supply separate from the ESP32's 3.3V rail.
How precise is it?
2048 steps per revolution gives about 0.18° per step. This is good for clock hands, pointer dials and camera rigs. It's not suited for high-speed or high-torque applications.
Does the motor hold its position when powered?
Yes — when the coils remain energised the motor holds its position. You can de-energise it (by setting all outputs low) to save power, but it will then freewheel.
Good to know: Power the motor from a separate 5V supply, not from the Arduino's onboard regulator. Share GND between the motor supply and the microcontroller. Buying 3 or more unlocks a lower per-unit price — see the quantity discounts above.
