How to set nozzle offset for toolchanger?
-
The distance between the Z-switch on the carriage and the nozzle on 1st extruder is approximately 20mm.
If I set the offset with commands:
G31 Z-25; G10 P0 Z5
(I want this offset to be sure that the bed does not hit the nozzle.)
Then after activating the 1st extruder bed does not rise above 5mm.
Only the M208 S1 Z-5 helpsThen I set:
G31 Z0 G10 P0 Z-20
But now, if i change the head during printing, then after deactivate first extruder, the table rises 20 mm higher and the limit switch crashes to the printed model.
Tell me how to do it right?
-
Any advice? Please.
-
here's how I have mine set up.
I use a switch mounted to the carriage.
Therefore, my G31 is set toG31 P500 X0 Y0 Z0
I then use TAMV to measure the nozzle offsets is X and Y. To calculate the Z offset I still use the paper method.
Here are my tool offsets.G10 P0 Z-8.59 X4.685 Y39.716 G10 P1 Z-3.35 X31.086 Y40.012
Works well every time
-
@jay_s_uk Thanks!
-
@jay_s_uk Could you please give your config file, homing files and macros? Difficult to set up toolchanger. There are many questions. I could pick up something useful from you.
-
@Dep
config.g; Configuration file for Duet 3 (firmware version 3) ; executed by the firmware on start-up ; ; generated by RepRapFirmware Configuration Tool v2.1.4 on Mon Dec 09 2019 17:42:21 GMT+0000 (Greenwich Mean Time) ;############## General Preferences ################## M555 P2 ; Marlin-style Outputs G21 ; Set dimensions to millimetres G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"Toolchanger" ; set printer name M552 S1 ;############## Axis Mapping ######################### M584 X0.0 Y0.1 Z0.3:0.4:0.5 E1.0:1.1:1.2 U0.2 P3 ; X and Y for CoreXY. U for toolchanger lock. Z has three drivers for kinematic bed suspension. ;M584 X0.0:0.1:0.2:0.3:0.4:0.5 Y1.0 Z1.1 E1.2 ;############## Drive Direction ###################### M569 P0.0 S1 ; Drive 0 direction | X stepper M569 P0.1 S1 ; Drive 1 direction | Y Stepper M569 P0.2 S1 ; Drive 2 direction | U Tool Changer Lock M569 P0.3 S1 ; Drive 3 direction | Front Left Z M569 P0.4 S1 ; Drive 4 direction | Front Right Z M569 P0.5 S1 ; Drive 5 direction | Back Z M569 P1.0 S0 ; Drive 6 direction | Tool 1 M569 P1.1 S1 D2 ; Drive 6 direction | Tool 2 M569 P1.2 S0 ; Drive 6 direction | Tool 3 ;############## Kinematics ########################### M669 K1 ; CoreXY mode ;############## Leadscrew Location ################### ; Leadscrew locations (really, kinematic coupling locations) extracted from CAD model assuming back right build plate corner is (0, 0) M671 X250:-250:0 Y270:270:-265 S20 ; Front Left: (484.5, 548.5) | Front Right: (-6, 548) | Back: (244.5, 17) ;############## Microstepping ######################## M350 X16 Y16 U16 Z16 E16:16:16 I1 ; Configure microstepping with interpolation ;############## Steps Per mm ######################### M92 X160 Y160 U46 Z1600 E415:397.5:397.5 ; Set steps per mm ;############## Speeds and Feeds ##################### M566 X1000 Y1000 Z120 E120:8000:8000 U2 ; Set maximum instantaneous speed changes (mm/min). Values of X and Y were 1400 M203 X25000 Y25000 Z800 E1200:20000:20000 U5000 ; Set maximum speeds (mm/min) M201 X1000 Y1000 Z200 E250:1300:1300 U1000 ; Set accelerations (mm/s^2) Values of X and Y were 6000 M204 P500 M906 X1400 Y1400 U1400 Z2200 E800:1050:1050 I30 ; Set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout ;############## Axis Limits ########################## M208 X-246.5 Y-274 Z0 U0 S1 ; Set axis minima M208 X255 Y274 Z500 U180 S0 ; Set axis maxima ;############## Endstops ############################# M574 X1 S1 P"io1.in" ; Configure active-high endstop for low end on X via pin io1.in M574 Y1 S1 P"io2.in" ; Configure active-high endstop for low end on Y via pin io2.in ;############## Z-Probe ############################## M558 P5 C"io4.in" H1 A5 F120 T15000 S0.02 ; Set Z probe type to switch and the dive height + speeds G31 P500 X0 Y0 Z0 ; Set Z probe trigger value, offset and trigger height M557 X-225:225 Y-225:225 S30 ; Define mesh grid ;############## Bed Heater ########################### M308 S0 P"spi.cs3" Y"thermocouple-max31855" T"K" ; Configure sensor 0 as thermocouple via CS pin spi.cs1 M950 H0 C"out1" T0 Q10 ; Create bed heater output on out0 and map it to sensor 0 M143 H0 S180 ; Set temperature limit for heater 0 to 180C M307 H0 B0 S1.00 ; Disable bang-bang mode for the bed heater and set PWM limit M140 H0 ; Map heated bed to heater 0 ;############## Tool 0 Heaters ####################### M308 S1 P"1.temp0" Y"thermistor" T100000 B4267 ; Configure sensor 1 as thermistor on pin 1.temp0 M950 H1 C"1.out0" T1 ; Create nozzle heater output on 1.out0 and map it to sensor 1 M143 H1 S300 ; Set temperature limit for heater 1 to 280C M307 H1 B0 S1.00 ; Disable bang-bang mode for the nozzle heater and set PWM limit ;############## Tool 0 Fans ########################## M950 F0 C"1.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"1.out6" 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 ;############## Tool 0 Switch ######################## M950 J0 C"1.io0.in" ; Tool 0 detector switch ;############## Tool 1 Heaters ####################### M308 S2 P"1.temp1" Y"thermistor" T100000 B4725 C7.06e-8 ; Configure sensor 1 as thermistor on pin 1.temp0 M950 H2 C"1.out1" T2 ; Create nozzle heater output on 1.out0 and map it to sensor 1 M143 H2 S300 ; Set temperature limit for heater 1 to 280C M307 H2 B0 S1.00 ; Disable bang-bang mode for the nozzle heater and set PWM limit ;############## Tool 1 Fans ########################## M950 F2 C"1.out7" Q500 ; Create fan 0 on pin out3 and set its frequency M106 P2 S0 H-1 ; Set fan 0 value. Thermostatic control is turned off M950 F3 C"1.out4" Q500 ; Create fan 1 on pin out4 and set its frequency M106 P3 S1 H2 T45 ; Set fan 1 value. Thermostatic control is turned on ;############## Tool 1 Switch ######################## M950 J1 C"1.io1.in" ; Tool 1 detector switch ;############## Tool 2 Heaters ####################### M308 S3 P"1.temp2" Y"thermistor" T100000 B4725 C7.06e-8 ; Configure sensor 1 as thermistor on pin 1.temp0 M950 H3 C"1.out2" T3 ; Create nozzle heater output on 1.out0 and map it to sensor 1 M143 H3 S300 ; Set temperature limit for heater 1 to 280C M307 H3 B0 S1.00 ; Disable bang-bang mode for the nozzle heater and set PWM limit ;############## Tool 2 Fans ########################## M950 F4 C"1.out7" Q500 ; Create fan 0 on pin out3 and set its frequency M106 P4 S0 H-1 ; Set fan 0 value. Thermostatic control is turned off M950 F5 C"1.out5" Q500 ; Create fan 1 on pin out4 and set its frequency M106 P5 S1 H3 T45 ; Set fan 1 value. Thermostatic control is turned on ;############## Tool 2 Switch ######################## M950 J1 C"1.io3.in" ; Tool 1 detector switch ;############## Tool 3 Heater for Tuning ############# M308 S4 P"0.temp0" Y"thermistor" T100000 B4725 C7.06e-8 ; Configure sensor 1 as thermistor on pin 1.temp0 M950 H4 C"0.out2" T4 ; Create nozzle heater output on 1.out0 and map it to sensor 1 M143 H4 S300 ; Set temperature limit for heater 1 to 280C M307 H4 B0 S1.00 ; Disable bang-bang mode for the nozzle heater and set PWM limit ;############## Tool 3 Fans for Tuning ############### M950 F6 C"0.out7" Q500 ; Create fan 0 on pin out3 and set its frequency M106 P6 S0 H-1 ; Set fan 0 value. Thermostatic control is turned off M950 F7 C"0.out4" Q500 ; Create fan 1 on pin out4 and set its frequency M106 P7 S1 H4 T45 ; Set fan 1 value. Thermostatic control is turned on ;############## Tools ################################ M563 P0 S"BMG Tool" D0 H1 F0 ; Px = Tool number, Dx = Drive Number (start at 0, after movement drives), H1 = Heater Number, Fx = Fan number print cooling fan G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures(-273 = "off") M563 P1 S"Hemera" D1 H2 F2 ; Px = Tool number, Dx = Drive Number (start at 0, after movement drives), H1 = Heater Number, Fx = Fan number print cooling fan G10 P1 S0 R0 ; Set tool 1 operating and standby temperatures(-273 = "off") M563 P2 S"Hemera 2" D2 H3 F4 ; Px = Tool number, Dx = Drive Number (start at 0, after movement drives), H1 = Heater Number, Fx = Fan number print cooling fan G10 P2 S0 R0 ; Set tool 1 operating and standby temperatures(-273 = "off") M563 P3 S"Tuning" D2 H4 F6 ; Px = Tool number, Dx = Drive Number (start at 0, after movement drives), H1 = Heater Number, Fx = Fan number print cooling fan G10 P3 S0 R0 ; Set tool 1 operating and standby temperatures(-273 = "off") ;############## Pressure Advance ##################### M572 D1 S0.03 ; Pressure advance T1 - Taken from E3D tool changer ;############## Custom settings ###################### M98 P"/sys/Toffsets.g" ; Set tool offsets from the bed. In separate file so test macro can invoke. M98 P"/sys/FilamentRetraction.g" ; Set Filament Retraction M593 F36.36 ; Dynamic Acceleration Adjustment ;############## Miscellaneous ######################## M501 ; Load saved parameters from non-volatile memory ;M98 P"unload_tool.g"
tpre0
; Runs after freeing the previous tool if the next tool is tool-0. ; Note: tool offsets are not applied at this point! ; ################# Tool 0 Pre Prep ################### if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed ; If the printer hasn't been homed, home it M98 P"0:/sys/homeall.g" ; Home all axis M98 P"/macros/tool_unlock.g" ; Unlock the tool G53 G0 X227.5 Y206 F10000 ; Rapid to the approach position without any current tool. This lets the human know the next command is waiting on this new tool. G53 G0 Y226 F10000 ; Rapid to the approach position without any current tool. G91 ; Relative to move bed down G1 Z20 F6000 ; Move the bed further from the nozzle prior to any tool moves. G90 ; Return to absolute M400 ; Make sure all moves are finished ; ################# Tool 0 Post ####################### G53 G1 Y258 F6000 ; Move to the pickup position with tool0. M98 P"/macros/tool_lock.g" ; Lock the tool G53 G1 Y230 F6000 ; Retract the entire tool and wipe Backwards. G53 G1 Y250 F10000 ; Wipe Forwards. G53 G1 Y230 F10000 ; Wipe Backwards. G53 G1 Y250 F10000 ; Wipe Forwards. G53 G1 Y176 F10000 ; Wipe Backwards.
tpost0.g
; Runs after firmware thinks Tool0 is selected ; Note: tool offsets are applied at this point! ; Note that commands prefixed with G53 will NOT apply the tool offset. ; ################# Tool 0 Post Prep ################## M116 P0 ; Wait for set temperatures to be reached M106 R1 ; Restore print cooling fan speed ; ################# Tool 0 Post Print Prep ############ G1 R2 Z0 ; Restore prior position now accounting for new tool offset. Z first to avoid certain collisions when near tool parking. G1 R2 Y0 F6000 ; Restore prior position now accounting for new tool offset G1 R2 X0 F6000 ; Restore prior position now accounting for new tool offset
tfree0.g
; Runs at the start of a toolchange if the current tool is tool0. ; Note: tool offsets are applied at this point unless we preempt commands with G53! ; Note: Prior to this macro, XYZ have been saved to slot 2 by the firmware as though a G60 S2 were executed. ; ################# Tool 0 Free Prep ################## G91 ; Relative to move bed down G1 H2 Z5 F6000 ; Move the bed further from the nozzle prior to any tool moves. G90 ; Return to absolute ; ################# Tool 0 Free ####################### G53 G0 X227.5 Y176 F10000 ; Rapid to the approach position with tool-0. (park_x, park_y - offset). X first in case close to tool row. G53 G0 Y230 F10000 ; Rapid to the approach position with tool-0. (park_x, park_y - offset) G53 G1 Y258 F3000 ; Controlled move to the park position with tool-0. (park_x, park_y) M98 P"/macros/tool_unlock.g" ; Unlock the tool G53 G1 Y206 F6000 ; Move the carraige to retract the pin until it clears the tool. G53 G0 Y176 F10000 ; Rapid to a position where a future tool change won't hurt anything by returning to this position via its G60 S2
the other tool files are the same as the 0 just with different X coordinates.
please note I have the centre of my bed as 0,0Toffsets.g
G10 P0 Z-17.80 X3.854 Y39.075 G10 P1 Z-2.65 X31.99 Y40.25 G10 P2 Z-2.6 X31.286 Y40.587
FilamentRetraction.g
M207 S0.5 F2400 Z0.5 P0 M207 S1.6 R0 F2400 Z0.5 P1 M207 S1.6 R0 F2400 Z0.5 P2
-
@jay_s_uk thank you very much!