I am running a new custom IDEX setup but when I change to T2 (Duplicate) and T3 (Mirror) the two printheads just move towards the center of the X-axis and crash. My T0 and T1 work as expected and I have not had any issues with them.
Config.g:
; Configuration file for Duet 3 (firmware version 3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.2.3 on Wed Jul 07 2021 22:50:05 GMT-0400 (Eastern Daylight Time)
; General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Duet 3" ; set printer name
; Drives
M569 P0.0 S0 ; physical drive 0 goes forwards
M569 P0.1 S1 ; physical drive 1 goes backwards
M569 P0.2 S0 ; physical drive 2 goes forwards
M569 P0.3 S0 ; physical drive 3 goes forwards
M569 P0.4 S1 ; physical drive 4 goes backwards
M569 P0.5 S0 ; physical drive 5 goes forwards
M584 X0.0 Y0.1 Z0.2 U0.3 E0.4:0.5 ; create the U axis and assign stepper driver 3 to it
M350 X16 Y16 Z16 U16 E16 I1 ; configure microstepping with interpolation
M92 X80.00 Y80.00 Z1600.00 U80.00 E408.91 ; set steps per mm
M566 X900.00 Y900.00 Z60.00 U900.00 E120.00 ; set maximum instantaneous speed changes (mm/min)
M203 X6000.00 Y6000.00 Z180.00 U6000.00 E1200.00 ; set maximum speeds (mm/min)
M201 X500.00 Y450.00 Z20.00 U500.00 E250.00 ; set accelerations (mm/s^2)
M906 X1100 Y1300 Z1300 U1100 E1100 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout
; Axis Limits
M208 X-157.5 Y-150 Z0 U-70 S1 ; set axis minima
M208 X157.5 Y150 Z275 U240 S0 ; set axis maxima
; Endstops
M574 X1 S1 P"io4.in" ; Set active X endstops
M574 Y2 S1 P"io6.in" ; Set active Y endstops
M574 U2 S1 P"io5.in" ; Set active U endstops
M574 Z0 ; Set endstops Z controlled by probe
; Z-Probe
M558 P5 I1 R0.4 C"io3.in" H2 F1200 T6000 ; set Z probe type to effector and the dive height + speeds
G31 P500 X14.117 Y32.467 Z2.5 ; set Z probe trigger value, offset and trigger height
M557 X45:300 Y70:295 S50 ; define mesh grid
; Heaters
M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0
M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0
M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S120 ; set temperature limit for heater 0 to 120C
M308 S1 P"temp1" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp1
M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S300 ; set temperature limit for heater 1 to 300C
M308 S2 P"temp2" Y"thermistor" T100000 B4138 ; configure sensor 2 as thermistor on pin temp2
M950 H2 C"out2" T2 ; create nozzle heater output on out2 and map it to sensor 2
M307 H2 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H2 S300 ; set temperature limit for heater 2 to 300C
; Fans
M950 F0 C"out9" Q500 ; create fan 0 on pin out9 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"out8" Q500 ; create fan 1 on pin out8 and set its frequency
M106 P1 S0 H-1 ; set fan 1 value. Thermostatic control is turned off
M950 F2 C"out6" Q500 ; create fan 2 on pin out6 and set its frequency
M106 P2 S1 H-1 ; set fan 2 value. Thermostatic control is turned off
M950 F3 C"out5" Q2500 ; create fan 3 on pin out5 and set its frequency
M106 P3 S0 H-1 ; set fan 3 value. Thermostatic control is turned off
M950 F4 C"out4" Q2500 ; create fan 4 on pin out4 and set its frequency
M106 P4 S0 H-1 ; set fan 4 value. Thermostatic control is turned off
; Tools
M563 P0 S"Left Ex" H1 D0 F3 ; define tool 0 (Left Ex)
G10 P0 X-25.438 Y-16.096 Z0 ; set tool 0 axis offsets
G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C
M563 P1 S"Right Ex" H2 D1 X3 F4 ; define tool 1 (Right Ex)
G10 P1 Y-16.096 Z0 U-54.2 ; set tool 1 axis offsets
G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C
M563 P2 S"Duplicate" H1:2 D0:1 X0:3 F3:4
G10 P2 X-25.428 Y-16.096 Z0 U-54.2 ; set tool offsets and temperatures
G10 P2 R0 S0
M567 P2 E1:1 ; set mix ratio 100% on both extruders
M563 P3 S"Mirror" H1:2 D0:1 X0:3 F3:4 ; define tool 3 (Mirror Mode)
G10 P3 X-25.428 Y-16.096 Z0 U-54.2 ; set tool 3 axis offsets
G10 P3 R0 S0
M567 P3 E1:1 ; set mix ratio 100% on both extruders
; Custom settings are not defined
; Miscellaneous
M575 P1 S1 B57600 ; enable support for PanelDue
M501
And here are my tool change files for T2 and T3
Tfree2:
M83 ; relative extruder movement
G1 E-2 F3600 ; retract 2mm
M106 S0 ; turn off our print cooling fan
G91 ; relative axis movement
G1 Z3 F500 ; down 3mm
G28 X U ; home the X and U carriages
G1 Z-3 F500 ; up 3mm
G90 ; absolute axis movement
Tfree3:
M579 U1
M83 ; relative extruder movement
G1 E-2 F3600 ; retract 2mm
M106 S0 ; turn off our print cooling fan
G91 ; relative axis movement
G1 Z3 F500 ; down 3mm
G28 X U ; home the X and U carriages
G1 Z-3 F500 ; up 3mm
G90 ; absolute axis movement
Tpost2:
M106 R2 ; restore print cooling fan speed
M116 P2 ; wait for tool 2 heaters to reach operating temperature
M83 ; relative extruder movement
M567 P2 E1:1 ; set tool mix ratio
M568 P2 S1 ; turn on mixing
G1 E2 F3600 ; extrude 2mm from both extruders
Tpost3:
M579 U-1 ; invert U axis direction
M106 R2 ; restore print cooling fan speed
M116 P2 ; wait for tool 2 heaters to reach operating temperature
M83 ; relative extruder movement
M567 P2 E1:1 ; set tool mix ratio
M568 P2 S1 ; turn on mixing
G1 E2 F3600 ; extrude 2mm from both extruders
Tpre files are all blank.
I feel like I'm going crazy trying to debug this as there shouldn't be any move commands called during the tool changes other than the homing commands which work when I change T0 and T1.