28BYJ-48 stepper + ULN2003 driver with ESP32
Supply 5 V
Bus GPIO
Pins and ESP32 wiring
| Pin | Role | ESP32 pin | Notes |
|---|---|---|---|
| IN1 | Input (the ESP32 drives it) | D25 | |
| IN2 | Input (the ESP32 drives it) | D26 | |
| IN3 | Input (the ESP32 drives it) | D27 | |
| IN4 | Input (the ESP32 drives it) | D32 | |
| - | Ground | GND | Driver ground. Share it with the ESP32 GND |
| + | Power | VIN | Motor supply 5 V: use VIN (about 240 mA) |
Suggested wiring for the 30-pin ESP32 DevKit, avoiding flash, input-only and strapping pins. BoardPilot checks it for you as you wire.
This module is sold for 5 V. Its outputs may be 5 V: use a level shifter or a voltage divider on ESP32 inputs.
Good to know
- Each coil draws about 100 mA at 5 V (50 Ω). Power the ULN2003 board from 5 V, never from a GPIO pin. (28BYJ-48 stepper motor datasheet, Rated voltage 5 V, DC resistance 50 Ω per phase)
Sources
- Texas Instruments ULN2003A datasheet, Darlington array inputs compatible with 3.3 V logic
- 28BYJ-48 motor datasheet, 5 V unipolar, 4-phase
Try it in 3D in BoardPilot
28BYJ-48 stepper + ULN2003 driver on other boards: wiring and code
Arduino Mega 2560 R3 Arduino Nano Arduino Uno R3 WeAct Black Pill STM32F411CE ESP32-C3-DevKitM-1 ESP32-S3-DevKitC-1 Nordic nRF52840 DK NUCLEO-F401RE Raspberry Pi Pico 2 Raspberry Pi Pico W Raspberry Pi Pico Teensy 4.1
Learn the basics
Lesson: GPIO: pins in and out Lesson: Hardware basics for software developers GPIO Level shifter Logic level (HIGH and LOW)
Related parts
18650 Li-ion cell in holder433 MHz transmitter (FS1000A)74HC595 shift registerA4988 stepper driverActive buzzerAMS1117-3.3 regulator module
Part data: CC BY 4.0, free to reuse with credit to BoardPilot.