Finding the perfect Live Adjust Z Offset (proposed process)
 

Finding the perfect Live Adjust Z Offset (proposed process)  

  RSS
stephen.e3
(@stephen-e3)
Estimable Member

I've been having lots of issues with my printer since I built it, as can be see from my many forum posts. Since the last time I took off the heated bed and reinstalled it, my build plate seems a lot more level than before with less variation between the lowest and the highest points.

With that sorted I set myself the task of finding a Z Offset that worked best with the new bed level. I've found a way of measuring what I think the correct Z Offset should be. I would be interested if others could test this and see if they come out with the same results for their printers. If they do, there is a way of calculating the correct Z Offset for any printer.

I am using the following process. I am issuing the commands via the Terminal tab on Octoprint with the MK2 connected to the USB port of a Raspberry PI but you can also issue these in any software so long as you have a terminal session.

1. If you haven't already, perform a full Calibration X, Y, Z from the Printer Menu or if you have already done that but moved the Z-Axis by hand perform a Calibrate Z from the Printer Menu.
2. Home the printer using the G28 W command
3. Perform the Mesh Bed Levelling function by issuing the G80 command
4. Read out the measured probe data using the G80 command.

The output of this command looks like the following:

Send: G81
Recv: Num X,Y: 7,7
Recv: Z search height: 5
Recv: Measured points:
Recv: 0.31667 0.32417 0.34778 0.38750 0.44333 0.51528 0.60333
Recv: 0.27444 0.29180 0.31631 0.34796 0.38677 0.43273 0.48583
Recv: 0.23833 0.26486 0.29177 0.31907 0.34677 0.37486 0.40333
Recv: 0.20833 0.24333 0.27417 0.30083 0.32333 0.34167 0.35583
Recv: 0.18444 0.22723 0.26350 0.29324 0.31646 0.33316 0.34333
Recv: 0.16667 0.21655 0.25976 0.29630 0.32615 0.34933 0.36583
Recv: 0.15500 0.21130 0.26296 0.31000 0.35241 0.39019 0.42333
Recv: ok

Now, the MK2 only has 9 probe points and the rest of the data is extrapolated from these points into the above 7x7 grid. The values above in Red are the ones measured from the bed and the ones we are interested in. This gives us the following:

Absolute measurements (probe)
+0.31667 +0.38750 +0.60333
+0.20833 +0.30083 +0.35583
+0.15500 +0.31000 +0.42333

Next I normalise these values as an offset of the centre bed point as follows:

Relative measurements (probe)
+0.01584 +0.08667 +0.30250
-0.09250 +0.00000 +0.05500
-0.14583 +0.00917 +0.12250

This shows you the relative position of the various probed points on the bed. Finally calculate the range that the measurements cover as follows:
Range (probe) = +0.30250 - (-0.14583) = +0.44833

To find the Z Offset for your printer, just invert the above value. For my printer setting the Live Adjust Z to -0.448 gives me perfect prints without a single failure.

I stumbled on the above by trying to work out the differences between the measured probe height at the various points on the bed using a piece of paper and values the probe read. I noticed that the range measured by the probe exactly equaled the Live Adjust Z value I had found to be perfect for my prints.

I would be really interested to learn how closely other users Live Adjust Z value matches the value calculated using the above method. It could be an incredible co-incidence, but I somehow doubt it.

...
Posted : 04/12/2016 8:45 pm
carsten.w2
(@carsten-w2)
Estimable Member

Send: G81
Recv: Num X,Y: 7,7
Recv: Z search height: 5
Recv: Measured points:
Recv: -0.15333 -0.06361 -0.03889 -0.07917 -0.18444 -0.35472 -0.59000
Recv: -0.07602 -0.02457 -0.02472 -0.07648 -0.17985 -0.33481 -0.54139
Recv: -0.00769 0.01009 -0.01247 -0.07537 -0.17861 -0.32219 -0.50611
Recv: 0.05167 0.04037 -0.00213 -0.07583 -0.18074 -0.31685 -0.48417
Recv: 0.10204 0.06627 0.00630 -0.07787 -0.18623 -0.31880 -0.47556
Recv: 0.14343 0.08778 0.01281 -0.08148 -0.19509 -0.32802 -0.48028
Recv: 0.17583 0.10491 0.01741 -0.08667 -0.20731 -0.34454 -0.49833
Recv: ok

I calculated 0.44833 but have a live z of -0.332

With PLA I printed only small parts but with PETG I used the whole surface with very fragile first layers (snowflakes ;-)) and got a perfect first layer.

Carsten

My Things: http://www.thingiverse.com/calli/designs
My Book: http://blenderbuch.de
My Make Blog: https://plus.google.com/b/113205824564673616795/113205824564673616795...
Posted : 05/12/2016 12:00 pm
rob.s
(@rob-s)
Eminent Member

