What it is
A bench tool for calibrating servos. A PCA9685 driver gives the ESP32 twelve servo channels, and the firmware saves each servo's minimum, centre and maximum pulse (in microseconds) on the board, so sweeps and angle moves use the servo's true limits instead of the datasheet's.
Three knobs set the pulse width, the channel and a ±50 µs fine adjustment, and a MARK button records the next of min, centre or max. A Nextion display shows what's happening. The Bench app has a matching Servo tester panel with sliders and min / centre / max marks for each channel.
Servos it handles
| Channels | Servo | Range |
|---|---|---|
| 0–3 | DS3218MG | 270° |
| 4–7 | MG996R | 180° |
| 8–11 | SG90 | 180° |
What it taught me about power
- A servo driver has two power inputs: VCC for the chip's logic and V+ for the servos. They meet only at ground.
- Never power servos from the ESP32 or anything on its rails. Shared ground is required; shared + is never OK.
- The MB102 module gave 4.84 V from 5.36 V in. That's fine for an SG90, but the MG996R and DS3218MG need the adapter wired straight to V+ with thick wire.