G92 doesn't set position on 1.21 firmware



  • I update to 1.21 and now G92 doesn't change postion. For example my homey.g:

    [[g-code]]
    G91                     ; relative positioning
    G1 S2 Z5 F6000             ; lift Z relative to current position
    
    ; home y
    G1 S1 Y315 F1800 ; move quickly to Y axis endstop and stop there (first pass)
    G1 Y-5 F6000       ; go back a few mm
    G1 S1 Y315 F360  ; move slowly to Y axis endstop once more (second pass)
    G1 Y-13 F6000
    G92 Y290
    
    G1 Y-157 F6000
    
    G1 S2 Z-5 F6000      ; lower Z again
    G90               ; absolute positioning
    
    ```Doesn't work now like expected :/.

  • administrators

    It works for me, provided that I have my M208 Y limit set to 290 or greater, otherwise the G1 Y-13 command moves a greater amount to bring the Y position within bed limits.

    What M208 Y settings are you using, and what is the reason for using the G92 command in that file anyway?



  • I use G92 because my bed is slightly offset by 13mm from the y-max endstop. So I move to y-max, move back 13mm and set the the position to y-max. My M208 is M208 X297 Y290 Z350 S0.

    On 1.21 when I set the G92 it doesn't seems to do anything, head position stays like it was. On 1.20 it changes the head position (in web control).


  • administrators

    I've tried setting my M208 Y parameter to 290 and running your homey.g, and it's working for me. The final Y position shown is 133, which is 290-157. It would be 13mm lower if the G92 command was not working. This is on a Cartesian printer running firmware 1.21.

    What happens if you send the commands in homey.g individually from the console?

    Why not set your M208 Y parameter to 303?



  • Hmmm strange. I update to 1.21 again and now it seems to working but I find something strange:
    1. Power up printer - works fine homing.
    2. Turn off motors, axes not homed
    3. Move axes with for example G91\n G1 S3 Y10 (I want to move axes without homing sometimes)
    4. Run home again, y axes shits by 50% (I have y=157 wher y=290 should be.
    Can you try to run this:

    [[language]]
    ; test.g
    ; called to home all axes
    ;
    ; generated by RepRapFirmware Configuration Tool on Fri Feb 16 2018 16:52:18 GMT+0100 (CET)
    
    G91                     ; relative positioning
    G1 S3 Y10 ;this brakes y position at end of the macro. 
    
    G1 S2 Z5 F6000             ; lift Z relative to current position
    
    ; home y
    G1 S1 Y315 F1800 ; move quickly to Y axis endstop and stop there (first pass)
    G1 Y-5 F6000       ; go back a few mm
    G1 S1 Y315 F360  ; move slowly to Y axis endstop once more (second pass)
    G1 Y-13 F6000
    G92 Y290
    
    G1 Y-157 F6000
    
    ; home x
    G1 S1 X315 F1800 ; move quickly to X axis endstop and stop there (first pass)
    G1 X-5 F6000       ; go back a few mm
    G1 S1 X315 F360  ; move slowly to X axis endstop once more (second pass)
    G1 X-3 F1800
    G92 X297
    G1 X-157 F6000
    
    ; home z
    G1 S2 Z5 F200 	   ; raise head 4mm to ensure it is above the Z probe trigger height
    G90 		   ; back to absolute mode
    G30 S-1		   ; lower head, stop when probe triggered and set Z to trigger height
    G92 Z3             ; set Z position to trigger height
    G90;
    G1 Z0 F200
    G91 
    ;G1 Z-1 F200
    G90
    ; retract bltouch
    G1 Z10 F200
    G1 Y4 F3600
    G1 Z4.2 F200
    G1 Z10 F200
    G1 Y157 F6000
    
    ```This confused me and I had think G92 is not working. And well after running this code G92 doesn't work like expected for the Y axis. Can you explain what the S3 parameter is? My printer is an CoreXY so when I run a move with S2 it moves only with one motor.

  • administrators

    G1 S3 changes the M208 axis limit to where the endstop stops motion. If you just meant to move the Y axis without homing it first, I suggest you use G1 S1 not G1 S3. However, the G3 behaviour is arguably incorrect, because if the endstop is not triggered during the G1 S3 move, the M208 axis limit gets set to the current Y position anyway. It would be better if the firmware did not change the M208 limit, and perhaps it should report an error too.

    In a future release I may add S4, meaning behave like S1 but ignore endstops.



  • Oh ok, now I understand. And about S4 I like that idea. And I think a checkbox or something like that in GUI to allow movement from panel/web without homing would be fine. Thank you for you help!


  • administrators

    @dragonn:

    … And I think a checkbox or something like that in GUI to allow movement from panel/web without homing would be fine.

    Not quite a checkbox, but you can create a macro to send M564 H0.



  • @dc42:

    @dragonn:

    … And I think a checkbox or something like that in GUI to allow movement from panel/web without homing would be fine.

    Not quite a checkbox, but you can create a macro to send M564 H0.

    Or add it to your config.g to get the pre 1.21 behavior back 😉



  • But then it would allow me move outside print area when printing as far I know. I find other solution - I edited dwc.js and made btn-move add M564 H0 before move and M564 H1 after move. Fair enough.


Locked
 

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