Welcome! Log In Create A New Profile

Advanced

Bedlevelling (all types) is always slightly off.

Posted by glopglop 
Bedlevelling (all types) is always slightly off.
September 25, 2017 03:54AM
Hi,

Just wondering if I could ask some advice on this :

I am using a BLTouch, I have tried

- UBL
- Linear
- Bilinear
- 3 point
- reverting to 1.1.4

and the results are always variations on a theme :



Right side gap slightly larger than left, as though the levelling isn't doing its thing.

I have tried lots of variations on start gcode, currently it's (for bilinear):

M140 S80 ; set bed temp
M104 S150 ; begin preheating extruder temperature
M190 S80 ; wait for bed temp

;M111 S32 ; logging on;
;M111 S247 ; max detail logging

M502 ; Factory Reset
M500 ; Save Settings
M501 ; Load Settings

G28 ; home all axes

;M420 S1 ; Enable bed levelling (this probably isn't actually needed)

;G29 P1; UBL levelling
G29 ; Bilinear levelling

;G29 T ; View the Z compensation values
;G29 S1 ; Save UBL mesh points to EEPROM slot 1

;M500 ; Save EEPROM

G0 X0 Y0 Z20 F2000; return to front left corner

M140 S[bed0_temperature] T0 ; set bed temp for layer 1
M104 S[extruder0_temperature] T0 ; begin preheating extruder temperature for layer 1

M190 R[bed0_temperature] T0 ; wait for bed temp
M109 R[extruder0_temperature] T0 ; wait for extruder temp

M851 Z-1.85

G1 X0 Y5 Z0.2 F3000 ; get ready to prime
G92 E0 ; reset extrusion distance
G1 X150 E10 F600 ; prime nozzle

(yes it has extraneous M50X in there, I've been trying just ensuring EEPROM is blanked prior)

At this point I think I've tried everything and am at a bit of a loss what to do next.

I came up with the idea of using Repetier to test if alternate software could manage it, just to try to rule out if it's Marlin or something else that's the issue, but Repetier and BLTouch do not seem to get on too well. sad smiley

I'm thinking maybe I could start hacking the code to have Marlin output some debug status messages while it is printing, but C is not really my thing and it's difficult to know where to start.

Does anyone have any ideas?

Is there a way I can troubleshoot this to try to pinpoint the issue? Is there a way I can have the firmware confirm it is indeed using bed levelling?

Any other ideas?

Cheers!

Edited 3 time(s). Last edit at 09/25/2017 03:56AM by glopglop.
Re: Bedlevelling (all types) is always slightly off.
September 25, 2017 10:10AM
Did you follow the guide at [github.com] to set up UBL?

It would be interesting to see your mesh (G29 T) and the G26 Mesh validation test pattern.
Re: Bedlevelling (all types) is always slightly off.
September 25, 2017 10:52AM
Quote
Roxy
Did you follow the guide at [github.com] to set up UBL?

It would be interesting to see your mesh (G29 T) and the G26 Mesh validation test pattern.

Aye I did.

I ended up testing in bilinear as it's likely the simpler implementation.

I will redo UBL and report back.

Edited 1 time(s). Last edit at 09/25/2017 10:53AM by glopglop.
Re: Bedlevelling (all types) is always slightly off.
September 25, 2017 01:04PM
Hi Roxy,

Ok so following that guide :

1) The printer should be able to successfully print a small object at the center of the bed with no bed leveling system active.



Interesting to note, from the skirt you can see the bed tilts upwards towards the right.

2) Bed levelling, did the following, manually entered one by one :

M502          ; Reset settings to configuration defaults...
M500          ; ...and Save to EEPROM. Use this on a new install.
M501          ; Read back in the saved EEPROM.  

M190 S60      ; Not required, but having the printer at temperature helps accuracy
M104 S150     ; Not required, but having the printer at temperature helps accuracy

