Duet Wifi dual X motor config help needed

Newbie here to the duet wifi and reprap but im trying to get it configured on a custom 3d printer and im running into some issues… I was following this thread as a guide for some help… duet-wifi-independent-dual-x-y-axis-endstops-configuration/9787

my setup is basically:
2 motors x axis plugged into drive 0 and drive 4 (the Extruder 1 channel)
1 motor y, drive 1
2 motors z (to be used with a bl touch once installed) drive 2
1 motor extruder drive 3

for now all i have hooked up are the x motors and endstops for each. i had these working but when i started doing the joining and splitting of the two x motors with the scripts suggested in the thread mentioned above now nothing moves. Can someone take a peek at my coding and tell me where i screwed up?

config g
; Configuration file for Duet WiFi (firmware version 2.03)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v2.1.1 on

Sun Nov 03 2019 09:32:23 GMT-0500 (Eastern Standard Time)

M550 P"The Big One" ; set printer name

; Network

M587 S"XXXX" P"XXXXXXXX"

M552 S1 ; enable network

M586 P0 S1 ; enable HTTP

M586 P1 S0 ; disable FTP

M586 P2 S0 ; disable Telnet

; Motor remapping for dual x,

M584 X0:4 Y1 Z2 E3 U4 P3 ; drivers 0&4 for x, drivers 1 for y, drivers 2 for z, drivers 3 for Extruder,
M111 S0 ; debugging off
G21 ; work in millimeters
G90 ; send absolute coordinates…

M83 ; …but relative extruder moves

M555 P1 ; set firmware compatibility to look like reprapfirmware

; Axis Limits

M208 X0 Y0 Z0 U0 S1 ; set axis minimum

M208 X800 Y500 Z400 U800 S0 ; set axis maximum

; Endstops

M574 X1 S0 ; set active high endstops
M574 Y1 S0 ; set active high endstops
M574 U1 S0 ; set active high endstops
M574 Z1 S2 ; set endstops controlled by probe

; Drives

M569 P0 S0 ; physical x drive 0 goes reversed
M569 P1 S1 ; physical y drive 1 goes forwards
M569 P2 S1 ; physical z drive 2 goes forwards
M569 P3 S1 ; physical extruder drive 3 goes forwards
M569 P4 S0 ; physical X2 drive 4 goes reversed

M350 X16 Y16 Z16 U16 E16:16 I1 ; configure microstepping with interpolation

M92 X400.00 Y80.00 Z400.00 U400 E415:80.00 ; set steps per mm

M566 X600.00 Y600.00 Z12.00 U600 E120.00:600.00 ; set maximum instantaneous speed changes aka jerk speed (mm/min)

M203 X7200 Y7200 Z180.00 U7200 E1500.00:9000.00 ; set maximum speeds (mm/min)

M201 X500 Y500 Z20.00 U500 E10000.00:3000.00 ; set accelerations (mm/s^2)

M906 X1000 Y1000 Z1400 U1000 E1200:950 I30 ; set motor currents (mA) and motor idle factor in per cent

M84 S30 ; Set idle timeout

; Z-Probe

M307 H3 A-1 C-1 D-1 ; disable heater on PWM channel for BLTouch

M558 P9 H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds

G31 P500 X0 Y0 Z2.5 ; set Z probe trigger value, offset and trigger height

M557 X15:215 Y15:195 S20 ; define mesh grid

; Heaters

M305 P0 T100000 B4138 R4700 ; set thermistor + ADC parameters for heater 0

M143 H0 S120 ; set temperature limit for heater 0 to 120C

M305 P1 T100000 B4138 R4700 ; set thermistor + ADC parameters for heater 1

M143 H1 S280 ; set temperature limit for heater 1 to 280C

; Fans

M106 P0 S0 I0 F500 H-1 ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off

M106 P1 S1 I0 F500 H1 T45 ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on

; Tools

M563 P0 D0 H1 F0 ; define tool 0

G10 P0 X0 Y0 Z0 U0 ; set tool 0 axis offsets

G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C

; Custom settings are not defined

; Miscellaneous

M911 S10 R11 P"
M913 X0 Y0
G91
M83
G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss

HOME X CONFIG

