[1.21RC3] Homeall don't work any more



  • Hi there,

    since i updated my Firmware Today my Printer cann't home it self anymore because of that:

    On Cartesian and CoreXY printers, normal G0 and G1 moves are no longer allowed before the corresponding axes have been homed. In particular, if your homex.g, homey.g and homeall.g files raise Z a little at the start and lower it at the end, you will need to add the S2 parameter to those G1 Z moves. Otherwise the G1 Z move will be refused unless Z has already been homed and the homing macro will be terminated.

    I tryed to set the S2 Parameter but i got no sucess for my homeall.g
    My single home Commands work (homex/y/z.g).

    Here is my homeall.g

    [[language]]
    ; More about M915 and how to set it up you can find here: 
    ; https://duet3d.com/wiki/G-code#M915:_Configure_motor_stall_detection
    
    ; Setup Stall Detection on CoreXY
    ; M574 X3 Y3 S3						; set endstops to use motor stall
    
    ; Lift Z relative to current position
    G91
    G1 Z10 F6000 S2
    G90
    
    M913 X50 Y50						; reduce motor current to 50% to prevent belts slipping
    G91							; use relative positioning
    
    ; Home Y
    G1 S3 Y-500 F4000					; move the X to max until it detects the min Point
    G92 Y0							; set Y min Point
    G1 Y30 							; move Y away from min Point
    M400							; wait untill Y is done
    G1 S3 Y500 F4000					; move the Y to min until it detects the min Point
    G1 Y-30						; move Y away from max Point
    
    ; Home X
    G1 S3 X-500 F4000					; move the X to max until it detects the min Point
    G92 X0							; set X min Point
    G1 X30    						; move X away from min Point
    M400							; wait untill X is done
    G1 S3 X500 F4000					; move the Y to min until it detects the min Point
    G1 X-100						; move X away from max Point
    G90							; back to absolute positioning
    
    M913 X100 Y100 Z100					; motor currents back to normal
    
    ; Home Z
    G1 X168 Y95 F2000 					; put head over the centre of the bed, or wherever you want to probe
    G30                					; lower head, stop when probe triggered and set Z to trigger height
    
    ; Lift Z relative to current position
    G91
    G1 Z10 F6000
    G90
    
    M400							; make sure everything has stopped before we reset the motor currents
    ; M915 X Y S3 F0 R3					; Pause the Print and restart after crashing in to something
    
    

    It tryes to home Y and after that it should home X but it moves Y aswell and ended up with a weired Y home move and got a wrong Y position and so on…
    Is it PLS possible to deactivate that S2 Parameter and let me do what i what with my Axis even if they are not homed?



  • DC42: I think a new gcode to "allow unhomed moves" would be nice, similar to "M302: Allow cold extrudes".



  • the move away commands must now contain S2 (things like G1 X30)



  • @kazolar For the X and Y you mean?



  • Here is the Result:
    Video: https://www.youtube.com/watch?v=rNLMseNgcQk

    [[language]]
    ; More about M915 and how to set it up you can find here: 
    ; https://duet3d.com/wiki/G-code#M915:_Configure_motor_stall_detection
    
    ; Setup Stall Detection on CoreXY
    ; M574 X3 Y3 S3						; set endstops to use motor stall
    
    ; Lift Z relative to current position
    G91
    G1 Z10 F6000 S2
    G90
    
    M913 X50 Y50						; reduce motor current to 50% to prevent belts slipping
    G91							; use relative positioning
    
    ; Home Y
    G1 S3 Y-500 F4000					; move the X to max until it detects the min Point
    G92 Y0							; set Y min Point
    G1 Y30 S2							; move Y away from min Point
    M400							; wait untill Y is done
    G1 S3 Y500 F4000					; move the Y to min until it detects the min Point
    G1 Y-30						; move Y away from max Point
    
    ; Home X
    G1 S3 X-500 F4000					; move the X to max until it detects the min Point
    G92 X0							; set X min Point
    G1 X30 S2						; move X away from min Point
    M400							; wait untill X is done
    G1 S3 X500 F4000					; move the Y to min until it detects the min Point
    G1 X-100						; move X away from max Point
    G90							; back to absolute positioning
    
    M913 X100 Y100 Z100					; motor currents back to normal
    
    ; Home Z
    G1 X168 Y95 F2000 					; put head over the centre of the bed, or wherever you want to probe
    G30                					; lower head, stop when probe triggered and set Z to trigger height
    
    ; Lift Z relative to current position
    G91
    G1 Z10 F6000 S2
    G90
    
    M400							; make sure everything has stopped before we reset the motor currents
    ; M915 X Y S3 F0 R3					; Pause the Print and restart after crashing in to something
    
    

  • administrators

    Read the upgrade notes.



  • @dc42:

    Read the upgrade notes.

    This:

    On Cartesian and CoreXY printers, normal G0 and G1 moves are no longer allowed before the corresponding axes have been homed. In particular, if your homex.g, homey.g and homeall.g files raise Z a little at the start and lower it at the end, you will need to add the S2 parameter to those G1 Z moves. Otherwise the G1 Z move will be refused unless Z has already been homed and the homing macro will be terminated.

    Did it already this is why there are S2 Commands in the GCode.
    Pls explain what you wanna say.



  • I have a CoreXY so sending any movements using S2 for X and Y won't result to a movement on a single axis.
    Instead, even without having any axis homed, I still use S1 ie. G1 S1 X10
    I only use S2 for the Z as described in the notes.

    I don't know if this is the correct way but I won't exceed any limits

    My home all script is as shown below:

    G91                     ; relative positioning
    G1 S2 Z5 F1000          ; lift Z relative to current position
    
    ; << Home XY >>
    G1 S1 X-305 Y-305 F6000 ; move quickly to X or Y endstop and stop there (first pass)
    G1 S1 X-305             ; home X axis
    G1 S1 Y-305             ; home Y axis
    G1 S1 X5 Y5 F1000       ; go ahead a few mm
    G1 S1 X-10 F800         ; go back to X endstop slower this time
    G1 S1 Y-10 F800         ; go back to Y endstop slower this time
    G90 
    
    ; << Home Z >>
    M98 Phomez.g 
    
    

    and this is my Z homing:

    
    G91                   ; relative positioning
    G1 S2 Z5 F1000        ; Lift nozzle
    G90                   ;  absolute positioning
    
    m401                  ; or M98 Pdeployprobe.g deploy mechanical Z probe
    G91                   ; relative positioning
    G1 S1 Z-500 F1000     ; Lower bed fast 
    G1 S2 Z5 F1000        ; Lift bed fast 
    G90
    M402                  ; or M98 Pretractprobe.g to retract mechanical Z probe
    
    ;<<< Probe Bed >>>
    G30                   ; Probe at current XY
    
    G91                   ; relative positioning
    G1 S2 Z5 F150         ; lift Z 5 mm
    G90                   ; absolute positioning
    
    

  • administrators

    In your homeall script, this line:

    G1 S1 X5 Y5 F1000 ; go ahead a few mm

    probably won't work because X and Y are already homed at that point. But as they are homed, you can omit the S parameter completely from that line.

    In your homez script, the only line where it's essential to have the S2 parameter is the first G1 line. After that the Z axis is homed, so G1 commands without the S parameter will work too.



  • @dc42:

    In your homeall script, this line:

    G1 S1 X5 Y5 F1000 ; go ahead a few mm

    probably won't work because X and Y are already homed at that point. But as they are homed, you can omit the S parameter completely from that line.

    In your homez script, the only line where it's essential to have the S2 parameter is the first G1 line. After that the Z axis is homed, so G1 commands without the S parameter will work too.

    Well spotted! Thanks



  • @dc42:

    In your homeall script, this line:

    G1 S1 X5 Y5 F1000 ; go ahead a few mm

    probably won't work because X and Y are already homed at that point. But as they are homed, you can omit the S parameter completely from that line.

    In your homez script, the only line where it's essential to have the S2 parameter is the first G1 line. After that the Z axis is homed, so G1 commands without the S parameter will work too.

    Can you please explain me in DETAIL what i did wrong or even missed?

    //EDIT:
    Updated my first Post to my current homeall.g


  • administrators

    How does homing behave now, with your modified homeall.g file?



  • This is what it does:
    Video: https://youtu.be/RsNC2eTbQls

    Again the homeall.g:

    [[language]]
    ; More about M915 and how to set it up you can find here: 
    ; https://duet3d.com/wiki/G-code#M915:_Configure_motor_stall_detection
    
    ; G4 P20000
    
    ; Setup Stall Detection on CoreXY
    ; M574 X3 Y3 S3						; set endstops to use motor stall
    
    ; Lift Z relative to current position
    G91
    G1 Z10 F6000 S2
    G90
    
    M913 X50 Y50						; reduce motor current to 50% to prevent belts slipping
    G91							; use relative positioning
    
    ; Home Y
    G1 S3 Y-500 F4000					; move the Y to max until it detects the min Point
    G92 Y0							; set Y min Point
    G1 Y30 							; move Y away from min Point
    M400							; wait untill Y is done
    
    ; Home X
    G1 S3 X-500 F4000					; move the X to max until it detects the min Point
    G92 X0							; set X min Point
    G1 X30 							; move X away from min Point
    M400							; wait untill X is done
    G90							; back to absolute positioning
    
    M913 X100 Y100 Z100					; motor currents back to normal
    
    ; Home Z
    G1 X168 Y95 F2000 					; put head over the centre of the bed, or wherever you want to probe
    G30                					; lower head, stop when probe triggered and set Z to trigger height
    
    ; Lift Z relative to current position
    G91
    G1 Z10 F6000 
    G90
    
    M400							; make sure everything has stopped before we reset the motor currents
    ; M915 X Y S3 F0 R3					; Pause the Print and restart after crashing in to something
    
    

    It moves for some Reason the X in to + instead of - for homing.


  • administrators

    1. Why are you using G1 S3 xcommands for homing, instead of G1 S1 commands?

    2. Which firmware were you using before the upgrade?

    3. If you position the head near the centre of the bed, then send G91, do subsequent G1 S1 moves make the head move in the correct direction? e.g. G1 S1 X10 should move the head 10mm in the +X direction, assuming the X endstop isn't triggered.



  • @dc42:

    1. Why are you using G1 S3 xcommands for homing, instead of G1 S1 commands?

    2. Which firmware were you using before the upgrade?

    3. If you position the head near the centre of the bed, then send G91, do subsequent G1 S1 moves make the head move in the correct direction? e.g. G1 S1 X10 should move the head 10mm in the +X direction, assuming the X endstop isn't triggered.

    1. I use G1 S3 to home the axis without Endstop.
    Can i use S1 instead?

    2. Before 1.21RC2

    3. I will test this.


  • administrators

    If you mean you want to home the X and Y axes using stall detection, you should still use G1 S1 commands. It is in the M574 command that you use S3 to select stall detection endstops.



  • @dc42:

    If you mean you want to home the X and Y axes using stall detection, you should still use G1 S1 commands. It is in the M574 command that you use S3 to select stall detection endstops.

    If i try S1 instead it dosen't detect a collision anymore.
    With S3 it does.

    I tested you're 3. Point and it moves like it should in the right Direction.


 

Looks like your connection to Duet3D was lost, please wait while we try to reconnect.