What it is
The first stepper rig on the way to the pen plotter. An ESP32 drives a 28BYJ-48 through the PCA9685 and a ULN2003 board, with the coils set fully on or off. It turns cleanly up to 18 RPM, and a Nextion dial shows the shaft position, the lit coils and a miniature of the test axis.
Measurements
| What | Result |
|---|---|
| Half-steps per turn | 4096 (ten turns stopped about 1° past the mark) |
| Top speed tested | 18 RPM, clean |
| Test axis travel | 69.92 mm per turn, 17.07 µm per half-step |
| Backlash on the bare axis | about 0.01 mm |
Why it only hummed at first
It took four problems to get a clean turn. The supply sagged to 3.84 V until the adapter went up to 7 V. One motor's gearbox had seized. The real cause was the PCA9685's 50 Hz PWM: it only applies new coil settings at the end of each cycle, so a coil could change every 20 ms at best. Running it at 1500 Hz let a coil change every 0.67 ms.
A stepper that misses steps always ends up short of the target. If it ends up past it, it wasn't stepping properly at all.