; homex.g
; called to home the X axis
;
; generated by RepRapFirmware Configuration Tool v2.1.1 on Sun Nov 03 2019 09:32:23 GMT-0500 (Eastern Standard Time)

G91 ; relative positioning
G1 S2 Z5 F6000 ; lift Z relative to current position

M584 X0 U4 P5 ; Split x into 2
G1 S1 X-805 U-805 F900 ; move quickly to X axis endstop and stop there (first pass) S1 checks for endstop hit
; go back a few mm
G91
G1 S2 X5 U5 F1800 ; go back a few mm

G1 S1 X-805 U-805 F360 ; move slowly to X axis endstop once more (second pass) S1 checks for endstop hit
M584 X0:4 P3 ; Join U to X again
G91
G1 S2 Z-5 F2000 ; lower Z again
G90 ; absolute positioning

Thank you for any help!

I haven’t seen many duet users in these forums.

Are you sure about this line:

M584 X0 U4 P5 ; Split x into 2

From what I see you define only 4 axis (extruder isn’t axis from my understanding how RRF works). Also you don’t need multiple G91 one after another until you use G90.

Maybe my code will help you somehow (this is for LowRiderCNC with X, Y, Z, Y’, Z’. Still need to be polished but its working somehow in 2.05, hope 3.0 will came soon so will be able to fix all this mess):

; Configuration file for Duet WiFi (firmware version 2.05)
; executed by the firmware on start-up

; General preferences
G90 ; send absolute coordinates
M550 P"LowRiderCNC" ; set machine name

; Network
M552 S1 ; enable network
M586 P0 S1 ; enable HTTP
M586 P1 S0 ; disable FTP
M586 P2 S0 ; disable Telnet

; Drives
M569 P0 S1 ; X physical drive 0 goes forwards
M569 P1 S1 ; Y physical drive 1 goes forwards
M569 P2 S1 ; Z physical drive 2 goes forwards
M569 P3 S0 ; U(Y’) physical drive 3 goes backwards
M569 P4 S1 ; V(Z’) physical drive 4 goes forwards

M584 X0 Y1:3 Z2:4 U3 V4 P3 ; set drive mapping, set visible axis to 3
M350 X16 Y16 Z16 U16 V16 I1 ; configure microstepping with interpolation
M92 X200 Y200 Z3200 U200 V3200 ; set steps per mm
M566 X900 Y900 Z12 U900 V12 ; set maximum instantaneous speed changes (mm/min)
M203 X6000 Y6000 Z180 U6000 V180 ; set maximum speeds (mm/min)
M201 X500 Y500 Z20 U500 V20 ; set accelerations (mm/s^2)
M906 X300 Y300 Z300 U300 V300 I50 ; set motor currents (mA) and motor idle factor in percent

M84 S5 ; Set idle timeout to 5 seconds

; Axis Limits
M208 X0 Y0 Z0 U0 V0 S1 ; set axis minima
M208 X500 Y1000 Z280 U1000 V280 S0 ; set axis maxima

; Endstops
M574 X1 Y1 Z1 U1 V1 S1 ; set active high endstops

; Heaters
M140 H-1 ; disable heaters

; Tools
M563 P0 S"Spindle" ; define tool 0
G10 P0 X100 Y200 Z0 U200 V0 ; set tool 0 axis offsets

; Miscellaneous
T0 ; select first tool

M307 H2 A-1 C-1 D-1 ; disable heater 2 (E1) so we can use its pin to drive a spindle
M453 P2 R10000 F100 T0 ; turn on CNC Printer mode, set control via E1 (On/Off), assign spindle as tool
;------------------------------------------------------------------------------------------------------------------------

; homeall.g
; called to home all axes

G91 ; relative positioning

G1 H1 Z-285 F1800 ; move Z down stopping at the endstop
G1 H2 Z5 F1800 ; lift Z relative to current position

M584 Y1 U3 P4 ; split Y motor control to Y and U, show U axis

G1 H1 X-505 Y-1005 U-1005 F1800 ; move quickly to X, Y and U axis endstops and stop there (first pass)
G1 H2 X5 Y5 U5 F1800 ; go back a few mm
G1 H1 X-505 Y-1005 U-1005 F300 ; move slowly to X, Y and U axis endstops once more (second pass)

