TMC2209 Stepper Driver

The TMC2209 is a silent StealthChop2 microstepping driver for bipolar stepper motors, controlled by STEP/DIR or single-wire UART.

TMC2209 Stepper Driver: Silent microstepping driver

What is the TMC2209 Stepper Driver?

The TMC2209 is a TRINAMIC (Analog Devices) stepper motor driver IC built onto a StepStick-format carrier such as the BigTreeTech TMC2209 V1.3. It drives one two-phase bipolar stepper motor from a motor supply (VM) of 4.75V to 29V, with integrated power stages rated for 2A RMS continuous and 2.8A peak. A separate logic supply (VIO) runs the digital pins at 3.3V or 5V, so it interfaces directly with an Arduino, ESP32, or a 3D printer control board.

Its signature feature is StealthChop2, a voltage-based chopper that makes the motor nearly silent at low and medium speeds. For high-speed torque and dynamic moves it switches to SpreadCycle, a cycle-by-cycle current control mode. The MicroPlyer interpolation unit smooths any input step rate up to 256 microsteps per full step, while native resolution of 8, 16, 32, or 64 microsteps is selected with the MS1 and MS2 pins.

The single-wire UART interface (PDN_UART) lets a microcontroller read and write the driver's registers to set current, microstepping, and mode in software instead of using the VREF trimmer. UART also unlocks StallGuard4 sensorless load detection and CoolStep adaptive current, which together enable sensorless homing without limit switches. In UART mode the MS1 and MS2 pins instead set the device address, so up to four drivers can share one line.

TMC2209 Stepper Driver pinout

PinFunctionType
EN ENDigitalDigital input
MS1 MS1DigitalDigital input
MS2 MS2DigitalDigital input
SPREAD SPREADDigitalDigital input
PDN_UART PDN/UARTUART single-wire UART / PDNBidirectional (GPIO)
PDN_UART_2 PDN/UARTUART single-wire UART / PDNBidirectional (GPIO)
STEP STEPDigitalDigital input
DIR DIRDigitalDigital input
VM VMPowerPower in
GND_MOT GNDPowerPower in
M2B M2BDigital stepper motor coil outputFree
M2A M2ADigital stepper motor coil outputFree
M1A M1ADigital stepper motor coil outputFree
M1B M1BDigital stepper motor coil outputFree
VIO VIOPowerPower in
GND_LOGIC GNDPowerPower in

Specifications

Operating voltage
3.3 V (max 29 V)
Interface
stepper
Dimensions
20.4 × 21 × 15.3 mm

Verified from the Tinkered component library · TRINAMIC / BigTreeTech TMC2209 V1.3 carrier.

Circuit requirements

  • Power the motor from VM (4.75-29V) and the logic side from VIO (3.3V or 5V); these are two distinct supplies and both must share a common ground with the controlling microcontroller.
  • Place a large electrolytic capacitor (at least 100uF) directly across VM and GND close to the driver. Motor supply spikes with no bulk capacitance are a common cause of instant driver death.
  • Set the motor current before running: either turn the VREF trimmer to match your motor's rated RMS current, or write the current registers over UART. Do not exceed the motor rating, and add a heatsink and airflow when running above roughly 1A RMS.
  • EN is active low: it must be pulled LOW to enable the output stage. STEP advances one microstep per rising edge and DIR sets rotation direction.
  • For UART, connect PDN_UART to the microcontroller through a 1k series resistor (single-wire, TX and RX shared). Tie SPREAD low for StealthChop or high to force SpreadCycle if you are using the standalone pins.

Board compatibility

The TMC2209 Stepper Driver connects to any of the microcontrollers supported in Tinkered. Mind the 3.3 V logic level on 3.3 V boards.

Common TMC2209 Stepper Driver mistakes

Hot-plugging the stepper motor

Connecting or disconnecting the motor coils (M1A/M1B, M2A/M2B) while VM is powered generates back-EMF spikes that destroy the driver. Always power down before touching the motor wiring.

Inserting the module backwards

The StepStick footprint is symmetric enough to plug in reversed. Match the EN and VM/GND labels to the silkscreen on your board; a reversed driver is usually fried on the first power-up.

Never setting the current limit

Out of the box the VREF trimmer or default registers may deliver far more or less current than your motor needs, causing overheating, thermal shutdown, or skipped steps. Tune VREF or set the current over UART for your specific motor.

Expecting torque from StealthChop at speed

StealthChop2 is silent but loses torque at higher velocities. For fast moves or reliable StallGuard sensorless homing you need SpreadCycle, so configure a StealthChop-to-SpreadCycle switching velocity rather than staying in StealthChop everywhere.

Forgetting the common ground

If the motor supply ground and the microcontroller ground are not tied together, STEP/DIR and UART signals float and the driver behaves erratically or ignores commands. Bond all grounds at one point.

TMC2209 Stepper Driver datasheet

Official TMC2209 Stepper Driver datasheetTRINAMIC / BigTreeTech TMC2209 V1.3 carrier

Popular TMC2209 Stepper Driver projects

Silent 3D printer upgrade

Swap noisy A4988 or DRV8825 drivers for TMC2209 modules to make X, Y, Z, and extruder motors run near-silently, and enable sensorless homing over UART to drop the endstop switches.

Desktop CNC and laser engraver

Drive the axis steppers with smooth 256-microstep interpolation for cleaner surface finish and quieter operation than legacy step-stick drivers.

Camera slider and motion timelapse

StealthChop keeps the motor inaudible on video while microstepping gives fluid, jitter-free pans and slides for cinematic shots.

Astrophotography star tracker

Precise microstepping and quiet current control make the TMC2209 a favorite for equatorial mounts and barn-door trackers that need slow, accurate sidereal motion.

Build with the TMC2209 Stepper Driver.

Drop the TMC2209 Stepper Driver into a circuit, write firmware, and simulate it in your browser, then deploy to real hardware. All in one editable Tinkered project.