IDEX Setup Macro Issues
-
@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.