My quad carriage machine is failing on Tools. AGAIN.



  • Hello,

    a while back, i have reported my issue where my axes were working correctly, but the tools didn't. While I "solved" the issue with just swapping the X motor mapping for tools that were swapped.
    Ok, that was somewhat weird.

    But it homed the axes unreliably. Like, it skipped with homing second X. Not everytime, but every 3rd time i homed. It still does that.
    The problem continued and ofcourse this machine is basically unusable, since it wasn't homing tools while doing multimaterial print. It was getting worse and worse, until yesterday, it just failed HARD. Print stopped because one tool just didn't home correctly but plowed into endstop until Duet decided it had enough, stopped the print and called it insufficient axes homed.

    I have reset the board (Duet2 wifi + Duex5 btw), uploaded firmware.

    First to 3.0 , then to 3.1.
    Situation was even crazier.
    Upgraded to 3.2b2

    I have re-set the config, as recommended, so that i now use XYZUVWA axes in this particular order. Not that it helped, it made things worse!

    Now, i have tool 0, that is ok, i guess.
    Tool 1 that selects but moves carriage that should be tool 3
    Tool 2 that selects but moves carriage that should be tool 1
    Tool 3 that selects but does not move anything!

    All axes home and move.
    The tools, not so much.

    Here is my config:

    ; Configuration file for Duet WiFi (firmware version 3)
    ; executed by the firmware on start-up
    ; by MaracMB
    ; General preferences
    G90  							; send absolute coordinates...
    M83  							; relative extruder moves
    M550 P"MarX-Quad"  				; set printer name
    
    ; Network
    M552 S1  						; enable network
    M586 P0 S1  					; enable HTTP
    M586 P1 S0  					; disable FTP
    M586 P2 S0  					; disable Telnet
    
    ; Drives
    M569 P0 S0  					; physical drive 0 goes backwards - X0
    M569 P1 S1  					; physical drive 1 goes forwards - Z1
    M569 P2 S1  					; physical drive 2 goes forwards - Y
    M569 P3 S1  					; Physical drive 3 goes forwards - X2
    M569 P4 S1  					; Physical drive 4 goes forwards - Z2
    M569 P5 S1  					; Physical drive 5 goes forwards - X1
    M569 P6 S1  					; Physical drive 6 goes forwards - X3
    M569 P7 S0  					; physical drive 7 goes backwards - e1
    M569 P8 S0  					; physical drive 8 goes backwards - e2
    M569 P9 S0  					; physical drive 9 goes backwards - e3
    M569 P10 S0  					; physical drive 10 goes backwards - e4
    
    ; Drive mapping
    M584 X0 Y2 Z1:4 U5 V3 W6 A4 E7:8:9:10 P6 ; Drive mapping X=0, Y=2, Z=1 and 4, X2=U=5, X3=A=3, X4=B=6 and Z2=V=4,extruder motors 7,8,9,10. Drive 1 and 4 is combined Z.
    M350 X32 Y32 Z32 U32 V32 W32 A32 I1 	; Configure microstepping with interpolation
    M350 E16:16:16:16 I0 					; Configure microstepping without interpolation
    
    ; Motion parameters
    M92 X160.00 Y160.00 Z1600.00 U160.00 V160.00 W160.00 A1600.00  		; Set steps per mm motion
    M92 E396.00:396.00:396.00:400.00 									; Set steps per mm extruders
    M566 X420.00 Y420.00 Z15.00 U420.00 V420.00 W420.00 A15.00  		; set maximum instantaneous speed changes motion (mm/min)
    M566 E320.00:320.00:320.00:320.00 									; set maximum instantaneous speed changes extruders(mm/min)
    M203 X12000.00 Y12000.00 Z1200.00 U12000.00 V12000.00 W12000.00 A1200.00 	; set maximum speeds motion (mm/min)
    M203 E7200.00:7200.00:7200.00:7200.00            					; set maximum speeds extruders(mm/min)
    M201 X880.00 Y880.00 Z240.00 U880.00 V880.00 W880.00 A240.00 		; set accelerations motion (mm/s^2)
    M201 E6400.00:6400.00:6400.00:6400.00                  				; set accelerations extruders (mm/s^2)
    M906 X950 Y1050 Z950 U950 V950 W950 A950 I30 						; set motor currents (mA) and motor idle factor in per cent motion
    M906 E950:950:950:950 I30 											; set motor currents (mA) and motor idle factor in per cent extruders
    M84 S30 
    ;M84 X Y U V W S30                                                 	; Set idle timeout for horizontal movement
    ;M84 Z A S600                                                 		; Set idle timeout for vertical movement
    ;M84 E0:1:2:3 S30                                                 	; Set idle timeout for extruders
    
    ; Axis Limits
    M208 X-170 Y-165 Z0 U-112 V-155 W-112 A0 S1 	; Set axies minimas
    M208 X115 Y155 Z350 U168 V112 W157 A350 S0 		; Set axies maximas
    
    ; Endstops
    M574 X1 S1 P"!xstop" 							; configure active-low endstop for low end on X via pin Xstop
    M574 Y1 S1 P"!zstop" 							; configure active-low endstop for low end on Y via pin Zstop
    M574 Z1 S1 P"!ystop" 							; configure active-low endstop for low end on Z via pin Ystop
    M574 U2 S1 P"!duex.e2stop" 						; configure active-low endstop for high end on X2 via pin duex.e2stop
    M574 V1 S1 P"!e0stop" 							; configure active-low endstop for low end on X3 via pin e0stop
    M574 W2 S1 P"!duex.e3stop" 						; configure active-low endstop for high end on X4 via pin duex.e3stop
    M574 A1 S1 P"!e1stop" 							; configure active-low endstop for low end on Z2 via pin e1stop
    
    ; Z-Probe
    M558 P0 H5 F120 T6000 							; disable Z probe but set dive height, probe speed and travel speed
    M557 X-125:125 Y-125:125 S125 	 				; define mesh grid
    
    ; Heaters and sensors
    M308 S0 P"bedtemp" Y"thermistor" T100000 B3950 	            ; configure sensor 0 as thermistor on pin bedtemp
    M308 S1 P"duex.e2temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin duex.e2temp
    M308 S2 P"duex.e3temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 2 as thermistor on pin duex.e3temp
    M308 S3 P"duex.e4temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 3 as thermistor on pin duex.e4temp
    M308 S4 P"duex.e5temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 4 as thermistor on pin duex.e5temp
    M308 S5 Y"mcu-temp" A"MCU" 				    				; Configure sensor for MCU
    M308 S6 Y"drivers" A"DRIVERS" 								; configure sensor 6 as temperature warning and overheat flags on the TMC2660 on Duet
    
    M950 H0 C"bedheat" T0                                       ; create bed heater output on bedheat and map it to sensor 0
    M307 H0 B0 S1.00                                            ; disable bang-bang mode for the bed heater and set PWM limit
    M143 H0 S100                                                ; set temperature limit for heater 0 to 120C
    M140 H0                                                     ; map heated bed to heater 0
    M950 H1 C"duex.e2heat" T1                                   ; create nozzle heater output on duex.e3heat and map it to sensor 1
    M143 H1 S300                                                ; set temperature limit for heater 1 to 300C
    M307 H1 B0 S1.00                                            ; disable bang-bang mode for heater  and set PWM limit
    M950 H2 C"duex.e3heat" T2                                   ; create nozzle heater output on duex.e4heat and map it to sensor 2
    M143 H2 S300                                                ; set temperature limit for heater 2 to 300C
    M307 H2 B0 S1.00                                            ; disable bang-bang mode for heater  and set PWM limit
    M950 H3 C"duex.e4heat" T3                                   ; create nozzle heater output on duex.e5heat and map it to sensor 3
    M143 H3 S300                                                ; set temperature limit for heater 3 to 300C
    M307 H3 B0 S1.00                                            ; disable bang-bang mode for heater  and set PWM limit
    M950 H4 C"duex.e5heat" T4                                   ; create nozzle heater output on duex.e6heat and map it to sensor 4
    M143 H4 S300                                                ; set temperature limit for heater 4 to 300C
    M307 H4 B0 S1.00                                            ; disable bang-bang mode for heater  and set PWM limit
    
    ; Fans
    M950 F0 C"duex.fan4" Q1000 		; create fan 1 on pin duex.fan4 and set its frequency 	-- TOOL FAN 0
    M106 P0 S0 H-1 					; set fan 1 value. Thermostatic control is turned off 	-- TOOL FAN 0
    M950 F1 C"duex.fan5" Q1000 		; create fan 2 on pin duex.fan5 and set its frequency 	-- TOOL FAN 1
    M106 P1 S0 H-1 					; set fan 2 value. Thermostatic control is turned off 	-- TOOL FAN 1
    M950 F2 C"duex.fan6" Q1000 		; create fan 3 on pin duex.fan6 and set its frequency 	-- TOOL FAN 2
    M106 P2 S0 H-1 					; set fan 3 value. Thermostatic control is turned off 	-- TOOL FAN 2
    M950 F3 C"duex.fan8" Q1000 		; create fan 4 on pin duex.fan8 and set its frequency 	-- TOOL FAN 3
    M106 P3 S0 H-1 					; set fan 4 value. Thermostatic control is turned off 	-- TOOL FAN 3
    
    M950 F4 C"fan0" Q1000 			; create fan 5 on pin fan0 and set its frequency  		-- HOTEND FAN tool 0
    M106 P4 S0 H1 T45 				; set fan 5 value. Thermostatic control is turned on 	-- HOTEND FAN tool 0
    M950 F5 C"fan1" Q1000 			; create fan 6 on pin fan1 and set its frequency 		-- HOTEND FAN tool 1
    M106 P5 S0 H2 T45 				; set fan 6 value. Thermostatic control is turned on 	-- HOTEND FAN tool 1
    M950 F6 C"fan2" Q1000 			; create fan 7 on pin fan2 and set its frequency 		-- HOTEND FAN tool 2
    M106 P6 S0 H3 T45 				; set fan 7 value. Thermostatic control is turned on 	-- HOTEND FAN tool 2
    M950 F7 C"duex.fan3" Q1000 		; create fan 3 on pin duex.fan3 and set its frequency 	-- HOTEND FAN tool 3
    M106 P7 S0 H4 T45 				; set fan 3 value. Thermostatic control is turned on 	-- HOTEND FAN tool 3
    
    ;Extra fan ports
    ;external stepper - PWMed
    M950 F8 C"duex.fan7" Q500 		; fan 8 on pin duex.fan7 EXTRA FAN
    M106 P8 S0 H-1 C"extFan" 		; set fan 8 value. Thermostatic control is turned off
    
    ;Case fan - buck set
    ;M950 F4 c"allwayson" Q500 				; Assign Fan 4 to onboard Fan1 Port
    
    ;LED strip
    ;M950 F5 C"duex.pwm" 					; create port for LEDs on pin duex.fan8
    ;M106 P5 S0 C"LIGHTS" 					; LED control
    
    ; Tools
    
    M563 P0 S"FrontLeft" D0 H1 F0 X0 ; define tool 0
    G10 P0 X0 Y0 Z0 U0 V0 W0 			; set tool 0 axis offsets
    G10 P0 R0 S0 						; set initial tool 0 active and standby temperatures to 0C
    M563 P1 S"FrontRight" D1 H2 F1 X5 	; define tool 1, ports X axis to U - motor 5
    G10 P1 X0 Y0 Z0 U0.3 V0 W0			; set tool 1 axis offsets
    G10 P1 R0 S0 						; set initial tool 1 active and standby temperatures to 0C
    M563 P2 S"BackLeft" D2 H3 F2 X3 	; define tool 3, ports X axis to A - motor 3
    G10 P2 X0 Y161.85 Z0 U0 V0.30 W0 	; set tool 2 axis offsets
    G10 P2 R0 S0 						; set initial tool 1 active and standby temperatures to 0C
    M563 P3 S"BackRight" D3 H4 F3 X6 	; define tool 3, ports X axis to A - motor 6
    G10 P3 X0 Y175 Z0 U0 V0 W0.85 		; set tool 3 axis offsets
    G10 P3 R0 S0 						; set initial tool 1 active and standby temperatures to 0C
    
    ; DITTO TOOLs 
    M563 P4 S"DITTOFront" D0:1 H1:2 X0:5 F0:1						; Tool 2 uses extruders 1 and 2, hotend heaters 1 and 2, maps X to X and U, uses tool fans 4 and 5
    G10 P4 X77 Y0 U-77    											; Set tool offsets and temperatures for tool 2 - moves X 77 left and U 77 right
    G10 P4 R0 S0
    M567 P4 E1.0:1.0:0.0:0.0 										; Set mix ratio 100% on both front extruders
    M563 P5 S"QUAD" D0:1:2:3 H1:2:3:4 X0:3:5:6 F0:1:2:3				; Tool 6 uses extruders 1,2,3and4, hotend heaters 1,2,3and4, maps X to U,A and B, and tool fans 4,5,6 and 7
    G10 P5 Y0 X0 U-155 V0 W-155   								; Set tool offsets and temperatures for tool 2 - moves X 77 left and U 77 right
    G10 P5 R0 S0
    M567 P5 E1:1:1:1												; Set mix ratio 100% on all extruders
    
    ;Filament runout sensors
    ;M591 P1 C"duex.somewhere" S1 D0 
    ;M591 P1 C"duex.somewhere" S1 D1
    ;M591 P1 C"duex.somewhere" S1 D2 
    ;M591 P1 C"duex.somewhere" S1 D3 
    
    ; Automatic saving after power loss is enabled
    M911 S23.00 R23.50 P"M913 X0 Y0 U0 V0 W0 A0 G91 M83 G1 Z3 E-5 F3000" ; Set voltage thresholds and actions to run on power loss
    
    ; MISC
    M501                                                        ; load saved parameters from non-volatile memory
    
    ;Firmware retractions
    M207 P0 S0.70 F2100 T2500 Z0.4
    M207 P1 S0.70 F2100 T2500 Z0.4
    M207 P2 S0.70 F2100 T2500 Z0.4
    M207 P3 S0.70 F2100 T2500 Z0.4
    
    

    Help would be appreciated.

    P.S.: @dc42 , i am tagging you in, since there was no response from you for when i firstly reported this. Is it firmware issue? is it hardware issue? is it config issue? What issue is it?


  • administrators

    Please explain how the U, V, W and A axes are supposed to be used (i.e. which axes each carriage is on).



  • @dc42
    it's a dual IDEX. Carthesian style. Two X gantries, both double carriages. One gantry in front, second gantry in the back of Z towers.

    X is front left
    U is front right
    V is back left
    W is back right

    A is second Z motor.



  • Machine

    IMG_4694.jpg



  • @dc42 do you need any more info? Should i downgrade firmware? As mentioned I did try 3.1 and didn’t work. If i have to go with RRF 2.05 then this would really screw thing up for future plans i have.
    Weird part is, i am experiencing iterations of these glitches if i rewire stuff. But anyway i wire it, something is messed up. It has mismatched tools and it homes unreliably in any combination.

    The only “unusual” is that i have Y motor on Z driver and Z driver for Y as i would like (waiting for parts) to have a dual bed with dual motor that would enable me to utilize the power of quad X to it’s full potential.

    If it turns out this can’t be driven with Duet2 it would be a real bummer.

    Thank you.


  • Moderator

    Can you share your other config files as well? Tool change, homing, bed, etc.


  • administrators

    What is the current problem? Homing not working reliably, or tools not moving as they should?

    I suggest you proceed as follows:

    1. Check that none of your homing files contains a G1 command that doesn't have the H1 or H2 modifier on it.
    2. Get homing of the individual axes working reliably, when no tool is selected. This tests the motor movement directions, and partially checks
    3. Check that when no tool is selected, homing all also works reliably.
    4. Check that after homing, if you select a tool then that tool moves correctly when you command X and Y movement. Repeat for all 4 individual tools.
    5. Check that with one of the tools selected, each axis still homes reliably.

    If one of those steps fails, let us know which step it was and in what way it failed.



  • Thank you @Phaedrux ...

    here are the other files.

    homeall:

    G91
    G1 Z5 F6000 H2
    G1 X-400 Y-450 U400 V-400 W400 F4800 H1
    G1 X5 Y5 U-5 V5 W-5 F4200
    G1 Y-10 F360 H1
    G1 X-10 F360 H1
    G1 U10 F360 H1
    G1 V-10 F360 H1
    G1 W10 F360 H1
    M98 Phomez.g
    M300 S2210 P50
    

    homex

    G91               ; relative positioning
    G1 Z2 F6000 H2    ; lift Z relative to current position
    G1 H1 X-320 F1800 ; move quickly to X axis endstop and stop there (first pass)
    G1 X2 F6000       ; go back a few mm
    G1 H1 X-10 F360  ; move slowly to X axis endstop once more (second pass)
    G1 Z-2 F6000 H2   ; lower Z again
    G90               ; absolute positioning
    

    homeu

    G91              ; relative positioning
    G1 Z2 F600 H2    ; lift Z relative to current position
    G1 H1 U320 F1800 ; move quickly to X axis endstop and stop there (first pass)
    G1 U-2 F6000     ; go back a few mm
    G1 H1 U4 F360	 ; move slowly to X axis endstop once more (second pass)
    G1 Z-2 F6000 H2   ; lower Z again
    G90               ; absolute positioning
    

    homev

    G91               ; relative positioning
    G1 Z2 F6000 H2    ; lift Z relative to current position
    G1 H1 V-320 F1800 ; move quickly to X axis endstop and stop there (first pass)
    G1 V2 F6000       ; go back a few mm
    G1 H1 V-10 F360  ; move slowly to X axis endstop once more (second pass)
    G1 Z-2 F6000 H2   ; lower Z again
    G90               ; absolute positioning
    

    homew

    G91              ; relative positioning
    G1 Z2 F600 H2    ; lift Z relative to current position
    G1 H1 W320 F1800 ; move quickly to X axis endstop and stop there (first pass)
    G1 W-2 F6000     ; go back a few mm
    G1 H1 W4 F360	 ; move slowly to X axis endstop once more (second pass)
    G1 Z-2 F6000 H2   ; lower Z again
    G90               ; absolute positioning
    

    homey

    G91               ; relative positioning
    G1 Z5 F6000 H2    ; lift Z relative to current position
    G1 H1 Y-310 F1800 ; move quickly to Y axis endstop and stop there (first pass)
    G1 Y5 F6000       ; go back a few mm
    G1 H1 Y-310 F360  ; move slowly to Y axis endstop once more (second pass)
    G1 Z-5 F6000 H2   ; lower Z again
    G90               ; absolute positioning
    

    homez

    G91               			; relative positioning
    G1 H2 Z2 F6000    			; lift combined Z 2mm relative to current position
    M584 Z1 A4 P7				; split Z to Z and A and show all 7 axes in the interface
    G1 H1 Z-405 A-405 F1200 		; move Z and V down independatly until the endstopa are triggered
    G1 Z2 A2 F600
    G1 H1 Z-5 F60
    G1 H1 A-5 F60
    M584 Z1:4 P7				; combine Z and V and show only 6 axes in interface
    G1 Z5 F1200				; lift both Zs to 5
    G90					; absolute positioning
    

    I don't use ABL since it's pointless, machine is manually levelled and adjusted so all 4 heads can print in quad. Or so it did. So bed.g makes no point, as obvious from config, but still:

    M561 ; clear any bed transform
    G29  ; probe the bed and enable compensation
    

    For toolchanges, stuff is disabled until it works again...

    tfree0.g

    ;G1 E-12 F3600 			; retract 12mm
    G91 				; relative axis movement
    G1 Z2 F500 			; up 2mm
    G90 				; absolute axis movement
    G28 X				; park the U carriage home - slow
    ;M106 S0         		; turn off print cooling fan
    

    tfree1.g

    ;G1 E-12 F3600 			; retract 12mm
    G91 				; relative axis movement
    G1 Z2 F500 			; up 2mm
    G90 				; absolute axis movement
    G28 U				; park the U carriage home - slow
    ;M106 S0         		; turn off our print cooling fan
    

    etc.

    post0.g

    M106 R2         	; restore print cooling fan speed
    M116 P0 		; wait for tool 0 heaters to reach operating temperature
    G28 X
    ;G1 E12 F3600 		; extrude 12mm
    

    post1.g

    M106 R2         	; restore print cooling fan speed
    M116 P1 		; wait for tool 1 heaters to reach operating temperature
    G28 U
    ;G1 E12 F3600 		; extrude 12mm
    

    etc.

    preN.g scripts are empty.



  • @dc42 axes move and home as they should. Tools are mismatched.

    again:
    Tool 1 that selects but moves carriage that should be tool 3
    Tool 2 that selects but moves carriage that should be tool 1
    Tool 3 that selects but does not move anything!

    1. posted one comment up for @Phaedrux . I think it's set corectly
    2. checked. works.
    3. Homeall works 85% of the time. 15% of the time U does not home. But homes when i send homeall again.
    4. this is the problem. i hope you understand now. It does not move the right carriage. T0 is ok, the rest is chaos.
    5. this prettymuch can't be done because of the issue we are trying to solve.


  • @dc42 just to be clear, this was working until saturday. Worked as, it was working, quad was working, tools T1 and T3 needed to have swapped motors mapped for it to work correctly but it did work. It was showcased on E3D facebook page god damnit. It is not that i am making this stuff up. The multicolored prints were showcased on my private Facebook group where 110 people follow and see it. Btw, MarX group. Welcome.
    The problem was unreliable homing of tools in between multicolor prints, that resulted in crappy failed prints. And the events of unreliable homing got increasingly more frequent until it came to a point where it failed so much it stopped the print.

    So today i reverted to firmware 2.05, then to 3.0, then to 3.1, then to 3.2b1, then to 3.2b2, then reset the config to remap the axes....

    NOTHING helped. it is just messed up in different patterns regarding tools. Axes home and work as should. But tools don't.



  • this is only a not so distant memory. The time i miss

    Click for pic





  • 11th stepper is external, simple expansion breakout board (just as shown somewhere in the Wikis...) with original watterott tmc2209 until i get something better. Set to 16/256 microsteps and adjusted the jumpers accordingly for configuring it. That, motor 10 runs extruder for T3.

    The tools do extrude correctly btw. If that helps. So only definitions/mapping for X carriages have gone crazy.



  • @MaracMB That is an impressive machine and I can certainly see that debugging it won't be easy!

    Might help if you post your config-override too for completeness

    In your homeu and homew, you only step back by 4mm before doing the slow home, while everywhere else (homex, v, all) you step back by 10mm. Just wondering if that's not enough and you're getting some failed homings on U and W during your tool changes which is messing them up? Might also explain why it seems intermittent if you're just on the limit?

    I've noticed that in your homez file, you don't re-hide your A axis, you only re-assign driver 4 to Z:

    M584 Z1:4 P7				; combine Z and V and show only 6 axes in interface
    

    TBH, it could be over-complicating things as you don't need to split the axis to use multiple endstops for multiple motors in RRF3 any more:
    https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors#Section_Axis_levelling_using_endstops
    Just thinking it will remove one layer of drive mapping/assignments, homing etc from the equation.

    Other unrelated thing, in your config, you have set you motor microstepping at 32 with interpolation, but the duet doesn't support this - it's only 16 with interpolation



  • @engikeneer this project really was just a space/machinecount optimization that went it’s own way... i have much cooler stuff ready for this. But first things first.

    On endstops i retreat only 4 mm because of optical endstops. Triggering that is perfect. 4 mm is more than enough. Config is working version so a lot is unfinnished. It still needs a lot work.

    Splitting the axes for the Z... yes, i am aware of that possibility to optimize that but didn’t consider it a thing that would needed to be done.

    The interpolation on 32 microsteps is on because it makes less whine. Not that i would need 256interpolation... 2660 arent the quietest of tmc’s.



  • @engikeneer the P7 parameter for axis visibility is there because i, when this thing gets resolved, will hide second Z axis (A). For now, i just set it to all visible, yet left for later change back to P6



  • RESOLVED

    For anyone, that might experience such headache and stumbles upon this:
    one maps the axes, not the motors to the tools. and you count the axes, not specify motors...


  • administrators

    I'm glad you solved it! Have you any suggestions on how we can improve the documentation to help others to avoid the same issues?



  • @dc42 well, it’s still RTFM thing i guess. But it may be nice to just copy paste that section with asigning axes to tools in “Creating a tool that uses just one carriage”.
    The instructions later on, when defining ditto tools clearly state
    ‘’’ Note that axes are mapped in the order XYZUVWABC, where X=0, Y=1, Z=2, U=3 etc, not by driver number, so X0:3 means 'map axis 0 (X) and 3 (U) to X'.’’’

    But this is minor. The extent of frustration, optimization and learning one goes through may just be beneficial 😉

    So tools definitions solved, and properly understood, i have to check homing reliability now. That may still be an issue.
    I am stripping
    m120
    M84 Prime.g
    M121
    From my toolchange post scripts to see if that helps with tools homing reliability. That’s the only thing that’s left i guess. If it won’t, i’ll nag on.



  • i have re-set my toolchange scripts. It worked for a while.
    After 2-3 hours, the 4th axies failed to home when tool was deselected.

    Error G0/G1
    M120
    G91
    G1 X50 F6000
    G90
    M121

    Where does this come from ? This is not in my homing files, not in my toolchange files, nowhere.

    My tfree file now look like :

    G1 E-12 F3600 			; retract 12mm
    G91 				; relative axis movement
    G1 Z2 F360 			; up 2mm
    G90 				; absolute axis movement
    G28 X				; park the U carriage home - slow
    M106 S0         		; turn off print cooling fan
    

    My tpost look like:

    M106 R2         	; restore print cooling fan speed
    M116 P0 		; wait for tool 0 heaters to reach operating temperature
    G91
    G1 X1 H2
    G90
    G28 X
    G1 E12 F1200 		; extrude 12mm
    

    I thought it worked. But then it didn't. 😞

    Also, when i homeall , all tools home normaly.
    But when i homeall via gcode file (G28), second tool does not home correctly.

    homeu.g :

    G91              ; relative positioning
    G1 Z2 F360 H2    ; lift Z relative to current position
    G1 U320 F3600 H1 ; move quickly to X axis endstop and stop there (first pass)
    G1 U-2 F600 H2    ; go back a few mm
    G1 U4 F360 H1 	 ; move slowly to X axis endstop once more (second pass)
    G1 Z-2 F360 H2   ; lower Z again
    G90               ; absolute positioning
    

    Homeall.g :

    G91                     	; relative positioning
    G1 Z2 F360 H2           	; lift Z relative to current position
    G1 X-400 Y-450 U400 V-400 W400 F3600 H1	; move quickly to X and Y axis endstops and stop there (first pass)
    G1 X5 Y5 U-5 V5 W-5 F3600 H2         	; go back a 5 mm
    G1 Y-10 X-10 U10 V-10 W10 F360 H1 			; second pass
    M98 Phomez.g			; call homing script for Z axes
    G90
    


  • 4aee4cf3-cab0-4626-87a4-603b267f1d3d-image.png


  • administrators

    Is it the U and/or W axes that failed to home? If so, it is just one of those, or both of them?

    Those endstop switches are the ones connected to the DueX5 board. Keeping those switches up to date relies on I2C communications between the Duet and the DueX along with an interrupt. A M122 report taken when this happens will provide data on the status of the I2C interface.


  • Moderator

    @MaracMB said in My quad carriage machine is failing on Tools. AGAIN.:

    Also, when i homeall , all tools home normaly.
    But when i homeall via gcode file (G28), second tool does not home correctly.

    What do you mean by this? G28 is homeall.g. How else are you homing all?



  • @dc42 would it help if i shorten the IDE cable in between them?
    I do have to get the wiring in orderly lenghts and routes... it’s A LOT of wiring... 😂

    So it’s basically just latency issue?

    Can ,i in time i do wiring, insert some pauses into homing? Half a second here and there wouldn’t hurt for realiability.


  • Moderator

    Can you post a photo of how you have the Duet and Duex wired together? Particularly the power?

    See the description and photo here for how it should be done.

    https://duet3d.dozuki.com/Wiki/Duex2_and_Duex5_Features#Section_Wiring


Log in to reply