Help! Toolchanging broken (offsets + T-1)
-
Hello,
Suddenly my Toolchanger is not recognizing T-1 commands, and is not applying tool offsets.
I can home, and pickup a tool, the dashboard shows the tool as active, however once picked up the offsets have not applied (including Z-offset, rip my bed) and I cannot rehome the tool via T-1.
Running Duet 2 Wifi + DueX, firmware 3.4.5. It was working an hour ago, now nothing. I have tried restarting (via both E-stop and actual power cycling), the problem persists.
The only thing I've changed was the sensitivity of my stall detection in my homing files. Send help.
-
Sounds like maybe your config.g isn't getting read completely. Maybe you've added something accidentally that is breaking the parsing.
Can you share the full config.g and the results of sending M122 and M98 P"config.g" in the gcode console tab of DWC?
-
M98 P"config.g" output:
M98 P"config.g"
HTTP is enabled on port 80
FTP is disabled
TELNET is disabled
Error: in file macro line 96 column 20: meta command: variable 't1_ready_X' already existsThe same problems as described in OP persist
M112 Result
The printer e-stops, same problems persistconfig.g
The config-override.g and config-tool-offsets.g have not changed (let alone been opened) in the time between the printer working fine and the problems beginning.; Configuration file for Duet WiFi / Ethernet running RRF3 on E3D Tool Changer ; executed by the firmware on start-up ; General preferences -------------------------------------------------------------- M111 S0 ; Debugging off G21 ; Work in millimetres G90 ; Send absolute coordinates... M83 ; ...but relative extruder moves M555 P2 ; Set firmware compatibility to look like Marlin M667 S1 ; Select CoreXY mode ; Network ------------------------------------------------------------------ M550 P"ToolChanger" ; Set machine name M587 S"[redacted]" P"[redacted]" ; WiFi Settings M552 S1 P"[redacted]" ; Enable WiFi Networking M552 S1 ; Enable Networking M586 P0 S1 ; Enable HTTP M586 P1 S0 ; Disable FTP M586 P2 S0 ; Disable Telnet ; Drive direction ---------------------------------------------------------- M569 P0 S0 ; Drive 0 X M569 P1 S0 ; Drive 1 Y M569 P2 S1 ; Drive 2 Z M569 P3 S1 ; Drive 3 E0 M569 P4 S1 ; Drive 4 E1 M569 P5 S1 ; Drive 5 E2 M569 P6 S1 ; Drive 6 E3 M569 P7 S0 ; Drive 7 COUPLER M569 P8 S0 ; Drive 8 UNUSED M569 P9 S0 ; Drive 9 UNUSED M584 X0 Y1 Z2 C7 E3:4:5:6 ; Apply custom drive mapping M208 X-30:328.5 Y-51:243 Z0:300 C-45:360 ; Set axis maxima & minima M92 X100 Y100 Z1600 C91.022 E370:416:400:400 ; Set steps per mm assuming x16 microstepping M350 E16:16:16:16 I1 ; Configure microstepping with interpolation M350 C16 I10 ; Configure microstepping without interpolation M350 X16 Y16 Z16 I1 ; Configure microstepping with interpolation M566 X200 Y200 Z8 C2 E300:300:2:2 ; Set maximum instantaneous speed changes (mm/min) M203 X35000 Y35000 Z1200 C5000 E5000:5000:5000:5000 ; Set maximum speeds (mm/min) M201 X6000 Y6000 Z400 C500 E4000:4000:2500:2500 ; Set accelerations (mm/s^2) M906 X1800 Y1800 Z1330 I30 ; Idle motion motors to 30% M906 E1000:1000:1000:1000 C500 I10 ; Idle extruder motors to 10% ; Endstops ----------------------------------------------------------------------------------------------- M574 X1 Y1 S3 ; Set X / Y endstop stall detection M574 C1 S3 ; Set C stall detection ; Z probe M558 P5 C"zstop" H2 F120 T50000 ; Define probe M557 X5:295 Y5:195 P9:5 ; Define mesh grid G31 Z0 ; Set trigger height ;Stall Detection M915 X Y S3 F0 H400 R0 ; X / Y Axes M915 H200 C S3 R0 F0 ; set C to sensitivity 3, do nothing when stall, unfiltered ; Heaters -------------------------------------------------------------------------------------------------- M308 S0 P"bedtemp" Y"thermistor" A"Bed" T100000 B4138 C0 ; Set thermistor M950 H0 C"bedheat" T0 Q50 ; Bed heater, 50Hz PWM Freq for Omron SSR. M143 H0 S225 ; Set temperature limit for heater 0 to 225C M140 H0 ; Bed heater is heater 0 M307 H0 B0 ; Use PID for bed heater M308 S1 P"e0temp" Y"thermistor" A"T0" T100000 B4725 C7.06e-8 ; Set thermistor M950 H1 C"e0heat" T1 ; Extruder 0 heater M143 H1 S305 ; Set temperature limit for heater 1 to 300C M308 S2 P"e1temp" Y"thermistor" A"T1" T100000 B4725 C7.06e-8 ; Set thermistor M950 H2 C"e1heat" T2 ; Extruder 1 heater M143 H2 S305 ; Set temperature limit for heater 2 to 300C ;M308 S3 P"e2temp" Y"thermistor" A"T2" T100000 B4725 C7.06e-8 ; Set thermistor ;M950 H3 C"duex.e2heat" T3 ; Extruder 2 heater ;M143 H3 S305 ; Set temperature limit for heater 3 to 300C ;M308 S4 P"e3temp" Y"thermistor" A"T3" T100000 B4725 C7.06e-8 ; Set thermistor ;M950 H4 C"duex.e3heat" T4 ; Extruder 3 heater ;M143 H4 S305 ; Set temperature limit for heater 4 to 300C ; Tools ----------------------------------------------------------------------------------------------------- M563 P0 S"T0" D0 H1 F2 ; Define tool 0 ;G10 P0 X0 Y0 Z0 ; Reset tool 0 axis offsets G10 P0 R0 S0 ; Reset initial tool 0 active and standby temperatures to 0C M563 P1 S"T1" D1 H2 F4 ; Define tool 1 ;G10 P1 X0 Y0 Z0 ; Reset tool 1 axis offsets G10 P1 R0 S0 ; Reset initial tool 1 active and standby temperatures to 0C global t1_ready_X = 82 ; pre/post position for T1 pickup global t1_ready_Y = 200 ; global t1_ready_speed = 30000 ; feedrate global t1_pick_X = 82 ; pickup location global t1_pick_Y = 223 ; global t1_pick_speed = 3000 ; ;M563 P2 S"T2" D2 H3 F6 ; Define tool 2 ;G10 P2 X0 Y0 Z0 ; Reset tool 2 axis offsets ;G10 P2 R0 S0 ; Reset initial tool 2 active and standby temperatures to 0C ;M563 P3 S"T3" D3 H4 F8 ; Define tool 3 ;G10 P3 X0 Y0 Z0 ; Reset tool 3 axis offsets ;G10 P3 R0 S0 ; Reset initial tool 3 active and standby temperatures to 0C ; Fans ----------------------------------------------------------------------------------------------- M950 F1 C"fan1" M950 F2 C"fan2" M950 F3 C"duex.fan3" M950 F4 C"duex.fan4" M950 F5 C"duex.fan5" M950 F6 C"duex.fan6" M950 F7 C"duex.fan7" M950 F8 C"duex.fan8" M106 P1 S255 H1 T70 ; T0 HE M106 P2 S0 ; T0 PCF M106 P3 S255 H2 T70 ; T1 HE M106 P4 S0 ; T1 PCF M106 P5 S255 H3 T70 ; T2 HE M106 P6 S0 ; T2 PCF M106 P7 S255 H4 T70 ; T3 HE M106 P8 S0 ; T3 PCF M593 F42.2 ; cancel ringing at 42.2Hz (https://forum.e3d-online.com/threads/accelerometer-and-resonance-measurements-of-the-motion-system.3445/) M376 H5 ; bed compensation taper ;G10 P0 X8 Y45 Z-8.55 ; T0 ;G10 P1 X-9 Y39 Z-5 ; T1 ;G10 P1 X-37 Y34 Z-5 ;G10 P1 X19 Y44 Z-14.3 ;G10 P2 X-9 Y39 Z-5 ; T2 ;G10 P3 X-9 Y39 Z-5 ; T3 ; MACRO FOR TOOL OFFSETS ;echo "TOOL OFFSETS ESTABLISHED" ;TOOL 0 (T0) ;G10 P0 X8 Y45 Z-8.55 ; T0 ; TOOL 1 (T1) ;G10 P1 X19 Y44 Z-14.3 ; T1 ; TOOL 2 (T2) ;G10 P2 X-9 Y39 Z-5 ; T2 ; TOOL 3 (T3) ;G10 P3 X-9 Y39 Z-5 ; T3 M98 P"config-tool-offsets.g" ; load in tool offsets M572 D0 S0.02 ; pressure advance T0 M572 D1 S0.04 ; pressure advance T1 ;M572 D2 S0.2 ; pressure advance T2 ;M572 D3 S0.2 ; pressure advance T3 M575 P1 S1 B57600 ; Enable LCD G29 S2 ; disable mesh T-1 ; deselect tools M501 ; load config-override.g
-
@Phaedrux a quick update, I commented out the T-1 at the beginning of my t0pre.g that I added in, and it is now working. I guess that is causing confusion in the printer, just added it in for safety and forgot about it. Problem solved!
t0pre.g
; tpre0.g ; called before tool 0 is selected ;T-1; deselect any tool currently held G29 S2; M568 P0 A2; set tool active. ;Unlock Coupler M98 P"/macros/Coupler - Unlock" ;Move to location if move.axes[1].machinePosition > 200 G53 G1 Y200 F50000; G53 G1 X-5 Y200 F25000 ;G1 Y205; ;Collect ;G1 X-10.5 Y242 F2500 G53 G1 Y225 F2500; ;Close Coupler M98 P"/macros/Coupler - Lock" ;WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! WARNING! ;if you are using non-standard length hotends ensure the bed is lowered enough BEFORE undocking the tool! G91 G1 Z10 F1000 G90 M116 P1; wait for temperature, this will not wait for temperatures above 40C. ;Move Out ;G1 X-10.5 Y150 F4000 G53 G1 Y150 F4000; G29 S1;
-
@Merlin246 said in Help! Toolchanging broken (offsets + T-1):
M112 Result
The printer e-stops, same problems persistM122 not M112.
-
@Merlin246 I'm glad you solved it. Nesting tool changes is never a good idea. Perhaps we should detect that in RRF and report an error.
-
-