Welcome! Log In Create A New Profile

Advanced

auto bed levellin working but z-offset inconsistent, keeps changing slightly every few prints

Posted by pthieu 
Running Marlin 1.0.2 on a Folgertech Aluminum 2020 Prusa i3 variant.

I have auto bed levelling and it works perfectly but after a few prints, I have to increase the offset by 0.1mm in my slicer, otherwise it will print too close to the print bed.
I auto bed level at the beginning of every print so I'm thinking maybe I'm doing something wrong with the firmware that periodically miscalculates my z-axis by 0.1mm every few prints.
I don't know how your sensor is mounted but it could be due to thermal expansion of the extruder relative to the sensor. You say a few prints but not how long they take or how quickly you print the next part. If you consider the carriage as fixed then the expansion will push the nozzle nearer the bed. If the sensor is mounted off the carriage it wont move. It may just be that it takes a significant time for the heat build up and soak to effect the hot end sufficiently to expand the 0.1mm.
Do you have to reset it to the original figure for a print when its cooled down completely (next day).
Dual Z axis steppers, possible backslash from Z nuts, the margin of error from the sensor, etc.

That 0.1 is nothing out of ordinary. Now, is your EEPROM active? Are you saving current readings in the firmware? If not, it might be using previous recorded measurements.
EEPROM is disabled.

When I say a few prints, I've seen it change between 2-5 15-60 minute prints (one right after the other), or one 30-60 minute print from one day and then changing on the next print on the next day.

I use a toggle switch and a servo for my sensor. I don't have to reset it the next day. I just have to keep increasing my z-offset, so I don't think heat is playing a part here, otherwise the z-offset should oscillate up and down, but I just keep increasing.

I suspected the dual z-axis stepper axle screws might not be tight and the bolts holding the x-carriage are slipping down, but I do an ABL before every print so it should be able to detect where the bed is every print.
You need to enable your EEPROM to save the readings from g29, also I use M500 in the start g code to store the new numbers each time it does a g29.

Without EEPROM enable, basically you are taking the readings and throwing them away, the printer is only using your homing number.

Edited 1 time(s). Last edit at 05/20/2016 04:44PM by ggherbaz.
Just borgerne The thread real quick.

Do you guys issue a g29 before each print?
I do. Is in my starting g code a g29 follow by an m500 (might not be needed, but just for extra safety).
@ggherbaz: Wait, isn't EEPROM only needed when we powercycle the MCU (RAMPS 1.4 for me)? I never turn off my RAMPS 1.4, and I do a G29 before every print. Shouldn't results from G29 be saved somewhere outside of EEPROM for z correction?
Ok, I might have not explained my self correctly.

Let me explain better:

Without EEPROM enabled, your offsets are fixed to what configuration h file says, in a perfect world it will be sufficient, but in the real world doesn't work, your offsets changes based on temperature used, type of Z probe, how the probe is fixed in position, and some other factors, so when g29 is run it will take the offset from the file and apply it to the matrix generation. It is the same with EEPROM enabled but with the difference that you can adjust the offset via LCD or g code, without it you will have to reflash the mega to the new values.

Note: I was wrong about taking the readings from homing, that will happen if you run a full g28 instead of a g28 X0Y0 only.
@ggherbaz: thanks for the explanation. The part where you said I can change offset on LCD screen is a little weird to me. I've been changing z-offset from my slic3r program whenever the issue occurs (as opposed to re-flashing). Wouldn't changing it via LCD not really fix the issue, and just allow me a different way to adjust z-offset?
If you changed via slic3r you need to do M500 to save them in EEPROM, if not it will use whatever is stored from before (maybe your issue?) via LCD is the same but you just hit save changes and that's it. Just faster but same process.
From your LCD check the settings currently stored and see if they match what you setup via Slic3r from last print.
@ggherbaz actually, I should probably ask, how are you setting z-offset in your slicer? I just go to the Printer Settings tab, I don't do it via gcode.
The same, I use Simplify3d and it can be done on settings tab too, but I meant via gcode command.
@ggherbaz

Just to confirm, should starting script look something like this?

G28
G29
M500?

Are you saying that if I dont use M500, if my ABL probes 16 points it wont store those 16 points (topology) and use them for the print I just initiated? I need the M500 then?

Thanks
No, I used the M500 in the case that someone give me a gcode file to print and I forget to modify it to add the g29, you do not need the m500 as long as the g29 command is in your gcode.
Thank you
Hi, it may be related...

I have a similar issue, every 2 o 3 (sometimes 1) print the offset changes. I have the tower pro 9g servo. I discovered that in one direction, towards where the wires of the servo are (Murphy saw that it was the extend probing position), it doesn't stop where it should, it travels a little further and wobbles back, not every time to the same place. I tested another one that i have and has the same problem (i don't know if it's only these 2 or every 9g model). In the other direction, it works flawlessly. I've just changed it and I'll test it today.
I think that could be related to the variability in the Z offset...

I'll post when i have news
When I was using a servo, even with a Hi-Tech HS-65HB, the servo would always move some after the first or second probe. So the leveling would be off if I didn't prevent the small servo move. The cheap TowerPro 9g servos would always stop working correctly once the hotend was hot, they can't take the heat. I switched to using a proximity sensor controlling a relay, only problem was the large X&Y offset, and now use dc42's ir sensor on my printer since it can get really close to the hotend.
Sorry, only registered users may post in this forum.

Click here to login