Main question: Does somebody already have some experience with using tri-state mode in a sketch? It seems to be possible, changing pinMode() - see this link.
Background information: I am just planning to set up some testing with Trinamic's silent stepper drivers (TMC2100 and 2130). They are generally pin compatible with commonly used A4988 / DRV8825, but imho they have some advantages by automatically reducing the coil current down to 34% when the motor stands still - thus reducing energy consumption by ca. 90%.
In my most recent project I am currently using 2 DRV8825 for driving two stepper motors. While stepper2 is only activated every 10 sec or so for about 1-2 seconds and then disabled (no torque required in the idle period), stepper1 has to be always on to ensure enough torque all the time.
Result: Heating problems as all the electronics, buttons, display, rotary encoder, connectors incl. power supply are housed in a rather small DIN rail cabinet.
My options so far:
- Active cooling is NO option (due to some restrictions I have to follow).
- The current is already at its lowest end (around 1.0A) where still enough torque is available for stepper1.
- Shutting off stepper1 is no option - due to the required torque all the time.
One might say that 1.0A with passive cooling is ok for a DRV8825 looking at its specs, but the device gets pretty hot and in general it's no good on the long run for the device itself plus the other electronics (e.g. capacitors) in the cabinet. It's set up for an industrial environment where it has to work at least 2-3 years on a 12 hours shift 6 days a week.
-> That's why I came to silent steppers which are the only ones at the given size, but I was not sure if I could use them due to the TMC tri-state settings (at this point in time I want to use the current pcb design which is set up in a way that I can modify the settings of DRV8825 by an Arduino sketch). So I want to replace stepper1 driver with a TMC and see if the heating problem goes away.
Is my idea ok, or did I overlook something?