M584 Y1:3 P3 ; combine Y axes, hide U axis

M584 Z2 V4 P5 ; split Z motor control to Z and V, show V axis

G1 H1 Z-285 V-285 F1800 ; move quickly to Z and V axis endstops and stop there (first pass)
G1 H2 Z5 V5 F1800 ; go back a few mm
G1 H1 Z-285 V-285 F300 ; move slowly to Z and V axis endstops once more (second pass)

M584 Z2:4 P3 ; combine Z axes, hide V axis

G90 ; absolute positioning

G92 X0 Y0 Z0 ; set Z position to axis minimum
;------------------------------------------------------------------------------------------------------------------------

; homex.g
; called to home the X axis

G91 ; relative positioning

G1 H2 Z5 F1800 ; lift Z relative to current position

G1 H1 X-505 F1800 ; move quickly to X axis endstop and stop there (first pass)
G1 H2 X5 F1800 ; go back a few mm
G1 H1 X-505 F300 ; move slowly to Y axis endstop once more (second pass)

G1 H2 Z-5 F1800 ; lower Z again

G90 ; absolute positioning

G92 X0 ; set X position to axis minimum
;------------------------------------------------------------------------------------------------------------------------

; homey.g
; called to home the Y axis

G91 ; relative positioning

M584 Y1 U3 P4 ; split Y motor control to Y and U, show U axis

G1 H2 Z5 F1800 ; lift Z relative to current position

G1 H1 Y-1005 U-1005 F1800 ; move quickly to Y and U axis endstops and stop there (first pass)
G1 H2 Y5 U5 F1800 ; go back a few mm
G1 H1 Y-1005 U-1005 F300 ; move slowly to Y and U axis endstops once more (second pass)

M584 Y1:3 P3 ; combine Y axes, hide U axis

G1 H2 Z-5 F1800 ; lower Z again

G90 ; absolute positioning

G92 Y0 ; set Y position to axis minimum
;------------------------------------------------------------------------------------------------------------------------

; homez.g
; called to home the Z axis

G91 ; relative positioning

M584 Z2 V4 P5 ; split Z motor control to Z and V, show V axis

G1 H1 Z-285 V-285 F1800 ; move quickly to Z and V axis endstops and stop there (first pass)
G1 H2 Z5 V5 F1800 ; go back a few mm
G1 H1 Z-285 V-285 F300 ; move slowly to Z and V axis endstops once more (second pass)

M584 Z2:4 P3 ; combine Z axes, hide V axis

G90 ; absolute positioning

G92 Z0 ; set Z position to axis minimum
;------------------------------------------------------------------------------------------------------------------------

; pause.g
; called when a milling from SD card is paused

M5 ; spindle off
G91 ; relative positioning
G1 Z100 F360 ; lift Z by 100mm
G90 ; absolute positioning
;------------------------------------------------------------------------------------------------------------------------

; resume.g
; called before a milling from SD card is resumed

M3 S10000 ; spindle on, 10000
G1 R1 Z0 F360 ; go to 0mm above position of the last milling move
;------------------------------------------------------------------------------------------------------------------------

; stop.g
; called when M0 (Stop) is run (e.g. when a milling from SD card is cancelled)

M5 ; spindle off
;------------------------------------------------------------------------------------------------------------------------

; sleep.g
; called when M1 (Sleep) is being processed

M5 ; spindle off
;------------------------------------------------------------------------------------------------------------------------

This issue has been resolved from the official duet forums. Turns out you can not plug in the x2 motor into the E1 port and endstop either… once i moved to the E0 i was able to get things sorted out but here is my Gcode files as it stands right now and is working 100%

; Configuration file for Duet WiFi (firmware version 2.03)

; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v2.1.1 on Sun Nov 03 2019 09:32:23 GMT-0500 (Eastern Standard Time)

M550 P"The Big One" ; set printer name

; Network

M587 S"davet" P"helicopter"

M552 S1 ; enable network

M586 P0 S1 ; enable HTTP

M586 P1 S0 ; disable FTP

M586 P2 S0 ; disable Telnet

; Motor remapping for dual x, hidden?