Wouldn't this only work if we all had the same Z distance from the nozzle to probe?

...
Posted : 05/12/2016 2:59 pm
stephen.e3
(@stephen-e3)
Estimable Member

Wouldn't this only work if we all had the same Z distance from the nozzle to probe?

Yes I think you are right, I am being stupid. I just read a massive coincidence as a pattern.

Carsten, for your figures I get 0.64167, which is even further out from your Z Offset.

I guess all this shows is the degree of skew on the bed.

...
Posted : 05/12/2016 5:28 pm
JeffJordan
(@jeffjordan)
Member Moderator

hi together,
i'm a newcomer too and haven't got the experience to evaluate the live adjust. maybe my eyes are not good enough, or the good/bad sketches are more theoretical than practical 😯 .
but as an engineer i'm always drawn to measure things :geek: .

💡 what do you think about examining the intro line, generated before the prints outside the print area ?

that's invoked by the following start codes (example from my slic3r settings):
G1 Y-3.0 F1000.0 ; go outside print area
G1 X80.0 E9.0 F1000.0 ; intro line
G1 X160.0 E12.5 F1000.0 ; intro line

then you can measure the thickness of the intro-line, like in this picture:

i assume, that the value will tell us something about whether the "Live Adjust Z Offset" is ok or not, if we collect our measuring.

0.33 - 0.40mm seems to be fine here ... but i don't know if it could be improved.... the skirt lines in my prints doesn't really stick together (when using 2 or three, they only touch slightly, but remain seperated).

btw. the blue filament is PRUSA's PLA (in blue, obviously), the bronze one PRIMA SELECT PETG, the green is E-ICE ABS+ and the black one is EXTRUDR's BDP stuff.

any response ?

dem inscheniör is' nix zu schwör......
Posted : 06/12/2016 10:49 pm
carsten.w2
(@carsten-w2)
Estimable Member

I think the intro line is heavily over extruded and so not usefull to measure. Just print one layer and then measure this.

Carsten

My Things: http://www.thingiverse.com/calli/designs
My Book: http://blenderbuch.de
My Make Blog: https://plus.google.com/b/113205824564673616795/113205824564673616795...
Posted : 07/12/2016 12:58 am
JeffJordan
(@jeffjordan)
Member Moderator

let's say i'm printing with a 0.4mm nozzle in 0.1mm layer height, which should be the thickness of the first layer then ?

dem inscheniör is' nix zu schwör......
Posted : 07/12/2016 1:20 am
joan.t
(@joantabb)
Veteran Member Moderator

I understand that the first layer should be 0.2mm or thicker, as the printer has a minimum first layer height of 0.2mm

Reagrds Joan

I try to make safe suggestions,You should understand the context and ensure you are happy that they are safe before attempting to apply my suggestions, what you do, is YOUR responsibility. Location Halifax UK...
Posted : 07/12/2016 1:27 am
Nigel
(@nigel)
Honorable Member

Joan is right.
Otherwise......
Use a raft to avoid first layer issues. I swear by them. In Simplyfy3d they are easy to remove after the print. They are not needed on a lot of my prints on the Prusa I3 MK2. However with some prints I recognise the possibility of lifting even with PLA < the material I mostly print with along with Ngen, as regards ABS < abandoned by me as useless in an open frame environment.

I have bought some PLA/PHA filament, gives great prints. I have also tried PETG great prints , and i have a lot of E3D spare nozzles. Hardend steel and stainless steel so I can try harder filaments like carbon fiber, and metal based filaments in the future.

Nigel
Life is keeping interested and excited by knowledge and new things....
Posted : 07/12/2016 3:19 am
MrMik
(@mrmik)
Honorable Member

I understand that the first layer should be 0.2mm or thicker, as the printer has a minimum first layer height of 0.2mm

Reagrds Joan

I recently set the first layer height to 0.05mm because it was required for a specific print, so as to not have gaps in the first few layers. It was tricky to adjust, but entirely possible if you have a bit of experience and a well tuned printer. You can achieve an almost see-through layer as layer one, but still see the signs of live-z-adjust being a bit off in one direction or the other.

Magnifying glasses and an unhealthy disregard to the micro-particles emitted by the printer is a must, and / or good breathing technique. As in: Do not inhale while you repeatedly put your nose right next to the extruder to see the fine detail. 😀

If you and your printer are suffering fro the 'constantly changing live-z-adjust-value', then forget about first layers less than 0.2mm thick.

...
Posted : 07/12/2016 9:41 am
PJR
 pjr
(@pjr)
Antient Member Moderator

The first layer height is currently limited to 0.15mm

