

The TMC2209 SilentStepStick, manufactured by Trinamic (Part ID: TMC2209 Board), is a high-performance stepper motor driver designed for applications requiring precise and quiet operation. It is widely used in 3D printers, CNC machines, and other motion control systems. The TMC2209 features advanced microstepping capabilities, stall detection, and UART-based configuration, making it a versatile and efficient choice for stepper motor control.








| Parameter | Value |
|---|---|
| Supply Voltage (V_M) | 4.75V to 29V |
| Logic Voltage (V_IO) | 3.3V or 5V |
| Maximum Motor Current | 2.0A RMS (2.8A peak) |
| Microstepping Resolution | Up to 1/256 |
| Communication Interface | UART |
| Standby Current | Configurable via UART |
| Stall Detection | Yes (StallGuard™) |
| CoolStep™ Current Control | Yes |
| SpreadCycle™ Chopper Mode | Yes |
| StealthChop2™ Mode | Yes (for ultra-quiet operation) |
| Dimensions | 15mm x 20mm |
The TMC2209 SilentStepStick has a standard pinout for stepper motor drivers. Below is the pin configuration:
| Pin Name | Description |
|---|---|
| GND | Ground connection |
| V_M | Motor power supply (4.75V to 29V) |
| V_IO | Logic voltage input (3.3V or 5V) |
| EN | Enable pin (active low) |
| DIR | Direction control input |
| STEP | Step pulse input |
| MS1, MS2 | Microstepping resolution selection pins |
| UART | UART communication pin for configuration |
| DIAG | Diagnostic output (e.g., for stall detection) |
| A1, A2 | Motor coil A connections |
| B1, B2 | Motor coil B connections |
Below is an example of how to control the TMC2209 SilentStepStick with an Arduino UNO:
// Example code to control a stepper motor using the TMC2209 SilentStepStick
// Connect STEP, DIR, and EN pins to Arduino digital pins 2, 3, and 4 respectively.
#define STEP_PIN 2 // Pin connected to STEP
#define DIR_PIN 3 // Pin connected to DIR
#define EN_PIN 4 // Pin connected to EN
void setup() {
pinMode(STEP_PIN, OUTPUT); // Set STEP pin as output
pinMode(DIR_PIN, OUTPUT); // Set DIR pin as output
pinMode(EN_PIN, OUTPUT); // Set EN pin as output
digitalWrite(EN_PIN, LOW); // Enable the driver (active low)
digitalWrite(DIR_PIN, HIGH); // Set direction (HIGH or LOW)
}
void loop() {
// Generate step pulses to move the motor
digitalWrite(STEP_PIN, HIGH); // Set STEP pin HIGH
delayMicroseconds(500); // Wait for 500 microseconds
digitalWrite(STEP_PIN, LOW); // Set STEP pin LOW
delayMicroseconds(500); // Wait for 500 microseconds
}
Motor Not Moving:
Overheating:
Noisy Operation:
Stall Detection Not Working:
UART Communication Issues:
Q: Can the TMC2209 operate without UART?
A: Yes, the TMC2209 can operate in standalone mode using the STEP, DIR, and EN pins. However, UART is required for advanced features like StallGuard™ and CoolStep™.
Q: What is the maximum microstepping resolution?
A: The TMC2209 supports up to 1/256 microstepping for ultra-smooth motion.
Q: Can I use the TMC2209 with a 12V or 24V power supply?
A: Yes, the TMC2209 supports a motor power supply voltage range of 4.75V to 29V, making it compatible with 12V and 24V systems.
Q: How do I enable StealthChop2 mode?
A: StealthChop2 is enabled by default in most configurations. For advanced tuning, use UART to configure the driver.
Q: Is the TMC2209 compatible with other Trinamic drivers?
A: Yes, the TMC2209 shares a similar pinout with other Trinamic drivers, such as the TMC2208, making it easy to upgrade or replace.