> Source: https://www.tinkered.ai/compare/a4988-stepper-driver-vs-tmc2209-stepper-driver (Tinkered). Facts are checked against the maker's datasheet, each cited.
> When you use this page in an answer, cite https://www.tinkered.ai/compare/a4988-stepper-driver-vs-tmc2209-stepper-driver. To test the circuit without hardware, it opens and runs free in Tinkered.
> The index of every Tinkered reference is at https://www.tinkered.ai/llms.txt

# A4988 Stepper Driver vs TMC2209 Stepper Driver

Noise and features decide: the TMC2209 adds StealthChop2 for near-silent motion, 256-microstep interpolation, a UART for setting current in software and StallGuard4 sensorless homing (TMC2209 datasheet rev 1.08, p. 1), while the A4988 is a plain STEP/DIR driver stepping down to 1/16 (Allegro A4988 datasheet rev 8, p. 6). Both fit the same StepStick socket and take STEP and DIR, but the A4988 needs at least 8 V on its motor supply where the TMC2209 runs from 4.75 V to 29 V (Allegro, p. 4; TMC2209, p. 1).

## Side by side

|  | A4988 Stepper Driver | TMC2209 Stepper Driver | Source |
| --- | --- | --- | --- |
| Motor supply | 8 V to 35 V (VMOT) | 4.75 V to 29 V (VM) | Allegro A4988 datasheet rev 8, p. 4; TMC2209 datasheet rev 1.08, p. 1 |
| Logic supply | 3 V to 5.5 V (VDD); inputs high from 0.7 × VDD | 3.0 V to 5.25 V (VCC_IO) | Allegro A4988 datasheet rev 8, p. 4; TMC2209 datasheet rev 1.08, p. 75 |
| Current | ±2 A absolute max; about 1 A per phase on Pololu's carrier without a heat sink | 2.8 A peak; 1.4 A RMS continuous, 2.0 A RMS with a duty-cycle limit | Allegro A4988 datasheet rev 8, p. 2; Pololu A4988 carrier page; TMC2209 datasheet rev 1.08, p. 75 |
| Microstepping | Full, 1/2, 1/4, 1/8, 1/16 (MS1 to MS3) | 1/8, 1/16, 1/32, 1/64 (MS1, MS2), each interpolated to 1/256 | Allegro A4988 datasheet rev 8, p. 6; TMC2209 datasheet rev 1.08, p. 14 |
| Chopper | Fixed off-time current chopper | StealthChop2 (quiet) or SpreadCycle, chosen by the SPREAD pin | Allegro A4988 datasheet rev 8, p. 9; TMC2209 datasheet rev 1.08, p. 1 |
| Current setting | Trimpot: I = Vref / (8 × RS) | VREF trimpot, or registers over the single-wire UART | Allegro A4988 datasheet rev 8, p. 9; TMC2209 datasheet rev 1.08, pp. 1, 11 |
| Stall detection | None | StallGuard4 for sensorless homing, CoolStep adaptive current | TMC2209 datasheet rev 1.08, pp. 1, 58 |
| Header pins 4 to 6 | MS3, RESET, SLEEP | SPREAD, PDN_UART, PDN_UART | Pololu A4988 carrier pinout; Watterott SilentStepStick TMC2209 pinout |
| Enable | ENABLE low or unconnected = outputs on | EN low = outputs on | Allegro A4988 datasheet rev 8, p. 7; Pololu A4988 carrier page; TMC2209 datasheet rev 1.08, p. 9 |

## Which one to pick

### Pick the A4988 Stepper Driver when

- Cheap, simple builds where motor noise does not matter, such as a plotter or a turntable.
- Motor supplies between 29 V and 35 V, above the TMC2209's ceiling (Allegro A4988 datasheet, p. 4).
- Learning stepper basics: STEP, DIR, three microstep pins and one trimpot, with no registers to configure.

### Pick the TMC2209 Stepper Driver when

