The Trinamic stepper motor driver chips are known for their tiny form factor, simple interfaces and overall great performance. The TMC2208, TMC2209, and TMC2210 all have a UART interface that lets you control your stepper motors not with STEP and DIR pins but also via a (software) serial interface from any microcontroller or even a UART/USB converter.

TMC2209 Arduino Shield
A TMC2209 stepper motor shield for Arduino

This makes the controller a very versatile, high-performance stepper motor controller that only needs a few pins on your microcontroller. On top, the TMCs offer features like sensorless homing and stealth chop, making them basically noise-less while running (really fascinating).

To get started with these chips (and to use them in projects), I designed this Arduino shield to make use of the TMC2209, without the need for these strange form factor step stick things.

Main features:

- The board has an XT30 connector for power supply, but it can also be powered using the VIN of the Arduino. The power source can be selected by the jumper on the left above the XT30.

- A reset button can be used to reset the Arduino, as the Arduino reset is not accessible anymore.

- voltage divider for voltages up to 30v on A0 (TMC2209 handles only 29v)

- selectable solder bridges to select the current (if you choose not to use the UART interface)

- power led

- large capacitor for motor supply voltage

- two TVS diodes for voltage spice reduction

- three different locations for a JST connector (motor vendors have different pin locations on the connectors)

The board works and can be directly ordered from you PCB manufacturer of your choice.

An example code can be found in the repo.

If you choose, you should also be able to install a TMC2208 on the board.


A NEMA17 motor can be connected to the four mounting holes on the board.
Board PCB
The markings are very readable (thanks to KiCAD7!) All TMC2209 pins are connected to DIO pins of the Arduino.
3d view board
Even better in 3D