Skip to main content

Site Navigation

Your Account

Choose Language


Revision to Using external stepper motor drivers


[title|Using external stepper motor drivers]
== Overview ==
There are a few reasons for using external stepper motor drivers:
* You may want to use the expansion header to drive more extruders, but not want to use a [[Duex2 and Duex5 Features|Duex2 or Duex5 expansion board]] with the Duet 2 (Wifi or Ethernet) or the [|Duex4] with older generation Duets;
* You may want to drive larger stepper motors than the internal stepper drivers are rated for (currently 2.4A on the generation 2 Duets, and 2.0A on the generation 1 Duets);
* You may need 11 or 12 stepper drivers, which is two more than is supported by a generation 2 Duet + Duex5.
The expansion header has support for 5 external drivers on the Duet 2 and 4 on Duet0.8.5 or Duet0.6. The pinouts for the expansion header are important to make a note of when connecting external drivers:
The generation 2 Duets support two additional drivers connected to the CONN_LCD connector.
* [[Duet Wiring Diagrams|Duet 2 (WiFi and Ethernet) wiring diagrams]].
* [|Older Duet wiring Diagrams] .
If the drivers require no more than about 2mA @ 3V on the step, dir and enable inputs, then you can drive them directly from the expansion connector of the Duet. See the expansion connector pinouts above. Otherwise, you should use external drive ICs such as 74HCT04 to drive them. You can use the Duet [[expansion breakout board]] for this purpose.
The pinout for the two additional drivers supported by the CONN_LCD connector are as follows (the pins for drive 10 and its endstop input are on one side of the connector, and the pins for drive 11 are on the other side).
|! CONN_LCD pin
|! Signal
| Step 10
| Dir 10
| Enable 10
| Endstop 10
| Step 11
| Dir 11
| Enable 11
| Endstop 11
You can also pick up +3.3V and ground from CONN_LCD.
'''Important! External drivers must always be connected to the expansion connector of the Duet or to the CONN_LCD port.''' The 3-pin pads on the Duet near to the stepper drivers are test pads and are not suitable for connecting external drivers.
== Adding additional drivers ==
Most external drivers will want a STEP, DIR and EN (step, direction and enable) signal, for example the popular [] have the following pin out:
From experience, even though the stepsticks are 5V boards they work fine with the 3.3V from the Duet boards, however different StepStick clones might vary.
=== External Extruders Example ===
This example shows how to add one external stepper driver to drive a third extruder on a DuetWifi.
At the DuetWifi end the pins needed to connect to are highlighted in this image:
A custom cable is made up that connects these pins to the Stepstick.
In this example the Stepstick is mounted on on a RAMPS 1.3 pcb, just adding the minimal components needed to support 1 more driver. It was much quicker to use a RAMPS pcb that was spare than to use stripboard to make a custom stepper driver carrier for the stepstick driver, however that is all that the pcb is doing so directly connecting to the stepstick or using a stripboard will also work. It is important to connect a bulk capacitor of ~100uF between power and ground close to the stepstick.
At the RAMPS pcb end:
And the RAMPS PCB with the other components fitted:
== Using External Drivers for X/Y/Z Axis ==
If your motors are rated above about 2.8A and you are using the Duet WiFi, or above about 2A and you are using the Duet 0.6 or 0.8.5, or if they need higher voltage than the Duet can provide, then you need external stepper motor drivers. These may have optically isolated step/dir/enable inputs. For example, stepper motor drivers rated at up to 4.5A using the TB6600 stepper driver chip are widely available on eBay.
The same principle as described above for adding an additional extruder driver is used to add an external driver for a movement axis. What is also required is to remap the X/Y/Z axis to this external driver. The drive numbers are:
|! Number
|! Name
| 0
| X Axis
| 1
| Y Axis
| 2
| Z Axis
| 3
| E0 Axis
| 4
| E1 Axis
| 5
| E2 Axis (Expansion Header)
| 6
| E3 Axis (Expansion Header)
| 7
| E4 Axis (Expansion Header)
| 8
| E5 Axis (Expansion Header)
| 9
| E6 Axis (Expansion Header)
To remap the X, Y or Z motors to external drivers in RepRapFirmware 1,14 or later, use the [[Gcode#Section_M584_Set_drive_mapping|M584]] command.
== Configuring the Enable polarity and step timing ==
The Enable signals on the expansion connector are active low by default but you can change this using the [[Gcode#Section_M569_Set_axis_direction_and_enable_values|M569]] command. You can also set a minimum step pulse width in the M569 command; try 1us to 4us when using external drivers.