G28           ; Home XYZ.
G29 P1        ; Do automated probing of the bed.

G29 T         ; View the Z compensation values.
G29 S1        ; Save UBL mesh points to EEPROM.
G29 A         ; Activate the UBL System.
M500          ; Save current setup. WARNING: UBL will be active at power up, before any `G28`.

G26 B60 C H200 T3.0

This is the G26 print :



Here the tilt seems to go the other way, so that the "virtual" bed is effectively higher on the left (well front left).

It almost feels like the levelling code is over-compensating?

This is the output from the `G29 T` stage :

Recv: Bed Topography Report:
Recv: 
Recv: (0,9)                                                                   (9,9)
Recv: (10,185)                                                                (180,185)
Recv:      .          .          .          .          .          .          .          .          .          .
Recv: 
Recv:      .          .          .          .          .          .          .          .          .          .
Recv: 
Recv:  -1.190   -0.938   -0.675   -0.445  [-0.215]   0.057    0.242    0.432    0.607    0.802
Recv: 
Recv:  -1.160   -0.903   -0.648   -0.435   -0.185    0.070    0.307    0.465    0.687    0.822
Recv: 
Recv:  -1.098   -0.865   -0.628   -0.355   -0.098    0.115    0.307    0.487    0.667    0.865
Recv: 
Recv:  -1.050   -0.807   -0.563   -0.335   -0.098    0.122    0.332    0.538    0.717    0.903
Recv: 
Recv:  -1.025   -0.743   -0.533   -0.302   -0.098    0.142    0.367    0.558    0.742    0.945
Recv: 
Recv:  -0.995   -0.730   -0.508   -0.263   -0.033    0.190    0.380    0.592    0.760    0.952
Recv: 
Recv:  -0.970   -0.720   -0.498   -0.260   -0.070    0.153    0.397    0.570    0.770    0.992
Recv: 
Recv:  -0.893   -0.705   -0.480   -0.265   -0.033    0.190    0.395    0.595    0.820    0.957
Recv: (10,10)                                                                    (180,10)
Recv: (0,0)                                                                     (9,0)


Actually, just a thought, is it possible the levelling code is making assumptions about INVERT_X_DIR & INVERT_Y_DIR?

Mine is :

INVERT_X_DIR: false
INVERT_Y_DIR: false
INVERT_Z_DIR: true


I believe the "defaults" are :

INVERT_X_DIR: false
INVERT_Y_DIR: true
INVERT_Z_DIR: false

Edited 5 time(s). Last edit at 09/25/2017 01:12PM by glopglop.
Re: Bedlevelling (all types) is always slightly off.
September 25, 2017 03:09PM
Quote
glopglop



Here the tilt seems to go the other way, so that the "virtual" bed is effectively higher on the left (well front left).

It almost feels like the levelling code is over-compensating?

No... More likely, it has to do with the Z-Home position. Are you homing the Z axis at the center of the bed? It is best to do that just because that is where most people print.

Also, That minimizes the amount of error as the nozzle moves away from the home position. Homing at the center means the nozzle can only travel 1/2 as far compared to homing in a corner.

