IDEX Setup Macro Issues
-
Looking for some help with a new IDEX printer. i had "some" success if i do not use the tpost.g macros, and simply add the following to my slicer custom Toolchange scripting:
{if layer_num>=1}; park the old extruder {if previous_extruder==0}G0 X-70 {elsif previous_extruder==1}G0 X380{endif} ;change to the new T{next_extruder} ;unpark it {if next_extruder==0}G0 X-70{elsif next_extruder==1}G0 X380{endif}{endif}
However i dont prefer this method, and i would rather use the Duet macros. but when i use the following macros, i get various issues.
- printing starts normally and the 1st layer completes, but then upon the first toolchange, the T0 crashes into the left side of the printer attempting to park.
- after the crash recovers, then T0 moves back out approximately 100mm to the bed and parks.
- , then tool T1 begins clicking extruder for about 10 seconds, where the gears just click and i can visibly see the gear clicking. at this time temperature is at proper printing 205C. finally the tool T1 moves over to the print area and begins printing normally.
- switches back to T0, and T0 now begins clicking on the extruder. then T0 crashes into T1.
its very baffling to me. i have some success using only the slicer. but in Duet gcode i am struggling.
Here are my files:
config.g; General preferences G90 ; send absolute coordinates... M83 ; ...but relative extruder moves M550 P"V-Core3" ; set printer name ;M669 K11 Y1:-1:0:-1 ; Dual Markforged Kinematics https://forum.duet3d.com/topic/7796/haq-xy/125 https://forum.duet3d.com/topic/21021/dual-markforged-kinematics?_=1672244913067 M669 K1 X1:0:0:0 Y1:-1:0:-1 Z0:0:1:0 U0:0:0:1; Matrix mapping for Axis - X:Y:Z:U G21 ; Set Units to Millimeters ; Network M552 S2 ; enable network M586 P0 S1 ; enable HTTP M586 P1 S0 ; disable FTP M586 P2 S0 ; disable Telnet G4 S2 ; wait for expansion boards to start ; Drives M569 P0.0 S0 D2 ; Left Z physical drive 0.0 goes forwards M569 P0.1 S0 D2 ; Rear Z physical drive 0.1 goes forwards M569 P0.2 S0 D2 ; Right Z physical drive 0.2 goes forwards M569 P0.3 S1 D2 ; Right U toolhead drive 0.3 goes forwards M569 P0.4 S1 D2 ; Left X toolhead drive 0.4 goes forwards M569 P0.5 S0 D2 ; Left Y drive 0.5 goes forwards M569 P0.6 S1 D2 ; Right Y drive 0.6 goes reverse M569 P20.0 S1 D2 ; Extruder physical drive 20.0 goes forwards M569 P21.0 S0 D2 ; Extruder physical drive 21.0 goes forwards M584 Z0.0:0.1:0.2 Y0.5:0.6 X0.4 U0.3 E20.0:21.0 ; set drive mapping M350 U16 X16 Y16 Z16 E16:16 I1 ; configure microstepping with interpolation M92 U80.0 X80.00 Y80.00 Z800.00 E690:400 ; set steps per mm M906 U1400 X1400 Y1400 Z1300 E1000:700 I30 ; set motor currents (mA) and motor idle factor in per cent -- safe for Duet 3 mini 5+ M84 S30 ; Set idle timeout M566 U500.00 X500.00 Y500.00 Z60.00 E300:120 P1 ;X1500.00 Y1500.00 Z6.00 E300 P1 ;E120.00 P1 ; set maximum instantaneous speed changes (mm/min) M203 U30000.00 X30000.00 Y30000.00 Z1000.00 E7200:3600 ;E3600.00 ; set maximum speeds (mm/min) M201 U10000.00 X10000.00 Y10000.00 Z100.00 E10000:3600 ;E3600.00 ; set accelerations (mm/s^2) M207 S0.6 F7200 Z0.2 ; firmware retraction orbiter 2.0 ; Axis Limits M208 X-70 U0 Y0 Z0 S1 ; set axis minima M208 X310 U380 Y308 Z300 S0 ; set axis maxima ;M208 X-70:310 Y0:308 U0:308 Z0:300 ; Endstops M574 X1 S1 P"20.io2.in" ; configure active high endstops Toolhead 1 low end M574 U2 S1 P"21.io2.in" ; configure active high endstops Toolhead 2 high end M574 Y2 S1 P"io2.in" ; configure active high endstops. IO0 and IO1 also are UART, so do not put endstops on them, use them elsewhere to free up UART. M574 Z1 S2 M671 X-4.5:155:304.5 Y-4.5:305:-4.5 S5 ; define positions of Z leadscrews or bed levelling screws ;M557 X30:280 Y20:300 P5 ; define 5x5 mesh grid M557 X30:280 Y20:270 P5 ; Heaters M308 S0 P"temp0" Y"thermistor" T100000 B3950 A"Keenevo 600W Bed" ; configure sensor 0 as thermistor on pin temp0 M950 H0 C"out0" T0 Q10 ; Define Heater0 as the heated bed, bind to Sensor0 M140 H0 P0 ; Define Heated Bed M307 H0 R0.602 K0.401:0.000 D2.44 E1.35 S1.00 B0 ; PID Tuning for Heater0, Heated Bed (100C) M143 H0 S140 ; Set temperature limit for Heater0 to 120C M308 S1 P"20.temp0" Y"thermistor" T100000 B4725 C7.060000e-8 A"Slice Hotend 0" ;Slice Engineering 300C thermistor, settings are online M950 H1 C"20.out0" T1 Q100 ; Define Heater1 as Extruder0 heater, bind to Sensor1 M307 H1 R2.808 K0.368:0.000 D4.56 E1.35 S1.00 B0 V23.8 ; PID Tuning for Heater1, Extruder0 (240C) M143 H1 S325 ; Set temperature limit for heater 1 to 285C M308 S2 P"temp1" Y"thermistor" T100000 B3950 C7.060000e-8 A"Chamber" ; configure sensor 2 as thermistor on pin temp1 M950 H2 C"out1" T2 ;Q10 ; create chamber heater output on out1 and map it to sensor 2 M307 H2 R0.01 K0.200:0.000 D60 E1.35 S1.00 B1 ; enable bang-bang mode for the chamber heater and set PWM limit M141 H2 ; map chamber to heater 2 M143 H2 S120 ; set temperature limit for heater 2 to 60C M308 S3 P"21.temp0" Y"pt1000" A"Slice Hotend 1" ;Slice Engineering RTD PT1000 450C, settings are online M950 H3 C"21.out0" T3 Q100 ; Define Heater1 as Extruder0 heater, bind to Sensor1 M307 H3 R2.808 K0.368:0.000 D4.56 E1.35 S1.00 B0 V23.8 ; PID Tuning for Heater1, Extruder0 (240C) M143 H3 S325 ; Set temperature limit for heater 1 to 285C M308 S4 P"20.temp1" Y"thermistor" A"Cooling Block" T100000 B3950 C7.060000e-8 ; Define Sensor as Chamber temperature M308 S5 Y"drivers" A"4028 Power" ; 4028 power using spare heater M308 S6 Y"mcu-temp" A"MCU" ; Define Sensor3 as the integrated MCU temperature sensor M308 S7 Y"drivers" A"TMC Drivers" ; Define Sensor4 as the TMC overheat sensor M308 S8 Y"mcu-temp" P"20.dummy" A"Toolboard MCU" M308 S9 Y"drivers" P"20.dummy" A"1LC Stepper" M308 S10 P"temp2" Y"thermistor" T100000 B3950 C7.060000e-8 A"Orbiter Motor" ; configure sensor 9 as thermistor on pin temp2 M308 S11 P"spi.cs1" Y"thermocouple-max31856" K"K" A"TC0 Chamber Heater"; define temperature sensor number 10 as a K Type thermocouple on the first port of a temperature daughter board plugged into the expansion board with CAN bus address 3. M308 S12 P"spi.cs2" Y"thermocouple-max31856" K"K" A"TC1 Chamber Fins"; define temperature sensor number11 as a T Type thermocouple on the first port of a temperature daughter board plugged into the expansion board with CAN bus address 3. ; Fans M950 H4 C"!out2" T2 Q10 ;H2 ; Define Heater2 as the 4028 fan power, bind to Sensor3 M143 H4 P2 S200 ; Needed M143 to set max temp so the graph scaled correctly M950 F0 C"!20.out1+out1.tach" Q25000 ;Q500 ; create fan 0 on pin out4 and set its frequency M106 P0 C"T0 Layer Fan" L0.0 X1.0 S0 H-1 B0.1 ; set fan 0 name and value. Thermostatic control is turned off M950 F1 C"20.out2+out2.tach" Q500 ; Fan 1 uses out3, and using out3.tach as a tacho input M106 P1 C"T0 Hotend Fan" S0 H1 T45 ; set fan 1 name and value. Thermostatic control turned on for Hotend M950 F2 C"out5" Q500 ; create fan 1 on pin out5 and set its frequency M106 P2 C"Board Fan" S0 H5:6:7 T42 ; set fan 1 name and value. Thermostatic control turned on for Hotend M950 F3 C"!out3+out3.tach" Q500 ; Chamber Heater Fan Noctua NF-F12 Industrial M106 P3 C"Chamber Heater Fan" H11 T30 ; S0.3 L0.3 X0.6 B0.1 T30:40 ; set fan 1 name and value. Thermostatic control turned on for Hotend. M950 F4 C"out6" Q500 ; create fan 4 for Water Cooling 12V Fan 4 on pin out4 and set its frequency M106 P4 C"Radiator Cooling Fan" S0 H4 T35 ; set fan 1 name and value. Thermostatic control turned on for liquid cooling hotend M950 F5 C"out4+out4.tach" Q500 ; create fan 4 for Water Cooling 12V Fan 4 on pin out4 and set its frequency M106 P5 C"Liquid Cooling Pump" S0 H4 T20 ; set fan 1 name and value. Thermostatic control turned on for liquid cooling hotend M950 F6 C"!21.out1+out1.tach" Q25000 ;Q500 ; create fan 6 on pin out4 and set its frequency M106 P6 C"T1 Layer Fan" L0.0 X1.0 S0 H-1 B0.1 ; set fan 6 name and value. Thermostatic control is turned off M950 F7 C"21.out2+out2.tach" Q500 ; Fan 7 uses out3, and using out3.tach as a tacho input M106 P7 C"T1 Hotend Fan" S0 H3 T45 ; set fan 7 name and value. Thermostatic control turned on for Hotend ; Tool 0 X Axis M563 P0 D0 H1 X0 F0 S"Mosquito Mag Liquid" ; define tool 0 G10 P0 X0 Y0 Z0 S0 R0 ;S220 R175 ; set tool 0 axis offsets, set initial tool 0 active 60C and standby temperatures to 0C ; Tool 1 U Axis M563 P1 D1 H3 F6 X3 S"Mosquito Mag Air" ; define tool 0 G10 L1 P1 U0 X0 Y0 Z0.4 S0 R0 ;U-155 S220 R175 ; set tool 0 axis offsets, set initial tool 0 active 60C and standby temperatures to 0C ; Tool 2-- copy mode M563 P2 S"copy mode" D0:1 H1:3 X0:3 F0:6 ; tool 2 uses both extruders and hot end heaters, maps X to both X and U, and uses both print cooling fans G10 P2 X77.5 Y0 U-77.5 S0 R0 ; set tool offsets and temperatures for tool 2 M567 P2 E1:1 ; set mix ratio 100% on both extruders for copy mode ;M568 P2 S1 ; turn on mixing for tool 2 ; Tool 3-- mirror mode M563 P3 S"mirror mode" D0:1 H1:3 X0:3 F0:6 ; tool for mirror mode G10 P3 X-100 Y0 U-155 S0 R0 ; tool offset for mirror mode (flipped X offset) M567 P3 E1:1 ; set mix ratio 100% on both extruders for mirror mode ;M568 P3 S1 ; turn on mixing for tool 2 ; Z-Probe Inductive Probe ;M558 P5 C"20.io0.in" H5 F400 T5000 ; set Z probe type to unmodulated and the dive height + speeds M558 P8 C"^20.io0.in" H8 F400 T9000 A1 ; S0.01 ; set Z probe type to unmodulated and the dive height + speeds G31 P1000 X-28 Y-20 Z8.85 ; K0 ; set Z probe trigger value, offset and trigger height, more Z means closer to the bed ;; BLTouch ; M950 S0 C"io7.out" ; Create a servo pin on io7 ; M558 P9 C"io7.in" H5 F240 T10800 A5 ; set Z probe type to unmodulated and the dive height + speeds ; G31 P25 X-28.00 Y-13.00 Z0.78 ; set Z probe trigger value, offset and trigger height, more Z means closer to the bed ;Accelerometer M955 P20.0 I16 ;Input Shaper M593 P"zvdd" F44 ; for 10k acceleration ;M593 P"mzv" F42.5 ; for 15k acceleration ;Filament Sensor0 ;M591 D0 P3 C"20.io1.in" S1 ;M591 D0 L27 R10:190 ;PanelDue 5i M575 P1 S1 B57600 ;NeoPixels x3 M150 X3 Q4000000 ;R128 U128 B128 P128 S2 F0 M150 X3 R255 U255 B255 W255 P255 S2 F0 ; display led ; Custom settings G29 S1 M572 D0:1 S0.05 ; set Pressure Advance K-factor M501 ;M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss ; init filament sensor error global variables if !exists(global.filamentTimestamp) global filamentCounter = 0 global filamentTimestamp = state.Uptime ; init print time logging if !exists(global.runtime) M98 P"runtime.g" ; init LED variables if !exists(global.warmUp) global warmUp = false ; Select default tool M404 N1.75 ; Define filament diameter for print monitor T0
-
@RogerPodacter Can you verify your firmware version?
Some notes
- tfree0.g - You have G1 S2 ... 'S' is deprecated for this use type (instead use H2).
- I don't think, for your use case, you need to have anything in your 'tpre' files. When calling a tool (say T0), tpre0 executes before tpost0. In this case you're asking the machine to move in a more negative direction (from -69, defined in tfree0, to -70, in tpre)
Comments above also apply to your tfree1.g and tpre1.g.
Looking at your gcode file - I don't see a tool called prior to you purge line, is that correct? It appears as if you set some temperatures, home all axes, set temperatures again, prime 'a' nozzle, and then select your initial tool. Can you also post your homeall.g? My recommendation for a start of print file is to set temperatures, home each axis (it may make sense to deselect all tools during homeall.g), select your initial tool, prime the nozzle, and then start printing. It seems that your print file is not selecting a tool until the model is about to begin.
It looks like you're setting the active/standby temperatures for T0 using the M568 command, but I don't see one for T1. I may be missing something based on other macros you're calling early in the print file.
@RogerPodacter said in IDEX Setup Macro Issues:
, then tool T1 begins clicking extruder for about 10 seconds, where the gears just click and i can visibly see the gear clicking. at this time temperature is at proper printing 205C
Are you saying that, while the T1 temperature is at 205C and parked, when it executes the tpost1.g G1 E6 F900, the extruder is not working properly?
Here are my tpre, tpost, and tfree for T0 on my IDEX machine
; tpre0.g ; called before tool 0 is selected ; If the printer hasn't been homed, home it if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed || !move.axes[3].homed G28
; tpost0.g ; called after tool 0 has been selected M106 R2 ; restore print cooling fan speed M116 P0 ; wait for tool 0 heaters to reach operating temperature G1 E26 F900 ; extrude 20mm G4 P1000 G1 F2100 E-1 G1 X{move.axes[0].min} Y{move.axes[1].max-80} F18000
M83 ; relative extruder movement M106 S0 ; turn off our print cooling fan G1 E-1 F2100 G91 ; relative axis movement G1 Z1 F1200 ; up 1mm G90 ; absolute axis movement G1 H2 X{move.axes[0].min+20} Y{move.axes[1].max} F18000 ; move the X carriage to -240mm G1 H2 X{move.axes[0].min} Y{move.axes[1].max} F6000 ; park the X carriage at -260mm G1 E-25 F1500 ; retract 12mm
-
@sebkritikel thanks, i am working on your suggestions. to answer some questions, yes, both extruders function normally and extrude ok. but for whatever reason, those macros suddenly make both extruders have a clicking gear turn for about 10 seconds each. temperatures are correct etc so its something wrong with my macros.
EDIT: I am on firmware v3.4.2 on the Duet 3 Mini 5+ and also on 1LC toolboards 1 and 2.
here is my homeall.g.
if (move.axes[0].homed && move.axes[1].homed && move.axes[2].homed && move.axes[3].homed) echo "already homed, skipping" else G91 ; Relative positioning G1 Z10 F6000 H2 ; Lift Z relative to current position G1 X-999 F3000 H1 ; coarse home X, Y and U G1 X4 F600 ; move 4mm away from the homing switches G1 X-10 H1 ; fine home X, Y and U G1 U999 F3000 H1 ; coarse home X, Y and U G1 U-4 F600 ; move 4mm away from the homing switches G1 U10 H1 ; fine home X, Y and U G1 Y999 F3000 H1 ; Move X and Y-axes to the endstops and stop (first pass) G1 Y-4 F600 ; Move Y-axis to the endstop and stop (first pass) G1 Y10 F600 H1 ; Move X-axis to the endstop once more (second pass) G90 ; Absolute positioning M401 ; deploy Z probe (omit if using bltouch) ; Home Z using the Z-Probe M290 R0 S0 ; Reset baby-stepping to 0 G1 X183 Y170 F6000 ; Move T0 to probing point (X150, Y150), including probe offset G30 ; Probe the bed and set Z to the probe offset M402 ; retract probe (omit if using bltouch)
-
-
@RogerPodacter Hmmm right now I'm not seeing anything stick out to me. The gcode file looks mostly fine now, and the T0/T1 sections all look expected to me (it does look like in the new gcode file T0 is used to print both calibration set's first layers, but that shouldn't be causing tool changing issues).
Any chance you can try and upload a video or two of the tool changing behavior using the above print file and tool change files?
If, without a print running, if you select T0, jog it to the center of the machine, and then select T1 - what happens? Same for T1 - select it, jog to the machine center, and select T0 - what happens? Same behavior or different? Perhaps possible to upload quick videos of that as well?
Not a huge help, but here is how my machine responds after doing the above test for T0 - first run is from my posted files from earlier, second run I include restore points commands (copied from your tpost files).
https://www.youtube.com/watch?v=9vC4J3762Sk
https://www.youtube.com/watch?v=87awKG0txCY -
@sebkritikel thanks this is a bit helpful.
if i start out and home all axes so all is good, then move Tool 0 to X100 mm within the bed area. if i then select T0 tool again to park it, it crashes into the left going to -100mm. almost as if it mirrored the coordinates.
Here is a video:
https://www.youtube.com/watch?v=veS7V6F3ttgEDIT: i learned that if i remove the tfree0.g file, nothing at all happens when i change tools to T0. as soon as i add back tfree0.g, it crashes left into X-100mm.
Its related to G1 R2 store point, but i dont understand why or how.tpost0.g
; tpost0.g ; called after tool 0 has been selected ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Sat Jul 09 2022 21:54:57 GMT-0400 (Eastern Daylight Time) ; Wait for set temperatures to be reached M106 R2 ; restore print cooling fan speed M116 P0 ; wait for tool 0 heaters to reach operating temperature M83 ; relative extruder movement G1 E0.5 F3600 ; extrude 2mm G1 R2 X0 Y0 Z2 ; restore position 2mm above G1 R2 X0 Y0 Z0 ; restore position
tfree0.g
; tfree0.g ; called when tool 0 is freed ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Sat Jul 09 2022 21:54:57 GMT-0400 (Eastern Daylight Time) 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 ; up 3mm G90 ; absolute axis movement G1 H2 X0 F6000 ; park the X carriage at -48mm
tpre0.g
; tpre0.g ; called before tool 0 is selected ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Sat Jul 09 2022 21:54:57 GMT-0400 (Eastern Daylight Time) ; Put G/M Codes in here to run when Tool 0 is about to be activated if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed || !move.axes[3].homed G28
tpost1.g
; tpost1.g ; called after tool 1 has been selected ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Sat Jul 09 2022 21:54:57 GMT-0400 (Eastern Daylight Time) ; Wait for set temperatures to be reached M106 R2 ; restore print cooling fan speed M116 P1 ; wait for tool 1 heaters to reach operating temperature M83 ; relative extruder movement G1 E0.5 F3600 ; extrude 2mm G1 R2 X0 Y0 Z2 ; restore position 2mm above G1 R2 X0 Y0 Z0 ; restore position
tfree1.g
; tfree1.g ; called when tool 1 is freed ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Sat Jul 09 2022 21:54:57 GMT-0400 (Eastern Daylight Time) 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 ; up 3mm G90 ; absolute axis movement G1 H2 U379 F6000 ; park the U carriage at +248mm
tpre1.g
; tpre1.g ; called before tool 1 is selected ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Sat Jul 09 2022 21:54:57 GMT-0400 (Eastern Daylight Time) ; Put G/M Codes in here to run when Tool 0 is about to be activated ;G1 U380 F6000 ; move the head away from the print ;M208 Z-0.3 ; Temporarily change limit to acount for Tool 1 higher Z offset
-
sorry to spam this thread, but this likely seems like a bug in RRF, perhaps related to Dual Markforged IDEX kinematics.
for my last example above, when i start the X carriage at 100mm and deselect Tool 0, it crashes into the left at -100mm. but that is because i was also at Y100mm.
if i start out at X100 Y20, deselect Tool 0, the X carriage now crashes into the left to -20mm. it seems to be something related to the kinematics not properly compensating during an IDEX tool change. i could be wrong here but so far that's what i am seeing.
-
@RogerPodacter here are my Idex macros maybe that will help.
; tpre0.g ; called before tool 0 is selected ; ; generated by RepRapFirmware Configuration Tool v3.3.14 on Wed Nov 16 2022 15:37:20 GMT+0100 (Mitteleuropäische Normalzeit) ; tpre0.g ; called before tool 0 is selected ; If the printer hasn't been homed, home it if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed || !move.axes[3].homed G28
; 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 ; relative extruder movement G1 E0.5 F3600 ; extrude 2mm
; 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 G53 Z3 F500 ; up 3mm G90 ; absolute axis movement G1 X-400 F3600 ; park the X carriage at -48mm G53 Z-3 F500
; tpre1.g ; called before tool 1 is selected ; ; generated by RepRapFirmware Configuration Tool v3.3.14 on Wed Nov 16 2022 15:37:20 GMT+0100 (Mitteleuropäische Normalzeit) ; If the printer hasn't been homed, home it if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed || !move.axes[3].homed G28
; 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 ; relative extruder movement G1 E0.5 F3600 ; extrude 2mm
; 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 G53 Z3 F500 ; up 3mm G90 ; absolute axis movement G1 U400 F6000 ; park the U carriage at +355mm G53 Z-3 F500
-
@Proschi78 thanks, i'm fairly confident now this is surely a bug. in your tfree0.g file the line where you park the carriage G1 U400 F6000 ; park the U carriage at +355mm, for some reason the X and Y axes become "separated" or independent, and the U, X and Y axis dont compensate for each other during motion. this only happens during a tool change.
if i park my X and U carriage at any location during a tool change, the U carriage is not properly held in place as the X moves to some location. similarly when i was parking X and U and NOT specifying a Y coordinate, the axis somehow loses position and doesnt correct for the Y location. its really strange but thats the best description i can give.
perhaps i can get a better video.
-
-
@Proschi78 thank you so much. removing that H2 seems to have fixed almost all of my issues. damn. let me try running some tests and see how this is working.
-
-
@RogerPodacter said in IDEX Setup Macro Issues:
@Proschi78 thank you so much. removing that H2 seems to have fixed almost all of my issues. damn. let me try running some tests and see how this is working.
Hope it fixes it! Its been a second since I reviewed the why for the H2 in my files, but I could see how in a CoreXYish/Markforged that would mess you up FWIW I use the more Cartesian IDEX approach - I'll have to keep an eye out for differences like that in the future. Some similar discussion on 'H2' here: https://forum.duet3d.com/topic/29180/possible-bug-observed-after-v3-3-to-3-4-1-update/5?_=1672696734502
Glad someone was able to find the issue!
-
@sebkritikel I think the H2 command is to be used to move axes that are not homed.
-
@Proschi78 said in IDEX Setup Macro Issues:
@sebkritikel I think the H2 command is to be used to move axes that are not homed.
Correct, it's normally used only in homing files and for testing purposes.