IDEX Homing Issues



  • I have a IDEX printer with the leveling probe on the X axis. I have a G28 in the start script to home all before the program starts. When I start a program that uses the X axis tool with the printer not yet homed it homes fine and starts the program. When I try this with the U axis tool it homes X, U, and Y but then stops before leveling the bed and sits idle. The other thing is if I home all before starting a program that uses the U axis tool it homes and starts fine.

    Does anyone know why I would have to home all before I can started a program with a home all in it, only for the U axis tool?


  • Moderator

    We'd need to see your files to have much of a guess.



  • Ok, I will work on cleaning up my config a little so I can post it but if it was not clear in the description, the problem is that T0 is active with the start of the program and set to a temperature, then after the y-axis is homed, it switches to T1 which has the probe to do the z homing but T1 is at room temperature so the firmware wont allow it to do the probing because its not at temperature. I tested this by heating both extruders with the start of the program and it homed and started fine.

    Seems to me that the firmware does not realize that the tool probe does not need to at temperature to do the probing.



  • @Phaedrux

    G90                                             ; send absolute coordinates...
    M83                                             ; ...but relative extruder moves
    
    M669 K0 Y1:-1:0:1				; select Markforged Kinematics Y to react with X and U
    
    ; Axis Limits
    M208 X35 Y0 U-18.4 Z0 S1                        ; set axis min
    M208 X419 U365 Y336 Z300 S0                     ; set axis max
    
    ; Network
    M552 S1                                         ; enable network
    M586 P0 S1                                      ; enable HTTP
    M586 P1 S0                                      ; disable FTP
    M586 P2 S0                                      ; disable Telnet
    
    ; Drives
    M569 P1 S0                                      ; X physical drive 0 goes backwards
    M569 P1 S1                                      ; Y right physical drive 1 goes forwards
    M569 P2 S0                                      ; U physical drive 2 goes backwards
    M569 P3 S1                                      ; E1 physical drive 3 goes forwards
    M569 P4 S1                                      ; E2 physical drive 4 goes forwards
    M569 P5 S0                                      ; Z left physical drive 5 goes backwards
    M569 P6 S0                                      ; Z center physical drive 6 goes backwards
    M569 P7 S1                                      ; Z right physical drive 7 goes forwards
    M569 P9 S0                                      ; Y left physical drive 8 goes backwards
    M584 X0 U2 Y1:9 Z5:6:7 E3:4                     ; set drive mapping
    
    M350 X16 U16 Y16 Z16 E16:16 I1                  ; configure microstepping with interpolation
    M92 X100.00 U100.00 Y100.00:80.00 Z1096:1096:1096 E1827.00:1827.00       ; set steps per mm
    M566 X900.00 U900.00 Y900.00:900.00 Z12.00:12.00:12.00 E40.00:40.00      ; set maximum instantaneous speed changes (mm/min)
    M203 X6000.00 U6000.00 Y6000.00:6000.00 Z1000.00:1000.00:1000.00 E1800.00:1800.00 ; set maximum speeds (mm/min)
    M201 X500.00 U500.00 Y500.00:500.00 Z20.00:20.00:20.00 E120.00:120.00      ; set accelerations (mm/s^2)
    M906 X800 U800 Y800:800 Z200:200:200 E500:500 I30                ; set motor currents (mA) and motor idle factor in per cent
    M84 S30                                         ; Set idle timeout
    
    ; Endstops
    M574 X2 S1 P"xstop"                             ; X max active high endstop switch
    M574 U1 S1 P"e0stop"                            ; U min active high endstop switch
    M574 Y2 S1 P"ystop"                             ; Y max active high endstop switch
    ;M574 Y2 S1 P"ystop+zstop"                      ; Y Double max active high endstop switch
    
    ; Z-Probe
    M671 X-20.6:200:420.6 Y14.3:333.3:14.3 S2       ;Locations left, center, right          
    M950 S0 C"duex.e6heat"                          ; create servo pin 0 for BLTouch
    M558 P9 C"zprobe.in+zprobe.mod" H5 F120 T6000   ; set Z probe type to bltouch and the dive height + speeds
    G31 P25 X28.8 Y0 Z2.15                          ; set Z probe trigger value, offset and trigger height
    
    ; Heaters
    M308 S0 P"bedtemp" Y"thermistor" T100000 B4534 C9.565227e-8  ; configure sensor 0 as thermistor on pin bedtemp
    M950 H0 C"bedheat" T0                                     ; create bed heater output on bedheat and map it to sensor 0
    M143 H0 S120                                              ; set temperature limit for heater 0 to 120C
    M307 H0 B0 S1.00                                          ; disable bang-bang mode for the bed heater and set PWM limit
    M140 H0                                                   ; map heated bed to heater 0
    M308 S1 P"e0temp" Y"thermistor" T500000 B4723 C1.19622e-7 ; configure sensor 1 as thermistor on pin e0temp
    M950 H1 C"e0heat" T1                                      ; create nozzle heater output on e0heat and map it to sensor 1
    M143 H1 S280                                              ; set temperature limit for heater 1 to 280C
    M307 H1 B0 S1.00                                          ; disable bang-bang mode for heater  and set PWM limit
    M308 S2 P"e1temp" Y"thermistor" T500000 B4723 C1.19622e-7 ; configure sensor 2 as thermistor on pin e1temp
    M950 H2 C"e1heat" T2                                      ; create nozzle heater output on e1heat and map it to sensor 2
    M143 H2 S280                                              ; set temperature limit for heater 2 to 280C
    M307 H2 B0 S1.00                                          ; disable bang-bang mode for heater  and set PWM limit
    
    ; Fans
    M950 F0 C"fan0" Q500                             ; create fan 0 on pin fan0 and set its frequency
    M106 P0 S0 H-1                                   ; set fan 0 value. Thermostatic control is turned off
    M950 F1 C"fan1" Q500                             ; create fan 1 on pin fan1 and set its frequency
    M106 P1 S1 H1 T45                                ; set fan 1 value. Thermostatic control is turned on
    M950 F2 C"fan2" Q500                             ; create fan 2 on pin fan2 and set its frequency
    M106 P2 S0 H-1                                   ; set fan 2 value. Thermostatic control is turned off
    M950 F3 C"duex.fan8" Q500                        ; create fan 3 on pin duex.fan4 and set its frequency
    M106 P3 S1 H2 T45                                ; set fan 3 value. Thermostatic control is turned on
    
    ; Tools
    M563 P0 D0 H1 X3 F0 S"Left"                      ; define tool 0 left 
    G10 P0 X0 Y-1.2 Z0                               ; set tool 0 axis offsets
    G10 P0 R0 S0                                     ; set initial tool 0 active and standby temperatures to 0C
    M563 P1 D1 H2 F2 S"Right"                        ; define tool 1 Right
    G10 P1 X0 Y0 Z0                                  ; set tool 1 axis offsets
    G10 P1 R0 S0                                     ; set initial tool 1 active and standby temperatures to 0C
    M563 P2 D0:1 H1:2 X0:3 F0:2 S"Copy"              ; define tool 2 copy
    G10 P2 X-75 Y0 U75 S0 R0                         ; set tool 2 axis offsets
    M567 P2 E1:1                                     ; set mix ratio 100% on both extruders
    
    M501                                             ; Record
    
    ; homeall.g
    
    ; X,U,Y Homing
    G91                         ; relative positioning
    G1 H2 Z5 F6000              ; lift Z relative to current position
    G1 H1 X475 U-475 Y500 F1800 ; move quickly to X or Y endstop and stop there (first pass)
    G1 H1 X475                  ; home X axis
    G1 H1 U-475                 ; home U axis
    G1 H1 Y500                  ; home Y axis
    G1 X-5 U5 Y-5 F6000         ; go back a few mm
    G1 H1 X25 F360              ; move slowly to X axis(second pass)
    G1 H1 U-25                  ; move slowly to U axis(second pass)
    G1 H1 Y25                   ; move slowly to Y axis(second pass)
    
    ; Z Homing
    G90 G1 X171 Y150 F10000      ; Move to the center of the bed
    M558 F500                    ; Fast probing speed
    G30                          ; First probe
    M558 F50                     ; Slow probing speed
    G30                          ; Second probe
    G32                          ; Level the bed
    G90 G1 X171 Y150 F10000      ; Move to the center of the bed
    G30                          ; Bed Deviation probe
    G90 G1 X417                  ; Park x-axis
    
    


  • @Phaedrux I solved the issue by taking the "wait to temps stabilize" out of my slicer and instead put it into Tpre0.g by adding a M116 P0.



  • @Phaedrux
    That caused another issue... Since I'm using Tpreo.g now it also runs Tpost0.g at the beginning. Which is actually good, I wanted to do a purge first before it starts so that will work. The issue is when the program first starts it purges at X80, but when it does a tool change it purges at X98. This is because T0 starts at X-18, off the bed. I'll have to find a way around this so the first and sequential purges are at the same spot.

    It also says "attempting to purge without a tool selected" and I think that's because T0 is currently in standby and not active, but that is what is allowing it to home z. I think I need to tell it that T0 is active in TPRE0.g.



  • Found out what was causing the purge location issue was because when I cleaned up the config I put the M208 before the M584 which messed things up. I moved it back down and it solved that issue. Now just have to find a solution for the "attempting to purge without a tool selected" issue.



  • @Phaedrux The other strange thing is if I manually home, and then start a program using tool 2 (copy) it only turns on tool 2 (H1+H2) and starts just fine. If I do the same thing but with a G28 in the start script. It turns the heater for tool 0(H1), and tool 2 (H1+H2) and (not tool 1(H2). Why would calling for home change which heater is turned on? Why is tool 0 being told to be active. There are no T0's in the program, homing, or macros.


  • Moderator

    What do you have in your tool change macros? Tpre, tpost, etc?



  • @Phaedrux Nothing now, I commented them all out to see if that had something to do with it. It didn't change the result.


  • Moderator

    What's in your start gcode?

    Can you post the first 50 lines or so of gcode from the sliced file?

    Tool changing isn't my specialty, so I'm not really sure what could be going on.



  • It starts fine as is, if I remove the semicolon in front of the G28 that's what causes the issues I described previously with T0 and T2, T1 is fine with the G28 in place.

    G90
    M82
    M140 S60
    M190 S60
    M104 S205 T2
    M109 S205 T2
    ;G28
    G92 E0
    G1 E-1.0000 F1800
    G1 Z0.250 F1002
    ; process COPY
    ; layer 1, Z = 0.250
    T2
    ; tool H0.250 W0.900
    ; skirt
    G1 X158.612 Y116.689 F6000
    G1 E0.0000 F540
    G92 E0
    G1 X158.977 Y116.362 E0.0422 F1440
    G1 X159.460 Y116.174 E0.0868
    G1 X159.499 Y116.128 E0.0920
    G1 X162.155 Y112.569 E0.4741
    G1 X162.180 Y112.463 E0.4835
    G1 X162.899 Y111.474 E0.5888
    G1 X163.113 Y110.547 E0.6706
    G1 X163.419 Y110.113 E0.7163
    G1 X164.289 Y109.558 E0.8051
    G1 X164.909 Y108.705 E0.8959
    G1 X165.363 Y108.425 E0.9418
    G1 X166.311 Y108.269 E1.0245
    G1 X167.313 Y107.630 E1.1268
    G1 X167.342 Y107.625 E1.1293
    G1 X172.684 Y104.019 E1.6840
    G1 X172.991 Y103.366 E1.7460
    G1 X173.389 Y103.005 E1.7923
    G1 X174.442 Y102.626 E1.8887
    G1 X175.164 Y102.020 E1.9697
    G1 X175.633 Y101.857 E2.0125
    G1 X176.512 Y101.883 E2.0882
    G1 X177.798 Y101.421 E2.2058
    G1 X177.914 Y101.426 E2.2157
    G1 X185.462 Y98.590 E2.9097
    G1 X185.567 Y98.406 E2.9279
    G1 X186.004 Y98.074 E2.9752
    G1 X186.998 Y97.820 E3.0635
    G1 X187.513 Y97.374 E3.1221
    G1 X187.990 Y97.204 E3.1657
    G1 X188.376 Y97.215 E3.1990
    G1 X188.603 Y97.093 E3.2211
    G1 X189.077 Y97.025 E3.2623
    G1 X189.641 Y97.145 E3.3119
    G1 X190.643 Y96.889 E3.4009
    G1 X191.185 Y96.972 E3.4481
    G1 X191.600 Y97.227 E3.4900
    G1 X202.011 Y96.561 E4.3878
    G1 X202.756 Y96.096 E4.4634
    G1 X203.289 Y96.008 E4.5099
    G1 X204.265 Y96.238 E4.5962
    G1 X205.093 Y96.105 E4.6684
    G1 X205.584 Y96.208 E4.7116
    G1 X206.410 Y96.744 E4.7963
    G1 X207.867 Y97.087 E4.9251
    G1 X207.921 Y97.126 E4.9308
    G1 X215.427 Y98.725 E5.5913
    G1 X216.440 Y98.517 E5.6803
    G1 X216.947 Y98.607 E5.7246
    G1 X217.452 Y98.918 E5.7756
    G1 X217.812 Y98.946 E5.8067
    G1 X218.236 Y99.134 E5.8466
    G1 X219.047 Y99.900 E5.9427
    G1 X219.520 Y100.192 E5.9905
    G1 X228.489 Y104.886 E6.8617
    G1 X228.992 Y104.827 E6.9052
    G1 X229.509 Y104.974 E6.9515
    G1 X230.525 Y105.780 E7.0631
    G1 X231.632 Y106.213 E7.1654
    G1 X232.003 Y106.552 E7.2086
    G1 X232.331 Y107.211 E7.2720
    G1 X233.179 Y107.883 E7.3651
    G1 X233.441 Y108.353 E7.4114
    G1 X233.442 Y108.363 E7.4123
    G1 X238.423 Y112.739 E7.9829
    G1 X238.724 Y112.756 E8.0088
    G1 X239.216 Y112.997 E8.0560
    G1 X240.231 Y114.169 E8.1894
    G1 X241.263 Y114.887 E8.2976
    G1 X241.539 Y115.283 E8.3391
    G1 X241.687 Y115.850 E8.3896
    G1 X242.350 Y116.615 E8.4767
    G1 X242.519 Y117.137 E8.5239
    G1 X242.495 Y117.410 E8.5475
    G1 X246.073 Y122.803 E9.1045
    G1 X246.508 Y123.124 E9.1510
    G1 X246.969 Y123.906 E9.2292
    G1 X247.535 Y124.253 E9.2862
    G1 X247.846 Y124.670 E9.3310
    G1 X247.995 Y125.233 E9.3811
    G1 X248.198 Y125.449 E9.4067
    G1 X248.383 Y125.870 E9.4462
    G1 X248.422 Y126.369 E9.4893
    G1 X248.943 Y127.252 E9.5775
    G1 X249.015 Y127.797 E9.6248
    G1 X248.848 Y128.399 E9.6786
    G1 X250.897 Y134.890 E10.2644
    G1 X251.091 Y135.130 E10.2909
    G1 X251.598 Y136.836 E10.4441
    G1 X252.218 Y137.857 E10.5469
    G1 X252.308 Y138.341 E10.5892
    G1 X252.210 Y138.898 E10.6379
    G1 X252.414 Y139.586 E10.6996
    G1 X252.360 Y140.116 E10.7456
    G1 X251.913 Y140.951 E10.8271
    G1 X251.682 Y148.880 E11.5098
    G1 X251.916 Y149.195 E11.5435
    G1 X252.046 Y149.728 E11.5907
    G1 X251.278 Y154.450 E12.0025
    G1 X250.986 Y154.914 E12.0497
    G1 X250.958 Y154.933 E12.0525
    G1 X249.628 Y161.500 E12.6291
    G1 X249.915 Y162.033 E12.6813
    G1 X249.950 Y162.631 E12.7328
    G1 X249.440 Y163.915 E12.8517
    G1 X249.429 Y164.710 E12.9201
    G1 X249.246 Y165.172 E12.9629
    G1 X248.709 Y165.757 E13.0312
    G1 X248.009 Y167.519 E13.1944
    G1 X247.590 Y167.915 E13.2441
    G1 X245.406 Y173.077 E13.7264
    G1 X245.518 Y173.399 E13.7557
    G1 X245.469 Y173.970 E13.8050
    G1 X244.802 Y175.184 E13.9243
    G1 X244.516 Y176.508 E14.0408
    G1 X244.210 Y176.950 E14.0872
    G1 X243.622 Y177.328 E14.1473
    G1 X243.052 Y178.364 E14.2491
    G1 X242.596 Y178.711 E14.2984
    G1 X242.247 Y178.793 E14.3292
    


  • @Phaedrux Looks like a T1 in the home all fixes it. I dont understand why you have to call the tool probe as the WIKI states that the probe must be on the X axis tool.


Log in to reply