Quote
glopglop
This is the output from the `G29 T` stage :
Recv: Bed Topography Report:
Recv: 
Recv: (0,9)                                                                   (9,9)
Recv: (10,185)                                                                (180,185)
Recv:      .          .          .          .          .          .          .          .          .          .
Recv: 
Recv:      .          .          .          .          .          .          .          .          .          .
Recv: 
Recv:  -1.190   -0.938   -0.675   -0.445  [-0.215]   0.057    0.242    0.432    0.607    0.802
Recv: 
Recv:  -1.160   -0.903   -0.648   -0.435   -0.185    0.070    0.307    0.465    0.687    0.822
Recv: 
Recv:  -1.098   -0.865   -0.628   -0.355   -0.098    0.115    0.307    0.487    0.667    0.865
Recv: 
Recv:  -1.050   -0.807   -0.563   -0.335   -0.098    0.122    0.332    0.538    0.717    0.903
Recv: 
Recv:  -1.025   -0.743   -0.533   -0.302   -0.098    0.142    0.367    0.558    0.742    0.945
Recv: 
Recv:  -0.995   -0.730   -0.508   -0.263   -0.033    0.190    0.380    0.592    0.760    0.952
Recv: 
Recv:  -0.970   -0.720   -0.498   -0.260   -0.070    0.153    0.397    0.570    0.770    0.992
Recv: 
Recv:  -0.893   -0.705   -0.480   -0.265   -0.033    0.190    0.395    0.595    0.820    0.957
Recv: (10,10)                                                                    (180,10)
Recv: (0,0)                                                                     (9,0)
That is a lot of tilt. UBL can handle that. But still... You will get the best results if you minimize the tilt.

Quote
glopglop
Actually, just a thought, is it possible the levelling code is making assumptions about INVERT_X_DIR & INVERT_Y_DIR?

No... That is all factored in at the lowest levels. UBL is doesn't need to know about that. UBL just tells the Stepper routines what coordinates it wants the nozzle to move to.
My suggestions are:
  • Physically level the bed as well as possible
  • Home the Z-Axis at the center of the bed
  • Re-validate you can print a small object at the center of the bed (Very important since we may be changing the Z-Home numbers Do a G29 D to insure UBL is deactivated prior to the print.)
  • Regenerate the mesh with G29 P1 (and save with G29 S1 )
  • Fill the mesh with G29 P3 (and save with G29 S1 )
  • Activate UBL (G29 A) (and save with M500 Now UBL will be active when the printer powers up)
  • Do the same G26 pattern
  • Post a picture of the G26 Pattern
  • You may want to mark your glass (and your bed) so you know where left and right and top and bottom are. You always want to put the glass back on the bed at the same location with the same orientation.
  • We will edit the mesh based on that picture

It will go surprisingly quick once we have the next G26 pattern printed.

Edited 7 time(s). Last edit at 09/25/2017 04:21PM by Roxy.
Re: Bedlevelling (all types) is always slightly off.
September 26, 2017 03:43PM
Hi, thanks for all that

  1. Physically level the bed as well as possible

Turns out a touch sensor is an awesome levelling tool, probe 3x3, adjust, repeat. smiling smiley

  • Home the Z-Axis at the center of the bed
  • Re-validate you can print a small object at the center of the bed (Very important since we may be changing the Z-Home numbers Do a G29 D to insure UBL is deactivated prior to the print.)

With auto bed levelling disabled :



Much better (well obviously! bed manually levelled)

  • Regenerate the mesh with G29 P1 (and save with G29 S1 )

Recv:  -0.220   -0.162   -0.112  [-0.077]  -0.060   -0.072   -0.092
Recv: 
Recv:  -0.167   -0.110   -0.095   -0.050    0.003   -0.027   -0.060
Recv: 
Recv:  -0.032   -0.052    0.008    0.005    0.013    0.008    0.015
Recv: 
Recv:  -0.060    0.015    0.048    0.008    0.015    0.023   -0.037
Recv: 
Recv:  -0.045   -0.047   -0.030   -0.025    0.008    0.005   -0.025
Recv: (10,10)                                            (180,10)
Recv: (0,0)                                             (6,0)

  • Fill the mesh with G29 P3 (and save with G29 S1 )

