Using external stepper motor drivers
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 Duex 2 or Duex 5 expansion board with the Duet 2 (Wifi or Ethernet) or the Duex 4 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 Duet 2 + Duex 5.
The expansion header has support for 5 external drivers on the Duet 2. The pinouts for the expansion header are important to make a note of when connecting external drivers:
The generation 2 Duets also support two additional drivers connected to the CONN_LCD connector.
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).
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.
These stepper driver modules generally have optically isolated inputs labelled STEP+, STEP-, DIR+, DIR-, ENA+ and ENA-.
If they 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. Connect STEP+ and DIR+ to your chosen Step and Dir pins on the expansion connector or CONN_LCD, and connect STEP- and DIR- to ground. Connect ENA+ to +3.3V and connect ENA- to your chosen Enable pin.
If your external stepper drivers need more than 3V or more than about 2mA then you should use the Duet Expansion Breakout Board or some other method to provide differential drive signals.
These take single-ended STEP, DIR and EN (step, direction and enable) signals, for example the popular http://reprap.org/wiki/StepStick have the following pin out:
Even though the stepsticks are nominally 5V boards, nearly all stepper driver chips are specified for 3.3V operation too.
This example shows how to add one external stepper driver to drive a third extruder on a Duet 2 Wifi.
At the Duet 2 Wifi 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:
An alternative to using a RAMPS PCB is to use an adapter such as this one http://hobbycomponents.com/motor-drivers.... Note that the pin labelled 5V must be connected to 3.3V on the Duet, not to 5V.
To use external drivers to drive X, Y and/or Z axes instead of the internal ones, you need to remap the X/Y/Z axis to the external driver. The drive numbers are:
|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)|
|10||10 (LCD_CONN Header)|
|11||11 (LCD_CONN Header)|
To remap the X, Y or Z motors to external drivers in RepRapFirmware 1,14 or later, use the M584 command.
The Enable signals on the expansion connector are active low by default but you can change this using the R parameter in the M569 command. You can also set a minimum step pulse width and other timings in the M569 command using the T parameter; try 1us to 4us when using external drivers.