I recently wanted to swap from DRV8825 to the TMC2209 stepper motor drivers.
I just got them delivered: (https://eryone.com/TMC2209/show/83.html).
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.
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).