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

IDEX Setup Macro Issues

Scheduled Pinned Locked Moved
Tuning and tweaking
4
15
642
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.
  • undefined
    RogerPodacter
    last edited by RogerPodacter 1 Jan 2023, 23:40 1 Jan 2023, 23:02

    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

    undefined 1 Reply Last reply 2 Jan 2023, 01:34 Reply Quote 0
    • undefined
      sebkritikel @RogerPodacter
      last edited by sebkritikel 1 Feb 2023, 01:40 2 Jan 2023, 01:34

      @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

      undefined 1 Reply Last reply 2 Jan 2023, 12:59 Reply Quote 0
      • undefined
        RogerPodacter @sebkritikel
        last edited by RogerPodacter 1 Feb 2023, 14:56 2 Jan 2023, 12:59

        @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)
        undefined 1 Reply Last reply 2 Jan 2023, 13:47 Reply Quote 0
        • undefined
          RogerPodacter @RogerPodacter
          last edited by RogerPodacter 1 Feb 2023, 13:51 2 Jan 2023, 13:47

          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

          undefined 1 Reply Last reply 2 Jan 2023, 15:08 Reply Quote 0
          • undefined
            sebkritikel @RogerPodacter
            last edited by sebkritikel 1 Feb 2023, 15:19 2 Jan 2023, 15:08

            @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

            undefined 1 Reply Last reply 2 Jan 2023, 15:53 Reply Quote 0
            • undefined
              RogerPodacter @sebkritikel
              last edited by RogerPodacter 1 Feb 2023, 16:41 2 Jan 2023, 15:53

              @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
              undefined 1 Reply Last reply 2 Jan 2023, 17:30 Reply Quote 0
              • undefined
                RogerPodacter @RogerPodacter
                last edited by 2 Jan 2023, 17:30

                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.

                undefined 1 Reply Last reply 2 Jan 2023, 18:41 Reply Quote 0
                • undefined
                  Proschi3D @RogerPodacter
                  last edited by 2 Jan 2023, 18:41

                  @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

                  undefined 1 Reply Last reply 2 Jan 2023, 19:11 Reply Quote 0
                  • undefined
                    RogerPodacter @Proschi3D
                    last edited by RogerPodacter 1 Feb 2023, 19:11 2 Jan 2023, 19:11

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

                    undefined 1 Reply Last reply 2 Jan 2023, 19:16 Reply Quote 0
                    • undefined
                      Proschi3D @RogerPodacter
                      last edited by 2 Jan 2023, 19:16

                      @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

                      undefined 1 Reply Last reply 2 Jan 2023, 19:27 Reply Quote 1
                      • undefined
                        RogerPodacter @Proschi3D
                        last edited by 2 Jan 2023, 19:27

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

                        undefined undefined 2 Replies Last reply 2 Jan 2023, 19:29 Reply Quote 1
                        • undefined
                          Proschi3D @RogerPodacter
                          last edited by 2 Jan 2023, 19:29

                          @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
                          • undefined
                            sebkritikel @RogerPodacter
                            last edited by sebkritikel 1 Feb 2023, 22:02 2 Jan 2023, 22:02

                            @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

                            undefined 1 Reply Last reply 3 Jan 2023, 08:56 Reply Quote 0
                            • undefined
                              Proschi3D @sebkritikel
                              last edited by 3 Jan 2023, 08:56

                              @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 5 Jan 2023, 12:01 Reply Quote 0
                              • dc42undefined
                                dc42 administrators @Proschi3D
                                last edited by 5 Jan 2023, 12:01

                                @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
                                6 out of 15
                                • First post
                                  6/15
                                  Last post
                                Unless otherwise noted, all forum content is licensed under CC-BY-SA