The SA8302 is a high-performance motor driver module specifically designed to replace the traditional ULN2003. Utilizing modern Power MOSFET technology (PMOS+NMOS) instead of outdated Darlington transistors, it offers significantly lower heat generation, higher efficiency, and a more compact form factor.
| Feature | SA8302 | ULN2003 | Advantage |
|---|---|---|---|
| Architecture | Modern Power MOSFET | Darlington Transistors | Minimal heat, much higher efficiency |
| Voltage Drop | Ultra-low (400mΩ resistance) | High (approx. 0.9V - 1.5V) | Higher torque and output power |
| Standby Power | 0.1μA (Ultra-low) | Milliampere range | Battery friendly, extends project life |
| Continuous Current | 1.0A per Channel (3A Peak) | 500mA per Channel | Stronger drive for heavy-duty tasks |
| Protection | OTP & UVLO Included | None | Higher reliability, prevents burnout |
- Operating Voltage: 2V – 7V (Typical: 5V)
- Continuous Output Current:
- Stepper Mode: Up to 1A Phase Current
- DC Mode: 1A per channel (Dual channels)
- Peak Output Current: 3A (Instantaneous surge)
- On-Resistance: 400mΩ (HS+LS)
- Quiescent/Standby Current: 0.1μA
- Protection Features: Over-Temperature Protection (OTP), Under-Voltage Lockout (UVLO)
Download SA8302 Module Schematics files (PDF)
- Board Size: 38.4 mm × 22.4 mm
- Mounting Hole Spacing: 15.2 mm (Horizontal) / 16 mm (Vertical)
- Hole Diameter: 4.7 mm (Compatible with standard M4 screws/standoffs)
// Define Control Pins for Motor Channel A & B
#define INA 5
#define INB 6
// Define Control Pins for Motor Channel C & D
#define INC 9
#define IND 10
void setup() {
// Set all motor control pins as OUTPUT
pinMode(INA, OUTPUT);
pinMode(INB, OUTPUT);
pinMode(INC, OUTPUT);
pinMode(IND, OUTPUT);
}
void loop() {
// --- Step 1: Motors Rotate Forward ---
analogWrite(INA, 255); // Set Port A HIGH
analogWrite(INB, 0); // Set Port B LOW
analogWrite(INC, 255); // Set Port C HIGH
analogWrite(IND, 0); // Set Port D LOW
delay(2000); // Wait for 2 seconds
// --- Step 2: Motors Reverse Direction ---
analogWrite(INA, 0); // Set Port A LOW
analogWrite(INB, 255); // Set Port B HIGH
analogWrite(INC, 0); // Set Port C LOW
analogWrite(IND, 255); // Set Port D HIGH
delay(2000); // Reverse for 2 seconds, then repeat loop
}This module is perfectly compatible with the 28BYJ-48 4-phase 5-wire stepper motor, commonly used in DIY robotics.
The "28BYJ-48" follows a specific naming convention: "28" indicates a maximum outer diameter of 28mm, while "B" identifies it as a Stepper Motor. "Y" signifies a Permanent Magnet type, and "J" denotes a Geared motor with a 1:64 reduction ratio. Finally, "48" indicates its compatibility with 4-beat or 8-beat drive sequences.
The board features a standard XH2.54 5-pin interface. Simply plug the white 5-wire connector of the 28BYJ-48 motor directly into the onboard socket. No soldering or extra wiring is required.
The 28BYJ-48 specifications:
- Stride Angle: 5.625° × 1 / 64 (Reduction ratio 1:64)
- Steps per Revolution (Internal): 64
- Total Steps for 360° Output: 4096 steps (64 × 64)
- Performance: Due to the low voltage drop of the SA8302, the motor achieves higher torque (>300g.cm) and runs cooler than when used with standard ULN2003 drivers.
According to the specification, the stepper motor has a stride angle of 5.625°. Therefore, the number of steps per internal revolution is 360° / 5.625° = 64. Thus, the STEPS parameter is set to 64.
// Initialization: STEPS (steps per internal revolution), pin1, pin2, pin3, pin4
Stepper stepper(STEPS, pin1, pin2, pin3, pin4);// Sets the motor speed in RPM (Revolutions Per Minute)
stepper.setSpeed(SPEED); When setting the speed (e.g., setSpeed(200)), please note that this value refers to the internal motor speed before the gear reduction. Due to the 1:64 gear ratio, the actual output shaft speed will be:
speed = 200/64 = 3.125 rpm
To achieve one complete 360° rotation of the output shaft, the total number of steps required is:
steps = (360/5.625)*64 = 4096
The module is controlled via four logic signals: INA, INB, INC, and IND.
| SA8302 Pin | Arduino Uno Pin | ESP32 Pin | Function Description |
|---|---|---|---|
| G | GND | GND | Power Ground |
| V | 5V | 5V | Power Supply (2-7V) |
| INA | 5 | 17 | Input A (Stepper Phase A) |
| INB | 6 | 16 | Input B (Stepper Phase B) |
| INC | 9 | 15 | Input C (Stepper Phase C) |
| IND | 10 | 14 | Input D (Stepper Phase D) |