Recv: Bed Topography Report:
Recv: 
Recv: (0,6)                                           (6,6)
Recv: (10,185)                                        (180,185)
Recv:  -0.220   -0.162   -0.112   -0.077   -0.060   -0.072   -0.092
Recv: 
Recv:  -0.220   -0.162   -0.112   -0.077   -0.060   -0.072   -0.092
Recv: 
Recv:  -0.220   -0.162   -0.112  [-0.077]  -0.060   -0.072   -0.092
Recv: 
Recv:  -0.167   -0.110   -0.095   -0.050    0.003   -0.027   -0.060
Recv: 
Recv:  -0.032   -0.052    0.008    0.005    0.013    0.008    0.015
Recv: 
Recv:  -0.060    0.015    0.048    0.008    0.015    0.023   -0.037
Recv: 
Recv:  -0.045   -0.047   -0.030   -0.025    0.008    0.005   -0.025
Recv: (10,10)                                            (180,10)
Recv: (0,0)                                             (6,0)

  • Activate UBL (G29 A) (and save with M500 Now UBL will be active when the printer powers up)
  • Do the same G26 pattern
  • Post a picture of the G26 Pattern

For :
G26 B60 C H200 T3.0



  • You may want to mark your glass (and your bed) so you know where left and right and top and bottom are. You always want to put the glass back on the bed at the same location with the same
  • orientation.
  • We will edit the mesh based on that picture

So it's a bit confusing. Bed is pretty level, except the far left corner.

My thoughts are the result of the G26 seems generally similar to the first G26 above, in that the middle seems at a reasonable level, to the right the print gap becomes too big so the PLA does not adhere, and to the left the nozzle gets too close.

Hmm.

Edited 1 time(s). Last edit at 09/26/2017 03:45PM by glopglop.
Re: Bedlevelling (all types) is always slightly off.
September 26, 2017 08:27PM
OK... So it should not be too hard to get things perfect. Any place you don't have adhesion because the nozzle is too far from the bed on the G26, Do a G29 P4 R and lower those mesh points by .1mm
And do the opposite where you can see that very little filament got extruded because the nozzle was too close to the glass. Raise those mesh points .1mm.

Once you can get a G26 to print in its entirety, you can start raising and lowering mesh points by .05mm at a time. In 3 or 4 iterations, you will have it perfect.
Re: Bedlevelling (all types) is always slightly off.
September 27, 2017 02:12PM
Cheers Roxy,

I have been doing this, will continue later.

Can I ask though about bed levelling, I mean at this point on a 7 x 7 grid, manually and iteratively levelling many of the 49 points, it's really time consuming.

I'm wondering if there's a misunderstanding on what is realistically achievable using bed levelling.

I bought the BLTouch (perhaps naively) assuming it would just automatically deal with it all, but it seems the this is not how bed levelling works.

More I'm literally using the BLTouch plus levelling software as a tool to measure and level the bed myself, this is fine, as someone with a 3d printer I am used to spend much time fiddling, but it's just not how I expected it to work.

Edited 1 time(s). Last edit at 09/27/2017 02:13PM by glopglop.
Re: Bedlevelling (all types) is always slightly off.
September 27, 2017 04:21PM
Quote
glopglop

[*] Fill the mesh with G29 P3 (and save with G29 S1 )
[/list]

Recv: Bed Topography Report:
Recv: 
Recv: (0,6)                                           (6,6)
Recv: (10,185)                                        (180,185)
Recv:  -0.220   -0.162   -0.112   -0.077   -0.060   -0.072   -0.092
Recv: 
Recv:  -0.220   -0.162   -0.112   -0.077   -0.060   -0.072   -0.092
Recv: 
Recv:  -0.220   -0.162   -0.112  [-0.077]  -0.060   -0.072   -0.092
Recv: 
Recv:  -0.167   -0.110   -0.095   -0.050    0.003   -0.027   -0.060
Recv: 
Recv:  -0.032   -0.052    0.008    0.005    0.013    0.008    0.015
Recv: 
Recv:  -0.060    0.015    0.048    0.008    0.015    0.023   -0.037
Recv: 
Recv:  -0.045   -0.047   -0.030   -0.025    0.008    0.005   -0.025
Recv: (10,10)                                            (180,10)
Recv: (0,0)                                             (6,0)


With those numbers you should not be having any problems Printing.

