Z position changes after X or Y home - RRF 3.4.0
-
I was measuring the accuracy and repeatability of the X and Y axes on my machine (DUET 6HC firmware 3.4.0 card) when I noticed some strange behaviour on the Z axis.
Each time Home X or Home Y is made, the Z position increases by a small increment which is equal to the deviation given by the height map.
For example, after doing Height Map, I have my XYZ origin = (0;0;0) for my tool.
I move the tool to the point (150;0;0) with the command G90 G0 X150.
The height map shows a flatness error of 0.2 mm in Z at point XY (150;0).
The tool therefore physically moves to the point (150;0;0.2) on the machine, which is actually at the co-ordinates (150;0;0) according to the height map.
I ask the machine for a Home X using the G28 X command.
Here is the gcode contained in the homex.g file:G91; relative positioning
G1 H1 X-650 F1000 ; move quickly to X axis endstop and stop there (first pass)
G1 H2 X5 F1000 ; go back a few mm
G1 H1 X-650 F160 ; move slowly to X axis endstop once more (second pass)
G90 ; absolute positioningThe tool moves along X then comes into contact with the limit switch.
The tool coordinates then become (0;0;0.2): the machine has taken into account the Z deviation of the Height Map.I repeat the same operation, this time asking the tool to move to the coordinates (70;0;0) using the G90 G0 X70 command.
The height map shows a very small Z deviation at this co-ordinate (0.002 mm observed).
I again request a home X with the G28 command.
After returning to the origin, the tool's co-ordinates are still (0;0;0.2), unchanged from the previous test.This can be repeated for homing on the X and Y axes.
I tried to 'force' the Height Map to be taken into account when homing in the homex.g file, but the observations remain unchanged:
G91; relative positioning
G29 S1
G1 H1 X-650 F1000 ; move quickly to X axis endstop and stop there (first pass)
G1 H2 X5 F1000 ; go back a few mm
G1 H1 X-650 F160 ; move slowly to X axis endstop once more (second pass)
G90 ; absolute positioningIs anyone experiencing the same phenomenon on their machine? Is this due to a firmware limitation?
-
@Nicolas-BOYARD I can't see a specific bug fix for this in the changelog https://github.com/Duet3D/RepRapFirmware/wiki/Changelog-RRF-3.x but I think it would be worth you updating from RRF 3.4.0 to 3.4.6 and retesting.
Ian
-
@Nicolas-BOYARD yes same here, running 3.4.6
I just tested your issue, i can confirm after every home X or Y it adds an ofset to Z.
Then moving Z to 0 leaves a visible gap and a Z offset in the coordinate.
In guess homing with G1 and H variable does not use the mesh data.I was searching for an unexpected Y offset after a mesh bed session. After probing, the further away i get from 0 in the Y direction the higher Y offsets. X is not affected.
Cant find the issue here in the forumUsing an IR probe to run the mesh.
Same probe is used for Z0 height. -
There is no reason to have mesh compensation active except when actually printing.
I don't have mesh compensation active when homing so I cannot say if there is a problem when doing so. I would have to test it.
Frederick
-
@Nicolas-BOYARD As above you might want to try disabling the mesh when homing X and Y.
@Yao If you are seeing some sort of offset in Y that sounds like a different problem and you should probably create a new thread and describe exactly what is happening, provide your config files, description of your printer etc.
-
@fcwilt we sometimes print on a sloped surface. if the position away from 0 is lower and homing is not compensated the head would crash into the printsurface.
we always lift the head about 10 mm before homing so never had an issue. But it could give an issue if the slope is over 10mm. -
@Yao If you are homing X or Y that probably means that you do not know what the current X or Y position is, if that is the case then it is not possible to accurately apply a mesh (because you have no way of knowing which part of the mesh to use).
-
@Yao said in Z position changes after X or Y home - RRF 3.4.0:
we sometimes print on a sloped surface. if the position away from 0 is lower and homing is not compensated the head would crash into the printsurface.
I have no idea what you mean. How can you print on a sloped surface?
we always lift the head about 10 mm before homing so never had an issue. But it could give an issue if the slope is over 10mm.
All of my printers have Z endstops, so Z is homed first. That allows positioning Z at a safe distance from the bed before homing X and Y.
Frederick
-
@fcwilt Hi Frederick,
When the surface is not flat (1 side is much higher compared to the other ) or even curved, after scanning the surface we can still print over it properly as the nozzle will follow the scanned mesh.Our Z end stop is the same as the IR probe. IRprobe = Z end stop.
-
Hello everyone, sorry for the delay.
As I see, it seems to be a limitation of the firmware (maybe my use case is too marginal).
To prevent this, I perform a custom macro that probe the bed, just to give me the mesh of the buildplate, in order to calibrate very precisely the flatness in X and Y axis.
Since the final aim is to get a "good layer thickness", my calibration is 2 times more sharp than the minimum layer thickness, so, even if the firmware give me a little drift, it is under my quality target.
-
@Nicolas-BOYARD I am not sure its a limitation in the firmware, ans @gloomyandy pointed out, how can the firmware know what part of the heightmap to apply when the axis is in an un-homed state.
What is the sequence off steps that you would be expecting to happen in your case when you home the X axis (lets assume the other axes are homed at the start of this X axis homing move).