TMC2209 Stepper Driver ReadOut

Heya Arduino Fans!

I recently wanted to swap from DRV8825 to the TMC2209 stepper motor drivers.
I just got them delivered: (系统发生错误).
They work perfectly fine as replacement together with my ArdunioUno and Nano.
I was just wondering about the so called "Diagnostic" Pin, which suggests to be readable (and I think its used for the sensorless homing feature - StallGuard afaik).
To get this into context, and to finally deliver a real question:

My project currently just uses one motor in continuus rotation at set speed (using the AccelStepper lib.). However, I would like to use a read out from the stepper driver if the motor starts skipping steps (due to high rotational speeds) or if the required torque for the rotations exceeds a specific limit. Is this possible without using a motorshield? I couldn't find any (for me) understandable explanations on the web.

Help is highly appreciated!

Please post a link to the datasheet for the TMC2209 driver chip. It should have all the details you need.

A schematic for the module would also be useful.


Here is the Link to the Datasheet of the TMC2209. Since. I am pretty new to the matter of microcontrolling it somewhat overstrains my knowledge:

The only schematic I could find (with similar pinning, but from another manufacturer) is attached.

Image from Reply #2 so we don't have to download it. See this Simple Image Posting Guide


From Section 2.2 it seems that the DIAG pin goes HIGH when there is an error and you have to briefly pull the ENN pin HIGH to reset the error. I'm not sure whether they consider a stall to be an error.

However your schematic does not show whether the DIAG pin is accessible on your module.


Okay so I just gonna try a digital.Read on the Pin and see what I come up with. I actually hoped to be able to diversify the error at some point (or maybe set the limit for an event being count as error).

THanks for your help so far!