These are my numbers and have no problem printing anything
< Bilinear Leveling Grid:
G28 Auto level "G29 S"
< -------0 -------1--------2--------3
< 0 -0.005 -0.020 -0.100 -0.312
< 1 -0.198 -0.100 -0.090 -0.215
< 2 -0.282 -0.145 -0.060 -0.155
< 3 -0.312 -0.160 -0.060 -0.080
< 4 -0.350 -0.155 -0.035 -0.030

Quick Manual Bed level "G29 S"
< -------0 -------1--------2--------3
< 0 +0.092 +0.053 -0.028 -0.207
< 1 -0.100 -0.038 -0.020 -0.140
< 2 -0.187 -0.063 -0.002 -0.073
< 3 -0.207 -0.093 +0.002 -0.020
< 4 -0.210 -0.083 +0.017 +0.035

Both Bed levels printed larger Models.

Currently printing Halloween Toys to go with the Candy.
Fidgets
Frogs
Gliders
ect...

Edited 2 time(s). Last edit at 09/27/2017 04:51PM by Roberts_Clif.
Re: Bedlevelling (all types) is always slightly off.
September 27, 2017 05:40PM
Quote
glopglop
Cheers Roxy,
Can I ask though about bed levelling, I mean at this point on a 7 x 7 grid, manually and iteratively levelling many of the 49 points, it's really time consuming.

I'm wondering if there's a misunderstanding on what is realistically achievable using bed levelling.

It does take an hour the first time through the process to get a perfect mesh defined. Mostly because there is a bit of a 'learning curve'. But after that... It can be done in 10 or 15 minutes and you are only doing things for 4 or 5 minutes of that time.

The G26 does take a little bit of time to print. But it only takes 10 seconds to use PronterFace to move the nozzle to the center of an area that is 'less than perfect'. And when you give it a G29 P4 R command, you can edit 5 or 10 mesh points in that area in a minute or two. Other than testing the code to make sure it will work at lower numbers... I've never run a mesh smaller than 10 x 10. Typically I use the full 15 x 15 resolution. Don't be scared of going to a higher resolution like 10 x 10 !

And go ahead do this just so you can see what I'm saying:
  • Move the nozzle to an area of the mesh (that is supposedly bad)
  • Issue a G29 P4 R
  • edit the mesh point. Maybe edit the first point by .1 mm
  • edit the surrounding mesh points (to the original point) by .05mm
  • Cancel the editing session with a 'Press & Hold' of the encoder wheel.
  • Don't save the mesh... Its obviously wrong.

It might take 5 or 10 minutes to print a G26 pattern. But you don't have to supervise that. You can have a cup of coffee. And then just edit any areas that need improvement in 3 or 4 minutes with the G29 P4 R

Quote
glopglop
I bought the BLTouch (perhaps naively) assuming it would just automatically deal with it all, but it seems the this is not how bed levelling works.

More I'm literally using the BLTouch plus levelling software as a tool to measure and level the bed myself, this is fine, as someone with a 3d printer I am used to spend much time fiddling, but it's just not how I expected it to work.

For the initial physical bed leveling, you can do a G29 P1 U and cancel the probing when you have enough points. This will try to space out the points as far from each other as possible. When you do a G29 T you will see 'about' where everything is. That way, you can do a quick preliminary probe of the bed, (again and again) and physically adjust things.

But the thing is this: The Z-Probes are not always highly accurate. They work well for the initial probing to get things close. But the proof is really in the pudding. You need to see what the printer is actually going to do when it is really printing. And that is where the G26 Mesh Validation Pattern comes into play. And with that G26 pattern still on the bed, you can quickly decide "I need that corner slightly higher. And I need that other area a tiny bit lower." It only takes a minute to shift any area of the mesh to perfection.

Edited 3 time(s). Last edit at 09/27/2017 05:43PM by Roxy.
Sorry, only registered users may post in this forum.

Click here to login