IDEX Changing tool macro
-
Hello guys,
I actually assembling an idex printer and all goes well exept a problem for changing tools.
My printer have actually 2 tools TO and T1,I try to make a z hop of 0.5mm when changing tool with tpost and tfree macro from example in the doc.
When i select TO, all is going well, but for T1 the Zhop and ZLIFT value is decrease from 1.93mm and i don't understand why.
When i check the Zvalue from dashboard, example 30mm when select T1, first the value is increase from 5mm and decrease immediatly from 1.92mm.I need a litlle help please to check where is the problem.
Here is my config file :
; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"VCAST" ; set printer name ; Network M552 S1 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet ; Drives M569 P0.0 S1 ; physical drive 0.0 goes forwards E0 M569 P0.1 S1 ; physical drive 0.1 goes forwards E1 M569 P0.2 S1 ; physical drive 0.2 goes forwards X1 (U) M569 P0.3 S1 ; physical drive 0.3 goes forwards X2 M569 P0.4 S1 ; physical drive 0.4 goes forwards Y M569 P0.5 S1 ; physical drive 0.5 goes forwards Z M569 P0.6 S1 ; physical drive 0.6 goes forwards Z M584 X0.3 Y0.4 Z0.5:0.6 U0.2 E0.0:0.1 ; set drive mapping M350 X16 Y16 Z16 U16 E16 I1 ; configure microstepping with interpolation M92 X80 Y80 Z400 U80 E857:857 ; set steps per mm M203 X12000 Y12000 Z6000 U12000 E3600:3600 ; set maximum speeds (mm/min) M201 X500 Y500 Z100 U500 E1200:1200 ; set accelerations (mm/s^2) M566 X600 Y600 Z60 U600 E1300:1300 ; set maximum instantaneous speed changes (mm/min) M906 X1600 Y1600 Z1000 U1600 E500:500 I25 ; set motor currents (mA) and motor idle factor in per cent M84 S30 ; Set idle timeout M572 D0 S0.07 M575 D1 S0.07 ; Axis Limits ;M208 X-58 Y-10 U0 Z-5 S1 ; set axis minima ;M208 X310 Y320 Z380 U363 S0 ; Set axis maxima M208 S1 X-30 Y-30 U32.5 Z-5 ; set axis lower limits M208 S0 X290 Y280 U347.5 Z250 ; set axis upper limits ; Endstops M574 X1 P"!io0.in" S1 ; active-low endstop for low end on X via pin io0.in M574 Y1 P"!io2.in" S1 ; active-low endstop for low end on Y via pin io2.in M574 U2 P"!io1.in" S1 ; Use an endstop on U, stop at high end ; Z-Probe inductive M558 P5 C"!^io3.in" H5 F400:300 T6000 ; set Z probe type to switch and the dive height + speeds G31 P1000 X-30 Y20 Z1.35 ; set Z probe trigger value, offset and trigger height M557 X30:260 Y30:240 S11 ; define mesh grid M574 Z0 P"nil" ; Heaters M308 S0 P"temp2" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp2 M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0 M307 H0 R0.942 K0.258:0.000 D3.34 E1.35 S1.00 B0 ; disable bang-bang mode for the bed heater and set PWM limit H0 B0 S1.00 M140 H0 ; map heated bed to heater 0 M143 H0 S120 ; set temperature limit for heater 0 to 120C M308 S1 P"temp0" Y"thermistor" T100000 B4725 ; configure sensor 1 as thermistor on pin temp0 M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1 M307 H1 R2.910 K0.892:0.000 D6.55 E1.35 S1.00 B0 V24.1 ; disable bang-bang mode for heater and set PWM limit M143 H1 S280 ; set temperature limit for heater 1 to 280C M308 S2 P"temp1" Y"thermistor" T100000 B4725 ; configure sensor 2 as thermistor on pin temp1 M950 H2 C"out2" T2 ; create nozzle heater output on out2 and map it to sensor 2 M307 H2 R2.738 K0.685:0.000 D9.11 E1.35 S1.00 B0 V24.1 ; disable bang-bang mode for heater and set PWM limit M143 H2 S280 ; set temperature limit for heater 2 to 280C ; Fans M950 F0 C"out3" Q0 ; create fan 0 on pin out3 and set its frequency E1 M950 F1 C"out4" Q0 ; create fan 1 on pin out4 and set its frequency E2 M950 F2 C"out5" Q500 ; create fan 2 on pin out5 and set its frequency M106 P2 S1 H1 T45 ; set fan 2 value. Thermostatic control is turned on M950 F3 C"out6" Q500 ; create fan 3 on pin out6 and set its frequency M106 P3 S1 H2 T45 ; set fan 3 value. Thermostatic control is turned on ; Tools M563 P0 D0 H1 F0 S"T0" ; define tool 0 uses extruder 0, heater 1 and fan 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 M563 P1 D1 H2 X3 F1 S"T1" ; define tool 1 uses extruder 1, heater 2 and fan 1 G10 P1 Y1.9 Z0 U4 ; set tool 1 axis offsets G10 P1 R0 S0 ; set initial tool 1 active and standby temperatures to 0C
and here the macro i use :
Tpost0
G91 ; Relative positioning G1 Z-5 F6000 ; Lift Z relative to current position M116 P0 ; Wait for this tool to reach printing temperature M106 F0 S1 ; Restore part cooling on this tool M83 ; relative extruder movement G1 E1 F2500 ; extrude 1mm
Tfree0
; tfree0.g ; Called upon releasing tool 0 ; M83 ; relative extruder movement G1 E-2 F2500 ; retract 2mm M106 F0 S0 ; Disable part cooling on this tool G91 ; Relative positioning G1 Z5 F6000 ; Lift Z relative to current position G90 ; Absolute positioning G1 X-30 F6000
Tpost1
G91 ; Relative positioning G1 Z-5 F6000 ; Lift Z relative to current position M116 P1 ; Wait for this tool to reach printing temperature M106 F1 S1 ; Restore part cooling on this tool M83 ; relative extruder movement G1 E1 F2500 ; extrude 3mm
Tfree1
; tfree1.g ; Called upon releasing tool 1 ; M106 F1 S0 ; Disable part cooling on this tool M83 ; relative extruder movement G1 E-2 F2500 ; retract 2mm G91 ; Relative positioning G1 Z5 F6000 ; Lift Z relative to current position G91 ; Absolute positioning G1 U347.5 F6000 ; Move X2 to axis maxima
I check if the offsets of tools was ok and don't see any problem.
Thanks for your help.
-
@Cyberyo34 In tpost you don't need z-. The z jump of tfree is reset automatically after the switch.
Here is my tool change; tfree0.g ; called when tool 0 is freed ; ; generated by RepRapFirmware Configuration Tool v3.3.14 on Wed Nov 16 2022 15:37:20 GMT+0100 (Mitteleuropäische Normalzeit) M83 ; relative extruder movement G1 E-0.5 F3600 ; retract 2mm M106 S0 ; turn off our print cooling fan G91 ; relative axis movement G1 Z3 F500 ; up 3mm G90 ; absolute axis movement G1 X-400 F3600 ; park the X carriage at -48mm
; tfree1.g ; called when tool 1 is freed ; ; generated by RepRapFirmware Configuration Tool v3.3.14 on Wed Nov 16 2022 15:37:20 GMT+0100 (Mitteleuropäische Normalzeit) M83 ; relative extruder movement G1 E-0.5 F3600 ; retract 2mm M106 S0 ; turn off our print cooling fan G91 ; relative axis movement G1 Z3 F500 ; up 3mm G90 ; absolute axis movement G1 U400 F6000 ; park the U carriage at +355mm
; tpost0.g ; called after tool 0 has been selected ; ; generated by RepRapFirmware Configuration Tool v3.3.14 on Wed Nov 16 2022 15:37:20 GMT+0100 (Mitteleuropäische Normalzeit) ; Wait for set temperatures to be reached M116 P0 M106 R2 ; restore print cooling fan speed M116 P0 ; wait for tool 0 heaters to reach operating temperature M83 G1 E0.5 F3600 ; extrude 2mm
; tpost1.g ; called after tool 1 has been selected ; ; generated by RepRapFirmware Configuration Tool v3.3.14 on Wed Nov 16 2022 15:37:20 GMT+0100 (Mitteleuropäische Normalzeit) ; Wait for set temperatures to be reached M116 P1 M106 R2 ; restore print cooling fan speed M116 P1 ; wait for tool 1 heaters to reach operating temperature M83 G1 E0.5 F3600 ; extrude 2mm
; tpost2.g ; called after tool 2 has been selected ; ; Wait for set temperatures to be reached 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
; tfree2.g ; called when tool 2 is freed ; ; tfree2.g ; called when tool 1 is freed M83 ; relative extruder movement G1 E-2 F3600 ; retract 2mm M106 S0 ; turn off our print cooling fan G91 ; relative axis movement G1 Z0.5 F500 ; up 3mm G90 ; absolute axis movement G28 X U ; home the X and U carriages ;M82 ; absolute extruder movement ; generated by RepRapFirmware Configuration Tool v2.1.8 on Thu Apr 09 2020 01:08:09 GMT+0200 (Mitteleuropäische
; Create a tool that uses the low end (X) carriage M563 P0 D0 H1 F0 S"linker Extruder" ; tool 0 uses extruder 0, heater 1 and fan 0 G10 P0 X0 Y0 Z0.08 S0 R0 ; set tool 0 offsets and temperatures ; Create a tool that uses the high end (U) carriage M563 P1 D1 H2 X3 F0 S"rechter Extruder" ; tool 1 uses extruder 1, heater 2, fan 2, and maps X to U G10 P1 Y-0.4 U26.6 Z0.04 R0 ; set tool 1 offsets and temperatures ; Create a tool that prints 2 copies of the object using both carriages M563 P2 D0:1 H1:2 X0:3 F0:0 S"Duplicate"; tool 2 uses both extruders, hot end heaters and fans, and maps X to both X and U G10 P2 X-25 Y0 U-176.3 Z0.1 S0 R0 ; set tool offsets and temperatures G10 P2 R0 S0 M567 P2 E1:1 ; set mix ratio 100% on both extruders
-
@Proschi78 hello, thank you for your help.
I just try know with your macros without the Z lIFT,
The problem is before the Z high is reset to the correct position, the tool is in position and start to work for one lyer, after this layer the tool come back in correct position.
I got the same result with my macro too.
I use superslicer, maybe the information for X height is not send at the good moment by the slicer?
Here an example of gcode :
; generated by SuperSlicer 2.5.59 on 2023-04-09 at 17:08:21 UTC ; ; external perimeters extrusion width = 0.44mm ; perimeters extrusion width = 0.50mm ; infill extrusion width = 0.62mm ; solid infill extrusion width = 0.62mm ; top infill extrusion width = 0.53mm ; first layer extrusion width = 0.69mm ; external perimeters extrusion width = 0.44mm ; perimeters extrusion width = 0.50mm ; infill extrusion width = 0.62mm ; solid infill extrusion width = 0.62mm ; top infill extrusion width = 0.53mm ; first layer extrusion width = 0.69mm ; object:{"name":"Traffic_Cone_Orange","id":"Traffic_Cone_Orange id:0 copy 0","object_center":[145.000000,140.000000,0.000000],"boundingbox_center":[145.000000,140.000000,25.000000],"boundingbox_size":[40.000000,40.000000,50.000000]} ; Total objects to print: 1 M486 T1 ; plater:{"center":[145.000000,140.000000,0.000000],"boundingbox_center":[145.000000,140.000000,25.000000],"boundingbox_size":[40.000000,40.000000,50.000000]} M140 S80 ; set bed temperature G10 P0 R165 ; sets the standby temperature G10 P1 R165 ; sets the standby temperature ;TYPE:Custom G10 P0 S170 ; set temperature M116 ; Wait for all temperatures to be reached G28 ; home all axes G1 X10.1 Y20 Z0.3 F5000.0 ; move to start-line position G1 X10.1 Y200.0 Z0.3 F1500.0 E15 ; draw 1st line G1 X10.4 Y200.0 Z0.3 F5000.0 ; move to side a little G1 X10.4 Y20 Z0.3 F1500.0 E30 ; draw 2nd line G1 X10.1 Y200.0 Z0.3 F1500.0 ;Remove blop G1 E1 F6000 ; retract filament1mm M107 G21 ; set units to millimeters G90 ; use absolute coordinates M83 ; use relative distances for extrusion T0 ;_TOOLCHANGE 0 M190 S80 ; set bed temperature and wait for it to be reached M107 ;LAYER_CHANGE ;Z:0.33 ;HEIGHT:0.33 G1 E-1.4 F3000 G1 Z0.33 F7800 G92 E0 G1 X105.955 Y99.308 G1 E1.4 F3000 ;TYPE:Skirt ;WIDTH:0.484 G1 F1800 G1 X102.2 Y103.428 E0.316 G1 X101.643 Y104.164 E0.05231 G1 X98.709 Y108.904 E0.316 G1 X98.298 Y109.73 E0.05231 G1 X96.284 Y114.927 E0.31596 G1 X96.032 Y115.815 E0.0523 G1 X95.007 Y121.294 E0.31601 G1 X94.793 Y125 E0.21042 G1 X94.793 Y155 E1.70063 G1 X95.007 Y158.706 E0.21042 G1 X96.032 Y164.185 E0.31601 G1 X96.284 Y165.073 E0.0523 G1 X98.298 Y170.27 E0.31597 G1 X98.709 Y171.096 E0.0523 G1 X101.643 Y175.836 E0.31599 G1 X102.2 Y176.572 E0.05231 G1 X105.955 Y180.691 E0.31599 G1 X106.637 Y181.313 E0.0523 G1 X111.085 Y184.672 E0.316 G1 X111.87 Y185.158 E0.05231 G1 X116.859 Y187.643 E0.31598 G1 X117.72 Y187.976 E0.0523 G1 X123.081 Y189.501 E0.316 G1 X123.988 Y189.671 E0.05231 G1 X128.605 Y190.174 E0.26325 G1 X160 Y190.207 E1.77972 G1 X161.856 Y190.153 E0.10528 G1 X166.012 Y189.671 E0.23713 G1 X166.919 Y189.501 E0.0523 G1 X172.28 Y187.976 E0.31599 G1 X173.141 Y187.643 E0.05231 G1 X178.13 Y185.158 E0.316 G1 X178.915 Y184.672 E0.05231 G1 X183.363 Y181.313 E0.31599 G1 X184.045 Y180.691 E0.0523 G1 X187.8 Y176.572 E0.31599 G1 X188.357 Y175.836 E0.0523 G1 X191.291 Y171.097 E0.31598 G1 X191.702 Y170.271 E0.0523 G1 X193.716 Y165.073 E0.316 G1 X193.968 Y164.185 E0.0523 G1 X194.993 Y158.706 E0.31598 G1 X195.207 Y154.993 E0.21084 G1 X195.2 Y124.908 E1.70544 G1 X194.99 Y121.266 E0.20681 G1 X193.968 Y115.815 E0.31438 G1 X193.716 Y114.927 E0.0523 G1 X191.702 Y109.73 E0.31599 G1 X191.291 Y108.904 E0.05231 G1 X188.356 Y104.164 E0.31599 G1 X187.8 Y103.428 E0.0523 G1 X184.045 Y99.308 E0.316 G1 X183.363 Y98.687 E0.0523 G1 X178.915 Y95.328 E0.31598 G1 X178.13 Y94.842 E0.0523 G1 X173.141 Y92.357 E0.316 G1 X172.28 Y92.024 E0.05231 G1 X166.919 Y90.499 E0.31597 G1 X166.012 Y90.329 E0.0523 G1 X161.395 Y89.826 E0.26328 G1 X130 Y89.793 E1.77972 G1 X128.144 Y89.847 E0.10528 G1 X123.988 Y90.329 E0.23715 G1 X123.081 Y90.499 E0.05231 G1 X117.72 Y92.024 E0.31598 G1 X116.859 Y92.357 E0.0523 G1 X111.87 Y94.842 E0.31598 G1 X111.085 Y95.328 E0.05231 G1 X106.637 Y98.687 E0.31599 G1 X106.085 Y99.19 E0.04233 G1 X106.004 Y99.264 ;WIPE_START G1 F6240 G1 X106.085 Y99.19 E-0.05024 G1 X106.637 Y98.687 E-0.34103 G1 X108.277 Y97.448 E-0.93873 ;WIPE_END G1 E-0.07 F3000 ; printing object Traffic_Cone_Orange id:0 copy 0 M486 S0 G1 X160.2 Y159.269 F7800 G1 E1.4 F3000 ;TYPE:External perimeter ;WIDTH:0.686819 G1 F1800 G1 X159.992 Y159.657 G1 X130.008 Y159.657 E2.53408 G1 X129.578 Y159.637 E0.03635 G1 X128.726 Y159.477 E0.07328 G1 X127.925 Y159.167 E0.0726 G1 X127.195 Y158.715 E0.0726 G1 X126.56 Y158.136 E0.0726 G1 X126.042 Y157.45 E0.07263 G1 X125.659 Y156.682 E0.07257 G1 X125.424 Y155.855 E0.0726 G1 X125.343 Y154.984 E0.07395 G1 X125.343 Y125.016 E2.53274 G1 X125.424 Y124.145 E0.07395 G1 X125.659 Y123.318 E0.0726 G1 X126.042 Y122.549 E0.0726 G1 X126.56 Y121.864 E0.0726 G1 X127.195 Y121.285 E0.0726 G1 X127.925 Y120.833 E0.0726 G1 X128.726 Y120.523 E0.0726 G1 X129.578 Y120.363 E0.07328 G1 X130.008 Y120.343 E0.03635 G1 X159.992 Y120.343 E2.53408 G1 X160.422 Y120.363 E0.03635 G1 X161.274 Y120.523 E0.07328 G1 X162.075 Y120.833 E0.0726 G1 X162.805 Y121.285 E0.0726 G1 X163.44 Y121.864 E0.0726 G1 X163.958 Y122.549 E0.0726 G1 X164.341 Y123.318 E0.0726 G1 X164.576 Y124.145 E0.07261 G1 X164.65 Y124.931 E0.06676 G1 X164.657 Y154.984 E2.53989 G1 X164.576 Y155.855 E0.07395 G1 X164.341 Y156.682 E0.0726 G1 X163.958 Y157.451 E0.0726 G1 X163.44 Y158.136 E0.0726 G1 X162.805 Y158.715 E0.0726 G1 X162.075 Y159.167 E0.0726 G1 X161.274 Y159.477 E0.0726 G1 X160.422 Y159.637 E0.07328 G1 X160.168 Y159.648 E0.02147 G1 X160.058 Y159.654 ;WIPE_START G1 X159.992 Y159.657 F7800 G1 X152.992 Y159.657 G1 X152.772 Y159.276 ;WIPE_END ;WIPE_START G1 F6240 G1 X149.86 Y159.296 E-1.33
I tried to added T0 and T-0 each time the filament change, the result is the same.
Thank you for your help
-
@Cyberyo34 I only print dual with simplify because the Prusa slicer doesn't have a tower to deny. But I don't think the slicer is responsible for this.
-
Do you have something in the tool changer in the prusa slicer?
-
@Cyberyo34 I recently ran into a similar issue, and I fixed it by guarding the tool change macros with
M400
commands at the beginning and the end of the macro files to ensure moves aren't getting interleaved. -
@Proschi78 In tool changer i have nothing, only in filament gcode start and end (EX T0 and T-0)
I think the problem is the offset of Z, i 'm trying now to put a Z offset
-
@Cyberyo34 Here is a gcode of simplify in dual mode.
-
@Proschi78 Thank you so much !
It seem my problem was about the zoffset of tool 1, but only on firmware issue, i don't understand why, physicly my 2 nozzle a straight, i think this is about the probe offset maybe but the value it's not the same...
Now trying my first print in dual. ;op
-
-