3.6.0-b2: z-Position wrong after pause
-
I noticed a strange thing. After a pause the extruders are not returning to the correct z-height. With T0 there seems to be a deviation of 0-0.2mm. With T1 the extruder is moving down after a each pause. Sometimes it then gets back to a gigher position.
Here is the logged user position when pausing and resuming
Time 2024-11-19T18:11:14 Job 0:/gcodes/CFFFP_TestPrint-both.gcode Pause: x= 122.426 y= 97.718 u= 286.800 z= 0.200 Resume: x= 122.426 y= 97.718 u= 286.800 z= 0.200 Pause: x= 126.492 y= 118.153 u= 286.800 z= 0.560 Resume: x= 126.492 y= 118.153 u= 286.800 z= 0.560 Pause: x= 122.804 y= 98.097 u= 122.804 z= 1.160 Resume: x= 122.804 y= 98.097 u= 122.804 z= 1.160 Pause: x= 123.204 y= 117.709 u= 123.204 z= 1.160 Resume: x= 123.204 y= 117.709 u= 123.204 z= 1.160 Pause: x= 135.949 y= 117.709 u= 135.949 z= 1.160 Resume: x= 135.949 y= 117.709 u= 135.949 z= 1.160 Pause: x= 123.203 y= 99.036 u= 123.203 z= 0.882 Resume: x= 123.203 y= 99.036 u= 123.203 z= 0.882 Pause: x= 126.975 y= 98.497 u= 126.975 z= 0.586 Resume: x= 126.975 y= 98.497 u= 126.975 z= 0.586 Pause: x= 131.101 y= 98.496 u= 131.101 z= 1.280
During a print move.axes[2].machinePosition (which is z in my case) is permanently jumping, whereas the move.axes[2].userPosition stays constant during a print. Unlike in 3.4.6 the user[2]Position is not equal to the machine[2]Position. For the other axis both values are the same, ignoring round-offs.
For the purpose of this post I changed my pause.g to
set global.pausex=move.axes[0].userPosition set global.pausey=move.axes[1].userPosition set global.pausez=move.axes[2].userPosition set global.pauseu=move.axes[3].userPosition echo >>"0:/sys/0-printlog" "Pause: x= " ^{global.pausex}^ " y= " ^{global.pausey}^ " u= " ^{global.pauseu}^ " z= " ^{global.pausez} G1 X200 M99
So just moves the x-axis out off the way of a test print.
And resume.g toM98 P"00-Functions/CurrentSenseNormal" ; ensure the drivers current and sensitivity is set for normal routines M17 G4 P100 ; ;************************************ echo >>"0:/sys/0-printlog" "Resume: x= " ^{global.pausex}^ " y= " ^{global.pausey}^ " u= " ^{global.pauseu}^ " z= " ^{global.pausez} G1 R1
-
-
@wschadow with regard to the machine position jumping around during a print, I have reproduced that. What's happening is that in 3.6 the reported machine position is the position after bed compensation has been applied, whereas in 3.5 it's the position before bed compensation is applied. So the reported Z machine position jumps around if you are using bed compensation.
I was expecting your other report (user Z position not being restored after pause/resume) to be related; however on my test machine the user Z position remains constant:
Pause: x= 27.9 y= -64.0 z= 2.00 Resume: x= 27.9 y= -64.0 z= 2.00 Pause: x= 47.2 y= 51.4 z= 2.00 Resume: x= 47.2 y= 51.4 z= 2.00 Pause: x= -60.6 y= 34.7 z= 2.00 Resume: x= -60.6 y= 34.7 z= 2.00 Pause: x= -24.9 y= -65.2 z= 2.00 Resume: x= -24.9 y= -65.2 z= 2.00
Perhaps it is configuration-dependent. Please provide your config.g file.