Driving micro steppers with DuetWiFi
-
I am trying to use the duetWiFi built in stepper drivers to move two micro steppers. The steppers will be used to switch tool on a printer.
The diameter is 15mm and the
- inductance per phase is 14mH
- resistance per phase is 39 ohm
- max current 100mA
I am using 24V.
The problem is that the motors move unpredictable and even continue to move when the move is finished. It also get very hot. The signal on the scope is mostly noice and it is impossible to get a clean trigger on the signal. I have set the the current to 100mA, and I think this is the minimum you can set. If I connect a small, but more normal stepper, everything works as expected.
Does anyone have experience in how to drive such small motors using the Trinamic chip?
Would it help to connect two power resistor in series? 200ohm?
Is there any setting in the Trinamic driver that can be changed to improve the situation?
-
The stepper driver circuit on the Duet WiFi isn't designed to work well with stepper motor currents that low. Changing the values of the two sense resistors on the PCB would solve it, but that's not an easy modification.
The Duet Maestro might handle those motors better, because it is designed for lower currents and the current can be set in steps of 50mA instead of 100mA.
Here are some solutions you could try:
-
Connect an inductor in parallel with each phase of the motor. For example, you could choose a 4.7mH inductor with a suitable current rating such as one of these https://uk.farnell.com/w/c/passive-components/inductors/power-inductors/prl/results?inductance=4.7mh&rms-current-irms-=400ma|410ma|430ma|460ma|480ma|490ma|550ma. The net inductance of the winding in parallel with the stepper motor would be 3.5mH (same formula as for resistors in parallel). The stepper motor would take (3.5/14) = 25% of the current, the inductor would take the rest. So you could then try setting the current to 300mA or 400mA.
-
Instead of using one of the on-board drivers, connect a stepstick-type driver to either CONN_LCD or the expansion connector, and use that to drive your micro stepper.
-
Your idea of using a resistor in series with each phase should work, but only if you select full step mode (it's worth trying full step mode anyway, even without the resistors). The value of each resistor would need to be (24/desired_current) - 39 ohms. So 220 ohms would give you 93mA per phase. The resistors will dissipate about 2W each.
-
-
OK, thank you!
-
Hmm, would it work to connect a stepper with similar inductance (4.7mH) in parallel to start with?
-
I was hoping to get away without doing that, but there are some sticks that are made for low voltage, like 5V, that could be used.
-
Can you please expand on why full step mode is better.
-
The chip on the duetWiFi doesn't have Trinamic StealthChop, but would that mode improve the capability to use micro steppers?
-
-
@urban said in Driving micro steppers with DuetWiFi:
OK, thank you!
- Hmm, would it work to connect a stepper with similar inductance (4.7mH) in parallel to start with?
Yes.
- I was hoping to get away without doing that, but there are some sticks that are made for low voltage, like 5V, that could be used.
A standard stepstick run from 24V should work, as long as you can adjust the pot to get a low enough current.
- Can you please expand on why full step mode is better.
Normally, the driver uses chopping to regulate the current in the stepper motor coils. This relies on the stepper motor being predominantly inductive. With the large value series resistors, the load will be more resistive than inductive, so chopping won't work. However, in full step mode it doesn't need to work, all the driver needs to be able to do is turn each phase on or off. You would set the stepper current to a larger value than the drivers can provide via the resistors, so that the chopper wouldn't operate.
- The chip on the duetWiFi doesn't have Trinamic StealthChop, but would that mode improve the capability to use micro steppers?
StealthChop doesn't work well at the bottom end of the current range, so again it would be necessary to increase the values of the sense resistors.