Reassigning all drivers to a single axis
I have just set up a Duet 3 6HC in standalone mode with 6 Nema 23 steppers. I want to assign all 6 on board drivers to a single axis (I have been attempting to use the X axis but Im not concerned which I use). When I use M584 in my config file, if I assign drivers 0.0 to 0.5 to the X axis, only 0.0 runs when I prompt a move in the X axis. If I assign 0.1 to 0.5 to X, all drivers run except for 0.0. Am I missing something that is required, is it necessary to assign a driver to each axis or something similar? I have appended my config file for reference. Thanks in advance for any help.
; Configuration file for Duet 3 (firmware version 3)
; executed by the firmware on start-up
; generated by RepRapFirmware Configuration Tool v3.1.4 on Tue Oct 27 2020 14:34:47 GMT+0000 (Greenwich Mean Time)
; General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Project SL" ; set printer name
M552 P192.168.1.11 S1 ; enable network and acquire dynamic address via DHCP
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet
M569 P0.0 S1 ; physical drive 0.0 goes forwards
M569 P0.1 S1 ; physical drive 0.1 goes forwards
M569 P0.2 S1 ; physical drive 0.2 goes forwards
M569 P0.3 S1 ; physical drive 0.3 goes forwards
M569 P0.4 S1 ; physical drive 0.4 goes forwards
M569 P0.5 S1 ; physical drive 0.5 goes forwards
M584 X0.1:0.2:0.3:0.4:0.5 ; set drive mapping
M350 X16 I1 ; configure microstepping with interpolation
M92 X80.00 ; set steps per mm
M566 X900.00 ; set maximum instantaneous speed changes (mm/min)
M203 X6000.00 ; set maximum speeds (mm/min)
M201 X500.00 ; set accelerations (mm/s^2)
M906 X700 Y700 Z700 E700:700:700 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout
; Axis Limits
M208 X0 Y0 Z0 S1 ; set axis minima
M208 X230 Y210 Z200 S0 ; set axis maxima
M574 X1 S1 ;
M558 P0 H5 F120 T6000 ; disable Z probe but set dive height, probe speed and travel speed
M557 X15:215 Y15:195 S20 ; define mesh grid
M950 F0 C"out3" Q500 ; create fan 0 on pin out3 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"out4" Q500 ; create fan 1 on pin out4 and set its frequency
M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on
M563 P0 D0 H1 F0 ; define tool 0
G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets
G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C
; Custom settings are not defined
deckingman last edited by
@tomlj That's an odd one. Perhaps there is something embedded deep in the firmware which means that at least 2 axes have to be defined? Dunno- just a guess. But how about creating another axis like this....
M584 X0.0 Y0.1 Z0.2 U0.0:0.1:0.2:0.3:0.4:0.5 P4
This will mean that any G1 X Y or Z move will work as normal but a a G1 U move should run all 6 motors. The "P4" is necessary to make the U axis visible and to be able to control it.
Give that a try and let us know how it goes.
@deckingman Thank you for the suggestion. If I add the line as suggested then the U axis doesnt even show up on DWC, and sending a G1 U** move doesnt work. However, if I remove any one of the drives from the list for the U axis(i.e 0.0) then it does show up, and runs the assigned five motors as before. The X,Y,Z moves work as normal as you said, do you think its fair to assume this is a firmware flaw of some sort? Thanks again.
The maximum number of drivers per axis is currently 5. You will get an error message if you try to assign size drivers to one axis. To see errors from commands in config.g, run M98 P"config.g".
I can increase it to 6 on Duet 3 if you like.
@dc42 Though I'm sure its low on any of your to-do lists, it would be greatly appreciated if you could increase the max to 6 in a future update!
May I ask why you need all 6 drivers on a single axis?
@Phaedrux this is part of a grant-funded feasibility study for a new technology that is being developed. It requires 6 Nema 23 motors (about which I believe you assisted with my other question on power supply sizing) to run synchronously on a global radial hub with stall detection and reasonably high current per driver. The Duet 3 is capable of this and is really good value compared to alternatives, and I have been an avid proponent of the Duet series for a number of years in most applications that require stepper control. I would rather have all drivers on one axis to avoid a situation where, most likely by accident, motors are working against others that are in a locked state, which could damage the mechanism.
Interesting. I hope you'll be able to share more specifics when it's up and running.
@Phaedrux unfortunately there is a media embargo on the specifics of the project currently, but we will undoubtedly share more news when permitted!
deckingman last edited by
@tomlj Another possibility that might work, depending on your requirements, would be to create a tool with 6 extruders and use an extruder move to drive them. Something like this
M563 P0 S"6 Drives" D0:1:2:3:4:5 H1 ;
Not sure if you'd be forced to assign a heater as well- maybe not. But in any case, use M302 to allow cold extrude.
Then you'd need to set the mixing ratio e.g.
M567 P0 E1.00:1.00:1.00:1.00:1.00:1.00 ; set mixing ratio to 100% for every extruder
Then a G1 Enn Fnn should drive all 6 motors concurrently. I know this is possible because I happen to have a machine with 6 extruders feeding a 6 input mixing hot end.