M584 X0:3 Y1 Z2 U3 E4 ; drivers 0&4 for x, drivers 1 for y, drivers 2 for z, drivers 3 for Extruder,

G21 ; work in millimeters

G90 ; send absolute coordinates…

M83 ; …but relative extruder moves

; Axis Limits

M208 X0 Y0 Z0 U0 S1 ; set axis minimum

M208 X800 Y500 Z400 U800 S0 ; set axis maximum

; Endstops

M574 X1 S0 ; position low, active low

M574 Y1 S0 ; set active high endstops

M574 U1 S0 ; set position low, active low

M574 Z1 S2 ; set endstops controlled by probe

; Drives

M569 P0 S0 ; physical x drive 0 goes reversed

M569 P1 S1 ; physical y drive 1 goes forwards

M569 P2 S1 ; physical z drive 2 goes forwards

M569 P3 S0 ; physical x2 drive 3 goes reversed

M569 P4 S0 ; physical extruder drive 4 goes reversed

M350 X16 Y16 Z16 U16 E16 I1 ; configure microstepping with interpolation

M92 X400.00 Y80.00 Z400.00 U400.00 E415.00 ; set steps per mm

M566 X600.00 Y600.00 Z12.00 U600.00 E120.00 ; set maximum instantaneous speed changes aka jerk speed(mm/min)

M203 X7200.00 Y7200.00 Z180.00 U7200.00 E1500.00 ; set maximum speeds (mm/min)

M201 X500.00 Y500.00 Z20.00 U500.00 E10000.00 ; set accelerations (mm/s^2)

M906 X1000.00 Y1000.00 Z1400.00 U1000.00 E1200.00 I30 ; set motor currents (mA) and motor idle factor in per cent

M84 S30 ; Set idle timeout

; Z-Probe

M307 H3 A-1 C-1 D-1 ; disable heater on PWM channel for BLTouch

M558 P9 H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds

G31 P500 X0 Y0 Z2.5 ; set Z probe trigger value, offset and trigger height

M557 X15:215 Y15:195 S20 ; define mesh grid

; Heaters

M305 P0 T100000 B4138 R4700 ; set thermistor + ADC parameters for heater 0

M143 H0 S120 ; set temperature limit for heater 0 to 120C

M305 P1 T100000 B4138 R4700 ; set thermistor + ADC parameters for heater 1

M143 H1 S280 ; set temperature limit for heater 1 to 280C

; Fans

M106 P0 S0 I0 F500 H-1 ; set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off

M106 P1 S1 I0 F500 H1 T45 ; set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on

; Tools

M563 P0 D0 H1 F0 ; define tool 0

G10 P0 X0 Y0 Z0 U0 ; set tool 0 axis offsets

G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C

; Custom settings are not defined

; Miscellaneous

M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss

HOME X

; homex.g

; called to home the X axis

;

; generated by RepRapFirmware Configuration Tool v2.1.1 on Sun Nov 03 2019 09:32:23 GMT-0500 (Eastern Standard Time)

G91 ; relative positioning

G1 S2 Z5 F6000 ; lift Z relative to current position

M584 X0 U3 P4 ; Split x into 2

G1 H1 X-805 U-805 F900 ; move quickly to X axis endstop and stop there (first pass) S1 checks for endstop hit

; go back a few mm

G91

G1 S2 X5 U5 F1800 ; go back a few mm

G1 H1 X-10 U-10 F360 ; move slowly to X axis endstop once more (second pass) S1 checks for endstop hit

M584 X0:3 P3 ; Join U to X again

G92 X0
G90
G1 S2 Z-5 F2000 ; lower Z again

G90 ; absolute positioning

I had a video of it working but had to remove it as some asshat kept harrasing me about my build and why i was doing it and how he is so educated blah blah… everywhere i posted about it he would start trashing me so i removed everything… but its working now, thank you all for the help.

I’m glad you’re good now! Can you please place link to thread you mentioned as I would like to get more datails (hope other forum users would benefit from that also %))

/topic/13252/issues-setting-up-duet-wifi-with-dual-x-axis-motors-and-endstops/57

says i cant link url’s in my message just find your way to the duet forums then copy paste the above just after the dotcom.

That more than enough! Happy printing/milling!