G30 during G28 issue
-
Started now a print. Pause and resume works as expected, skew compensation is active
Axis compensations - XY: 0.00690, YZ: 0.00000, ZX: 0.00000
Inducing a "power failure" and resuming:
Axis compensations - XY: 0.00690, YZ: 0.00000, ZX: 0.00000
So skew compensation is still active and correctly applied, but the shift is there
-
@Leonard03 please post your resurrect.g file (after pausing) and your resurrect-prolog.g file.
-
@dc42 This a ressuregt.g after a print that had a shift, that I cancelled
; Resume printing file "0:/gcodes/xyzCalibration_cube,0.2mm,PLA,Anycubic PLA Pantone Spring Leaf,25m.gcode" after print paused at 2025-05-19 21:06 M140 P0 S60.0 G29 S1 M568 P0 A0 S210 R170 M568 P1 A0 S210 R170 M568 P2 A0 S210 R170 M568 P3 A0 S210 R170 M568 P4 A2 S210 R170 G21 M98 P"resurrect-prologue.g" X144.359 Y141.863 Z3.400 U57.000 V0.000 W17.998 M290 R0 X0.000 Y0.000 Z0.000 U0.000 V0.000 W0.000 M205 X10.00 Y10.00 Z0.40 U1.00 V4.00 W0.10 ; Workplace coordinates G10 L2 P1 X0.00 Y0.00 Z0.00 U0.00 V0.00 W0.00 G10 L2 P2 X0.00 Y0.00 Z0.00 U0.00 V0.00 W0.00 G10 L2 P3 X0.00 Y0.00 Z0.00 U0.00 V0.00 W0.00 G10 L2 P4 X0.00 Y0.00 Z0.00 U0.00 V0.00 W0.00 G10 L2 P5 X0.00 Y0.00 Z0.00 U0.00 V0.00 W0.00 G10 L2 P6 X0.00 Y0.00 Z0.00 U0.00 V0.00 W0.00 G10 L2 P7 X0.00 Y0.00 Z0.00 U0.00 V0.00 W0.00 G10 L2 P8 X0.00 Y0.00 Z0.00 U0.00 V0.00 W0.00 G10 L2 P9 X0.00 Y0.00 Z0.00 U0.00 V0.00 W0.00 M486 S-1 T4 G54 M106 S0.99 M116 G92 E1.83369 M83 G94 G17 M23 "0:/gcodes/xyzCalibration_cube,0.2mm,PLA,Anycubic PLA Pantone Spring Leaf,25m.gcode" M26 S54031 G0 F6000 Z5.400 G0 F6000 X144.359 Y141.863 U57.000 V0.000 W17.998 G0 F6000 Z3.400 G1 F1871.0 P0 M204 P1000.0 T2000.0 G21 M106 P0 S0.99 M302 P0 M24
And this is resurrect-prologue.g
M17 E0 G28 X Y ; home X and Y, hope that Z hasn't moved if global.MMUmode = true M98 P"0:/sys/MMU Control/homeMMU.g" G91 G1 Z-5
Please have a look at this description
@Leonard03 said in G30 during G28 issue:
Reenable the extruder stepper (this is a very old bug in RRF. I can't use the MMU to load filament if the extruder stepper is disabled, so enable it before anything else)
Home X and Y axis (Z axis has never been disabled)
Rehome the MMU (UVW axis)
Lower the Z axis (I can't remember exactly why this is necessary, but it works)
And after, RRF executes ressurrect.g.
Until now, is anything that seems out of place? -
@Leonard03 We are homing in on a bug, related to applying the skew compensation when axes are homed at the same time. In 3.5.4, this worked correctly, but now doesn't seem to.
The difference is in how the skew compensation is applied. "resurrect-prologue.g" needs to run just X and Y homing, it runs home X, then home Y. Skew compensation is applied to X once Y is homed. In homeall.g, X and Y are homed at the same time, but doesn't seem to apply skew compensation until after the first move, which is when the axes move to resume the print, so will be in the wrong place.
A workaround for now is to modify your homeall.g so it homes X, then Y, rather than both at the same time. Either replace the X and Y homing lines with the lines from homex.g and homey.g, or as @fcwilt mentioned earlier in this thread, replace them by calling the homex.g and homey.g macros, eg
M98 P"homex.g" M98 P"homey.g"
Then it should resurrect in the same place. @dc42 is working on a fix.
Ian
-
@droftarts Interesting point of view. All right, I'm trying this now and report back
-
@droftarts Tried the suggested workaround
Umm.. I don't know what to say
I've modified the homeall.g from:; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.2.0 on Tue Dec 29 2020 16:23:44 GMT+0200 (Eastern European Standard Time) G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 X-320 Y-306 F1800 ; move quickly to X and Y axis endstops and stop there (first pass) G1 X5 Y5 F6000 ; go back a few mm G1 H1 X-320 Y-306 F240 ; move slowly to X and Y axis endstops once more (second pass) G1 H1 Z-405 F240 ; move Z down stopping at the endstop G90 ; absolute positioning G1 Z5 G1 X{(310/2)-sensors.probes[0].offsets[0]} Y{(310/2)-sensors.probes[0].offsets[1]} F6000 G30 G1 X0 Y0 if global.MMUmode = true M98 P"0:/sys/MMU Control/homeMMU.g"
to
; homeall.g ; called to home all axes ; ; generated by RepRapFirmware Configuration Tool v3.2.0 on Tue Dec 29 2020 16:23:44 GMT+0200 (Eastern European Standard Time) M98 P"homex.g" M98 P"homey.g" G1 H1 Z-405 F240 ; move Z down stopping at the endstop G90 ; absolute positioning G1 Z5 G1 X{(310/2)-sensors.probes[0].offsets[0]} Y{(310/2)-sensors.probes[0].offsets[1]} F6000 G30 G1 X0 Y0 if global.MMUmode = true M98 P"0:/sys/MMU Control/homeMMU.g"
Is an improvement, still shifted but way less then before
From left to right: No skew compensation, in homeall.g homing both X and Y at the same time and the last is calling independent macros in homeall.g
The shift is reduced from 2mm to 1mmUpdate: if during a pause I rehome X or Y the print resume at the right position
-
@Leonard03 Okay, thanks for testing! Back to the drawing board...
Ian
-
@droftarts sorry...
-
@Leonard03 Are you still using RRF 3.6.0-rc3+2 firmware?
Ian
-
@droftarts Yes, 3.6.0-rc.3+2 (2025-05-19 11:46:09)
-
@Leonard03 please try this firmware.
-
@dc42 Thank you very much! I confirm that this issue is solved! Works very ewll
Also, thank you to everyone for every input and all the support ! -
undefined Leonard03 has marked this topic as solved