Strange axis not home error
-
Hello. This is part of my start gcode:
T0
G28
G30; Home z again with probe
G1 X0 Y0 Z50
M400
M141 S{chamber_temperature[0]}
M116 C0 S5
G28
G10 S300
M116
m98 P"/macros/LimpiezaT0.g"
G29 >>>>>>> ERRROR HAPPENS HERE
G4 S5The problem IM having is that when the gcode reaches the G29, I get an error saying "insufficient axis homed". In the DWC screen I can see that the X and Z axis pass from blue to orange, like if they have not been homed. But they were since you can see a G28 before.
The macro being calles it is just s nozzle clean routine:
G1 X415 Y175 F8000
G1 Y150 F8000
G1 Y200 F8000
G1 Y150 F8000
G1 Y200 F8000
G1 Y150 F8000
G1 Y200 F8000
G1 Y150 F8000
G1 Y200 F8000
G1 Y150 F8000
G1 Y200 F8000
G1 Y150 F8000
G1 Y200 F8000
G1 Y175 F8000
G1 X400 F4000
G1 X425 F4000
G1 X400 F4000
G1 X425 F4000
G1 X400 F4000
G1 X425 F4000
G1 X400 F4000
G1 X425 F4000
G1 X400 F4000
G1 X425 F4000
G1 X400 F4000
G1 X425 F4000Why Im getting this error?
-
@tinchus what happens if you send G29 from the console after homing the printer?
-
I don't see anything wrong with this sequence.
If you are running RRF 3, when you do a G29, it runs sys/mesh.g (if it exists)
- Does this file exist in your system?
- If so, can you post it?
I tried this sequence on my delta which does not have a sys/mesh.g file (with adjustments for the size) and it works as expected, so I'm interested in seeing if you have a mesh.g
-
@t3p3tony It makes the mesh levelling
-
-
Unfortunately, that all works fine for me on my delta.
Nothing looks wrong to my eyes in what you are doing.
-
@tinchus said in Strange axis not home error:
@t3p3tony It makes the mesh levelling
Ok so G29 works fine except when it is in the print start gcode?
what happens when you comment out the m98 call in the start gcode
Also what happens when you send the m98 P"/macros/LimpiezaT0.g" line from the console after homing and before sending G29?
-
@t3p3tony No, I correct myself: I have just issued a G28 in the console, then G29 and all axis went to orange, and then the mesh levelling was performed OK
-
@tinchus ok that will be because there is a G28 in the mesh.g AFAIK. When axis homing is performed the axis are marked as unhomed while the homing move runs, then once it finishes they are marked as homed again.
-
@t3p3tony If I execute m98 P"/macros/LimpiezaT0.g" the macro is excuted OK.
If I comment the M98 in the start Gcode, the the print process goes perfect.
I dont understan what the M98 is doing to trigger that axis error.... -
Hi,
As to the error we need to see your homeall.g file.
But there are some other things I perhaps should mention.
At the start of a print you are homing everything 3 times - 2 times in the start code itself (the two G28s) and once more when G29 calls mesh.g which also has a G28 in it..
Is there a reason for doing this?
Also in you start code you have a G30 but I don't see a G1 move to position the probe at your XY reference point.
When using G30 by itself (which is referred to in the documentation as setting the Z=0 Datum) you need to move to a XY position that serves as the reference location.
Some folks use one of the grid points probed when creating the height map, others, like myself, use the center of the bed.
You need to set the Z=0 Datum when creating a height map and when loading that height map.
In your mesh.g file I think that first M400 should be after the G28, not before it.
Also you don't need to do G29 S2 G29 S0 - the G29 S0 is all you need.
Thanks very much.
Frederick
-
@fcwilt the 3 G28 are there... by mistake and because while trying to solve this axis error, I was putting G28 everywhere , sorry.
The G39 at the start: well, there is a G28 before that so the posution I thought it was already set. The probing there is done at the center of the bed. Then I should be explicit and do a G1 X175 Y175 before the G30? Got it, I will do.
My homeall.g files is:
; homeall.g
; called to home all axes
;
M564 H0
M280 P0 S17
T0 P0
G91
G1 Z5
M564 H1
G90; HOME X/Y
G91 ; relative mode
G1 H1 X-400 F3000 ; coarse home X or Y
G1 H1 Y-400 F3000
G1 X4 Y4 F600 ; move away from the endstops
G1 H1 X-10 F80 ; fine home X
G1 H1 Y-10 F80 ; fine home Y
G90 ; absolute positioning; Z HOMING
; G1 X175 Y175 F5000 go to first bed probe point and home Z for beta3
G1 X175 Y175 F5000 ; production
M400
M913 Z55
G30
M400
M913 Z100 -
Hi,
OK I understand about all of the G28s.
Below is your homeall.g file - I have added some comments. Most of it is fine.
And since you leave X and Y at your XY undefinedreference point you don't need to do it again unless something you do later changes the XY position. If something does just remember to move back to your reference point when doing a G30.
M564 H0 ; remove this - see below M280 P0 S17 ; why is this here T0 P0 ; this is not typically something that is done when homing. G91 G1 Z5 ; use G1 H2 Z5 instead which allows moving Z when it is not yet homed. M564 H1 ; remove this -see above G90 ; remove this as you need relative for homing x/y below ; HOME X/Y G91 ; remove this since G90 above should not be there G1 H1 X-400 F3000 ; coarse home X or Y G1 H1 Y-400 F3000 G1 X4 Y4 F600 ; move away from the endstops G1 H1 X-10 F80 ; fine home X G1 H1 Y-10 F80 ; fine home Y G90 ; absolute positioning ; Z HOMING G1 X175 Y175 F5000 ; did you take into account the X and Y offsets of the probe when deciding on these X and Y values? M400 M913 Z55 G30 M400 M913 Z100
-
@fcwilt Thanks for the nfo and corrections:
The G91 before the G1 Z5 is because in some situations the nozzle is touching the bed (when I turn off the printer in some emergency for example). So when turned on, the first thing the machines does is move down the nozzle in order to let other movements happen.
G1 X175 Y175 F5000 ; did you take into account the X and Y offsets of the probe when deciding on these X and Y values? >>>>> I didnt, should I? I gues yes?
-
@fcwilt Also, I guess I see your point: the datum 0 I stablish with G30 right?
Should I move to X175 Y175 (my center), then switch to relative and move so the sensor is at the centter, then do the G30, then switch back to Absolute positioning? -
@tinchus said in Strange axis not home error:
@fcwilt Thanks for the nfo and corrections:
The G91 before the G1 Z5 is because in some situations the nozzle is touching the bed (when I turn off the printer in some emergency for example). So when turned on, the first thing the machines does is move down the nozzle in order to let other movements happen.
The first G91 is needed - it's the following G90 which is immediately followed by G91 - no need to switch to absolute then back to relative.
G1 X175 Y175 F5000 ; did you take into account the X and Y offsets of the probe when deciding on these X and Y values? >>>>> I didnt, should I? I gues yes?
Yes you should.
Let's say 175,175 is the center of the bed.
G1 X175 Y175 will move the nozzle there. But the probe is usually somewhere to the left/right and/or forward/back of the nozzle.
So let's say your probe offsets are X-10 and Y5.
To compute the needed X value for the G1 just subtract the X offset from the X value for the center of the bed.
175 - -10 = 185 So the parameter would be X185.
Do the same for the Y value.
175 - 5 = 165 So the parameter would be Y170.
G1 X185 Y170 should move the probe to the center of the bed.
So just to the same math using your probe's actual X and Y offset values.
Frederick
-
@fcwilt this thing about the probe is confusing me: I understand your statement but what I dont understnd is: if I move the head in a way the probe is at the center, the nozzle will not be at the center, but the machine all it cares is the nozzle. So when positioning the nozzle outseide the center and doing the G28, wont the machine think it is probing outside the center?
So what do I do when doing the mesh calibration? O should also position the probe and not the nozzle at the center? Following your thinking I must asume the firmware already knows Im taking into account the probe offsets?
-
@tinchus said in Strange axis not home error:
@fcwilt this thing about the probe is confusing me: I understand your statement but what I dont understnd is: if I move the head in a way the probe is at the center, the nozzle will not be at the center, but the machine all it cares is the nozzle. So when positioning the nozzle outseide the center and doing the G28, wont the machine think it is probing outside the center?
You are mostly correct in thinking the nozzle is what we are interested in.
The reason we set the Z=0 Datum (with a G30) is so that moving to Z=0 at that XY location will have the tip of the nozzle just touching the bed.
But since the probe is offset from the nozzle we have to do a G1 move that takes in account the probe X and Y offsets so we can probe where the nozzle will be when X=175 and Y=175.
So what do I do when doing the mesh calibration? O should also position the probe and not the nozzle at the center? Following your thinking I must asume the firmware already knows Im taking into account the probe offsets?
You always set the Z=0 Datum at the same XY reference point, in your case that seems to be a X=175, Y=175 which is the center of your bed.
So before creating the height map or loading the height map you always must have set the Z=0 Datum at some time prior to the creating/loading.
The firmware has no idea how you chose the XY point where you set the Z=0 Datum. The user (you) decide what XY position is to be your XY reference point for setting the Z=0 Datum. The firmware doesn't care.
-
@fcwilt sorry, still is not clear. Following your explanation, then moving to X175 Y175, ignoring the probe offset looks lige irrelevant, because Im always doing the probing at 175,175. I understand your explanation, I dont understand your point really.
Yo say I decide where I set the Z datum. Ok I say it has to be at 175,175 and I move the head to taht position, in the dcumentation is not stated how do I tell the firmware that later when I move the probe to that position, the pobe position is really 175,175... because at the moment I move the nozzle following the offset of the probe, the machine all it knows is that the nozzle is at another position, not 175,175 anymore. -
I'm not doing a good enough job explaining things then.
Hmm..
How about this.
Imagine a empty square room with a smooth floor. You have a tennis ball and you drop it on the floor. It rolls to the south-west corner. You play around with dropping the ball at different locations and you find that if you drop the ball at the north-east corner it rolls all the way in a straight line to the south-west corner.
You conclude that the lowest point in the room is the south-west corner and the highest point is the north-east corner.
You happen to have a device that will tell you the absolute height of any point in the room.
If you wish to determine the height of the highest point in the room you take it to the north-east corner and measure there. Correct?
In somewhat the same way if you wish to determine the height of the center of the bed you must move the probe to the center of the bed and measure there.
Does that help at all?
Frederick