Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    IDEX Setup Macro Issues

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    4
    15
    641
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • RogerPodacterundefined
      RogerPodacter
      last edited by RogerPodacter

      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.

      1. 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.
      2. after the crash recovers, then T0 moves back out approximately 100mm to the bed and parks.
      3. , 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.
      4. 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
      

      IDEX_Calibration_reg_0.2mm_PLA_26m.gcode

      tpost0.g
      tpost1.g
      tpre0.g
      tpre1.g
      tfree0.g
      tfree1.g

      sebkritikelundefined 1 Reply Last reply Reply Quote 0
      • sebkritikelundefined
        sebkritikel @RogerPodacter
        last edited by sebkritikel

        @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
        

        Large(ish?) IDEX - 6HC, 1HCL
        Stratasys Dimension 1200es to 6HC Conversion

        RogerPodacterundefined 1 Reply Last reply Reply Quote 0
        • RogerPodacterundefined
          RogerPodacter @sebkritikel
          last edited by RogerPodacter

          @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)
          
          RogerPodacterundefined 1 Reply Last reply Reply Quote 0
          • RogerPodacterundefined
            RogerPodacter @RogerPodacter
            last edited by RogerPodacter

            ok so after i made all changes the behavior did the exact same thing with the following new files. literally same behavior in the same order.

            IDEX_Calibration_reg_0.2mm_PLA_26m.gcode
            tpre0.g
            tpost0.g
            tfree0.g
            tpre1.g
            tpost1.g
            tfree1.g

            sebkritikelundefined 1 Reply Last reply Reply Quote 0
            • sebkritikelundefined
              sebkritikel @RogerPodacter
              last edited by sebkritikel

              @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

              Large(ish?) IDEX - 6HC, 1HCL
              Stratasys Dimension 1200es to 6HC Conversion

              RogerPodacterundefined 1 Reply Last reply Reply Quote 0
              • RogerPodacterundefined
                RogerPodacter @sebkritikel
                last edited by RogerPodacter

                @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=veS7V6F3ttg

                EDIT: 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
                
                
                RogerPodacterundefined 1 Reply Last reply Reply Quote 0
                • RogerPodacterundefined
                  RogerPodacter @RogerPodacter
                  last edited by

                  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.

                  Proschi3Dundefined 1 Reply Last reply Reply Quote 0
                  • Proschi3Dundefined
                    Proschi3D @RogerPodacter
                    last edited by

                    @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
                    

                    Love my Duet 3 Mini.
                    https://www.instagram.com/proschi3d
                    https://youtube.com/@proschi3d
                    https://www.proschi3d.de

                    RogerPodacterundefined 1 Reply Last reply Reply Quote 0
                    • RogerPodacterundefined
                      RogerPodacter @Proschi3D
                      last edited by RogerPodacter

                      @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.

                      Proschi3Dundefined 1 Reply Last reply Reply Quote 0
                      • Proschi3Dundefined
                        Proschi3D @RogerPodacter
                        last edited by

                        @RogerPodacter

                        I have no H2 in my file.

                        G1 H2 U379 F6000 ; park the U carriage
                        

                        Love my Duet 3 Mini.
                        https://www.instagram.com/proschi3d
                        https://youtube.com/@proschi3d
                        https://www.proschi3d.de

                        RogerPodacterundefined 1 Reply Last reply Reply Quote 1
                        • RogerPodacterundefined
                          RogerPodacter @Proschi3D
                          last edited by

                          @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.

                          Proschi3Dundefined sebkritikelundefined 2 Replies Last reply Reply Quote 1
                          • Proschi3Dundefined
                            Proschi3D @RogerPodacter
                            last edited by

                            @RogerPodacter 👍

                            Love my Duet 3 Mini.
                            https://www.instagram.com/proschi3d
                            https://youtube.com/@proschi3d
                            https://www.proschi3d.de

                            1 Reply Last reply Reply Quote 1
                            • sebkritikelundefined
                              sebkritikel @RogerPodacter
                              last edited by sebkritikel

                              @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!

                              Large(ish?) IDEX - 6HC, 1HCL
                              Stratasys Dimension 1200es to 6HC Conversion

                              Proschi3Dundefined 1 Reply Last reply Reply Quote 0
                              • Proschi3Dundefined
                                Proschi3D @sebkritikel
                                last edited by

                                @sebkritikel I think the H2 command is to be used to move axes that are not homed.

                                Love my Duet 3 Mini.
                                https://www.instagram.com/proschi3d
                                https://youtube.com/@proschi3d
                                https://www.proschi3d.de

                                dc42undefined 1 Reply Last reply Reply Quote 0
                                • dc42undefined
                                  dc42 administrators @Proschi3D
                                  last edited by

                                  @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.

                                  Duet WiFi hardware designer and firmware engineer
                                  Please do not ask me for Duet support via PM or email, use the forum
                                  http://www.escher3d.com, https://miscsolutions.wordpress.com

                                  1 Reply Last reply Reply Quote 1
                                  • First post
                                    Last post
                                  Unless otherwise noted, all forum content is licensed under CC-BY-SA