Mesh leveling for large bed
-
Hey all,
I've been battling some issues with bed leveling on my new printer, and I cannot for the life of me get it to work. No matter what I try, I cannot get it to properly compensate the lack of flatness in my bed. It seems that with mesh compensation activated, especially on the high-x end of my bed, I can never get the nozzle close enough to create a good first layer. Here are some pictures:
Layer height way too low at low-X, Low Y (high-Y is the same)
Layer height too high at center of bed
Layer height way too high at high-X, low-Y (high-Y is also the same)I began with my two Z motors connected in parallel, and was having this issue, so I moved each Z motor to its own driver, and then ran G29 to level the leadscrews, and I sill am having the same issue.
This is what my height map looks like:
As you can see, there is a huge max/min deviation, is there a limit to what mesh leveling can compensate for?
I am dealing with a very large bed (1000x500mm), which I believe may be the root of the issues I am having.
What should I do? I feel like I have done everything I can to no avail.
Thanks in advance!
-
What’s your probe offset in relation to the nozzle?
Maybe the x axis is 0.00x° twisted which gets multiplied by the Y offset.
-
@argo
The probe is -27.5mm offset in the x direction and -2mm in yIt is a BLTouch if that matters
-
@twinkler G29 to level the screws? Do you mean G32?
Might be worth posting your bed.g in case there's anything off it there?
Was the mesh active when you did the G32? That can throw things off a bit -
@engikeneer
Yes, I do mean G32. Here's my bed.g file, It is done the same as in this guide.; bed.g ; called to perform automatic bed compensation via G32 ; ; generated by RepRapFirmware Configuration Tool v3.3.10 on Sun Jan 23 2022 17:15:57 GMT-0700 (Mountain Standard Time) G28 G30 P0 X5 Y250 Z-99999 G30 P1 X970 Y250 Z-99999 S2
I am fairly certain the correct end of the gantry gets corrected, but am not sure how to test it to be sure
-
@twinkler I'd suggest adding an M561 in there before the two G30s (though I'd assume you'd also have it in homeall?). That way you know mesh comp is diabled
Simplest way to check if it's right is to run it several times. If the results converge, you got it right, if not then you probably don't it's probably worth running it a few times to begin with anyway as any slight errors in lead screw positions etc mean it won't correct everything first time.
-
I did not have M561 in either macro, but have now added them.
I ran G32 a few times and after the second run, the results are virtually the same. This, plus the fact the gantry isnt getting skewed more and more off-plane every time i run it makes me feel it is set up properly.
I will try another test print shortly.
-
One more question, when homing with a z-probe, is it imperative that it homes Z at the first mesh probe point? I currently have it homing at the center of the bed and am beginning to wonder if that is causing the issue. I've tried moving it before with seemingly no change, but I'm not sure how the firmware relates the z=0 datum to the mesh grid in terms of XY position
-
Ideally you should set Z0 at one of the mesh points, not necessarily the first. A point at the middle of the bed is usually the most sensible because that's usually where you will be printing and it makes the mesh display easier to understand visually.
I don't think leveling the two Z motors is your problem. Your mesh has a saddle shape which seems to indicate some sag in your X axis. And since you have a very large area of 1000x500 there is a good chance for some sag. That sag can also cause the Z probe to tilt, resulting in a different trigger height at different locations on the bed, which in turn causes the mesh to be inaccurate.
One way to test this is to change your M558 probe type to P0 for manual probing. Then run a sparse mesh, maybe 4x4 and it will ask you to manually lower the nozzle down to the bed surface. The resulting mesh won't be affected by any probe tilt. See how it compares to the mesh the probe generates.
Can you also share your config.g and homing files with us so we can see what else is going on?
Also maybe some photos of the printer to give us an idea of the mechanics and scale.
-
@twinkler sorry was busy last night, but I think @Phaedrux has you covered. Sag sounds a likely candidate. A long/heavy bowden tube and wiring bundle can also tilt the print head different amounts at different locations and give a similar effect. I had this problem on my printer and eventually resortes to manually modifying the heightmap file
You can see your heightmap is zero in the centre and drops at the edge. If you homed z at the edge, it would be zero there and high in the middle. Generally homing z in the middle of the bed with your probe is better as mentioned above. It's also safer in case you forget to enable mesh comp as the nozzle won't gouge into the hight spots.
-
@twinkler said in Mesh leveling for large bed:
No matter what I try, I cannot get it to properly compensate the lack of flatness in my bed.
Your heightmap shows a total vertical error of over 2mm.
I'd suggest you check things just with a straightedge or ruler to see how much curvature the bed and X axis rail really have, with the head somewhere around the centre of the X travel to give a "worst case" load.
If there is really that much distortion somewhere, any large print you do will have a curve with a 1-2mm recess in the middle; you will never be able to get a flat base on anything.
I had spurious probe errors on one of my machines, showing significant bed distortion that was not really there (using a BLTouch).
I did a low point count heightmap then edited it to zero at all points, so there was no compensation, then after restarting the machine and a G32 to level the bed, checked Z clearance at multiple points using a plastic shim as a gauge piece between the nozzle and bed.
The probed heightmap was totally wrong, compared to actual measurements.
I tried it with a simple precision switch type probe and that gave a completely different and near flat heightmap, which worked fine.
I've still not got to the bottom of the BLTouch stray readings, but the machine works fine with the other probe heightmap so I've not spent much more time on it.