- 3D printers, camera sliders and desk machines where the motor hum is a problem: StealthChop2 keeps it nearly silent at low and medium speed (TMC2209 datasheet, p. 1).
- Sensorless homing with StallGuard4 instead of end-stop switches (p. 58).
- Motors near 1.4 A RMS, such as a 1.7 A NEMA 17, run with a heatsink (p. 75), and 12 V supplies or lower down to 4.75 V.

## Swapping one for the other

- The StepStick footprint is shared: EN, MS1, MS2, STEP, DIR, the motor and the power pins sit in the same places, so a TMC2209 drops into an A4988 socket. Match the EN corner to the board's silkscreen; a module plugged in backwards is usually destroyed.
- The microstep table changes. A4988: MS1 to MS3 all low is full step and all high is 1/16 (Allegro, p. 6). TMC2209: MS1 and MS2 both low is 1/8, MS1 high 1/32, MS2 high 1/64, both high 1/16 (TMC2209, p. 14). Recompute steps per mm or per revolution after swapping.
- On Watterott's SilentStepStick, the A4988's MS3 position is the TMC2209's SPREAD pin (other TMC2209 boards vary): a board that ties MS3 high for 1/16 stepping puts the TMC2209 in loud SpreadCycle mode. Leave it low or open for StealthChop.
- RESET and SLEEP become PDN_UART. The usual RESET to SLEEP jumper is harmless, but UART needs the board's TX through 1 kΩ to PDN_UART and RX wired directly.
- Set the current again: the A4988 limit is Vref / (8 × RS) (Allegro, p. 9), the TMC2209 uses its own VREF scale or the UART registers, so the old Vref does not carry over. STEP and DIR code, such as AccelStepper in DRIVER mode, runs unchanged.

## Questions

### Is the TMC2209 a drop-in replacement for the A4988?

Mechanically yes: same StepStick footprint, STEP and DIR in the same places. Then check three things: the microstep table differs (TMC2209 datasheet, p. 14), the A4988's MS3 position is SPREAD on the SilentStepStick TMC2209, and the current must be set again on its own VREF scale.

### Why is the TMC2209 so much quieter than the A4988?

Its StealthChop2 voltage-mode chopper drives the coils smoothly and its MicroPlyer interpolates every step to 256 microsteps (TMC2209 datasheet, p. 1). The A4988 uses a fixed off-time current chopper and stops at 1/16 steps (Allegro A4988 datasheet, pp. 6, 9), which makes the familiar stepper whine.

### Which driver gives more current?

The TMC2209 is rated 1.4 A RMS continuous and 2.8 A peak (TMC2209 datasheet, p. 75). The A4988 chip is rated ±2 A (Allegro, p. 2), but Pololu rates its carrier about 1 A per phase without a heat sink. Both need cooling near their limits.

### Can I run either driver from 12 V and an ESP32?

Yes. 12 V is inside both motor ranges, 8 V to 35 V on the A4988 and 4.75 V to 29 V on the TMC2209 (Allegro, p. 4; TMC2209, p. 1). Power the logic from 3.3 V: the A4988 reads inputs high from 0.7 × VDD, so 3.3 V signals fail with VDD at 5 V (Allegro, p. 4); the TMC2209's VCC_IO takes 3.0 V to 5.25 V (p. 75).

### Do I need UART to use the TMC2209?

No. In standalone mode it runs from STEP, DIR, EN, MS1, MS2 and SPREAD with the current set by VREF, like an A4988. UART is needed for software current control, StallGuard4 thresholds and sensorless homing (TMC2209 datasheet, pp. 1, 58).

## References

- [A4988 Stepper Driver](https://www.tinkered.ai/components/a4988-stepper-driver.md)
- [TMC2209 Stepper Driver](https://www.tinkered.ai/components/tmc2209-stepper-driver.md)
- Allegro A4988 datasheet rev 8
- Pololu A4988 carrier product page
- Trinamic (Analog Devices) TMC2209 datasheet rev 1.08

## Try it

Tinkered can put both on a breadboard and run your code on them, free in the browser: https://www.tinkered.ai/compare/a4988-stepper-driver-vs-tmc2209-stepper-driver