If you adjust the printer to print lower than that, you have the potential to cause heat damage to the PEI sheet.

Your first layer must be set to at least 0.15mm and thereafter any layer height that you choose. However, remember that the more material you extrude on the first layer (up to a point) the better the adhesion, so I generally work with 0.2mm first layers.

The Mk1 was slightly different having a minimum default first layer height of 0.23mm in order to prevent new users damaging the hot end (particularly the aluminium heat break). I amended the firmware and had many successful prints with a first layer of 0.05mm without any issues (but with plenty of glue stick...).

Peter

Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…...
Posted : 07/12/2016 10:10 am
MrMik
(@mrmik)
Honorable Member

The first layer height is currently limited to 0.15mm

If you adjust the printer to print lower than that, you have the potential to cause heat damage to the PEI sheet.

...

Peter

Why could it cause heat damage?

I understand that printing at 0.05mm first layer thickness would increase the risk of scratching the PEI sheet, but the amount of heated plastic that touches the bed is much smaller than if you extrude a thick first layer. That should cause less heat transfer to the PEI sheet rather than more.

...
Posted : 07/12/2016 8:22 pm
PJR
 pjr
(@pjr)
Antient Member Moderator

PEI has a glass transition temperature of 215 degrees. Having a stationary hot nozzle very close to it for more than a couple of seconds will cause damage. Yes, I have done it at 0.2mm nozzle height, with the nozzle at 230 degrees. Unfortunately right in the centre of the bed while testing whether the nozzle fan would cause thermal runaway error.

Peter

Please note: I do not have any affiliation with Prusa Research. Any advices given are offered in good faith. It is your responsibility to ensure that by following my advice you do not suffer or cause injury, damage…...
Posted : 07/12/2016 9:21 pm
fns720
(@fns720)
Active Member

I 'm struggling with the same issue for months: the situation is even worse when I put the i3 MK2 into a closed chamber. I have tried the OP's Z offset calculation method but for me it results roughly 0.5 mm smaller amount then the Z offset I set at the previous print just before the calculation.

Anyway, I'm a lazy programmer so instead of manual calculation I made a short awk script which did the dirty work. Here it is:


BEGIN {
FS=" "
RS="\n"
OFS=", "
l=0
r=0
min = 1000
max = -1000
print "Z offset calculation from G81 GCODE command output on Prusa i3 MK2"
print "\ninput:"
}
{
print $2, $3, $4, $5, $6, $7, $8
l++
if (l == 1 || l == 4 || l == 7) {
a[r,0] = $2
a[r,1] = $5
a[r,2] = $8
for (c = 0; c < 3; c++) {
min = (min < a[r,c]) ? min : a[r,c]
max = (max > a[r,c]) ? max : a[r,c]
}
r++
}
}

END {
# print result
print "\nmeasured values:"
for (r = 0; r < 3; r++) {
print a[r,0], a[r,1], a[r,2]
}
center = a[1,1]
print "\nmin/max/center values:", min, max, center

# normalise to center
nmin = 1000
nmax = -1000
for (r = 0; r < 3; r++) {
for (c = 0; c < 3; c++) {
a[r,c] += (-1 * center)
nmin = (nmin < a[r,c]) ? nmin : a[r,c]
nmax = (nmax > a[r,c]) ? nmax : a[r,c]
}
}

# print normalised matrix
print "\nmeasured matrix in normalised form:"
for (r = 0; r < 3; r++) {
print a[r,0], a[r,1], a[r,2]
}
print "\normalised min/max values:", nmin, nmax
print "\nCalculated Z offset (nmax-nmin):", nmax-nmin
}

Usage:
- save this as calc.awk
- save G81 GCODE command output as data.txt (only the 7 rows with the mesh data)
- run the script:

awk -f calc.awk data.txt

I hope someone will find a proper solution to this disturbing issue soon. I have no idea how the PRUSA factory can print ABS parts continouosly.

Posted : 20/04/2017 8:10 am
chrismanahan
(@chrismanahan)
New Member

A bit stale of a thread, but we're encountering an issue when trying to adjust the z offset. Which are the offsets that you're referring to? Running the bed leveling routine yields the following


Bed Height Topography:

+0.12375 -0.09900 +0.12150
+0.01125 -0.14850 +0.12375
-0.04050 -0.18900 +0.09675

Corrected Bed Height vs. Bed Topology:
+0.26700 +0.00300 +0.18225
+0.20100 +0.00000 +0.23100
+0.19575 +0.00600 +0.25050

Bed Level Correction Matrix:
+1.000000 +0.000000 +0.000458
-0.000000 +1.000000 +0.000517
-0.000458 -0.000517 +1.000000

 

Posted : 03/04/2020 3:14 am
Share:

Please Login or Register