Mesh Bed Leveling does not work (Core XY with 2 z-axis motors)
-
@buckker said in Mesh Bed Leveling does not work (Core XY with 2 z-axis motors):
Whats actually happens if I print outside the probing area?
I looked into the source Grid.cpp function GetInterpolatedHeightError(): my understanding is, the last mesh point in this direction is used as reference height. E.g. if (50,50) to (350,350) have mesh points, than for (0,200) the point (50,200) is taken as height.
-
@buckker one more aspect I can think of is if your Z axis is driven by something like a worm drive, that direction changes have some play (backlash). This would cause unexpected movements.
You can check whether there is compensation directly by checking the Z motor position: M114 has a Count value, the third one is the motor position of Z. The counter is set at homing and depends on motor position and M92 value. So you know the firmware's value and not depend on the reality Z position.
-
Yes, Tesa really produces very high quality measurement equipment
I modified the probing area with more points. But it also doesn't help. I also print some smaller test parts (cubic with 280mm x 280mm). With this dimensions the part is 100% in the probed area. Same result...
I also checked with the dial gauge the travel of the z-axis. Both motors compensate some deviation. The direction should be also fine. But it was not able to compare the z-axis absolute travel measured by the dial gauge with the height map. It seems that the printer compensate some deviation, but no enough..
I use a belt driven gearbox for the z-axis (4:1). I will check the backlash of the axis.
actual printing result:
height map for this part:
One thing confused me: at the left front corner, the layer should stick very good (+0.2mm offset), the nozzle should have nearly zero gap without mesh bed compensating (if I print at 0.2mm layer height). But actually the layer is too far away from the build plate... I don't understand this...
I will run a print with disabling mesh bed compensation
-
@buckker said in Mesh Bed Leveling does not work (Core XY with 2 z-axis motors):
confused me: at the left front corner, the layer should stick very good (+0.2mm offset),
is this the reality (bed uneven) or is it a measurement error? A good lineal, best would be a hair lineal, could give you the answer. Or a measuring plate together with your gauge. Or maybe you have an additional linear guide, mounting the gauge, parallel to the bed, allows measuring the bed.
I suspect the two linear guides of Y are not in one plane, too. (left is higher in front, right one is higher in the back). I use feeler gauge for fine tuning. You don't have a reference, however. I would try between 0.1 and 0.2 mm and then decide by bed measuring (mesh probing or gauge).
An additonal topic you can check is whether the bed is sliding smooth enough. I. e. the distance of the two opposite linear guides need to have a little play. Otherwise a direction change of Z stepper will produce a little gap, depending how high the belt tension is. The bed should not be fixed with screws, because bed expansion by temperature will change the distance between the linear guides.
-
It's not a measurement error. The aluminium bed is flat (EN AW-5093 precision cast plate, also checked with a lineal). But it's possible to bend the plate with the 4 adjusting screws. For my opinion 0.2mm error for a 400x400mm plate is not that bad.
I have a second printer with a 350x350mm bed and only one z-axis stepper motor (also Duet Wifi equipped, same firmeware version). I tested the bed leveling with the same test part. On this machine the bed leveling works normal and the first layer is perfect over the hole area. The flatness of the bed is around 0.2mm..
After that I compared the start g code from my prusa slicer. I could notice some differences. But for today it's enough tested Maybe I have more luck tomorrow...
-
@buckker said in Mesh Bed Leveling does not work (Core XY with 2 z-axis motors):
bend the plate with the 4 adjusting screws
Beside firmware, the hardware could produce strange results. One possibility is a stuck bed, if the two opposite linear guides get stuck. This is the only idea I have in addition.
Good luck tomorrow proceeding investigating!
-
In cases like this where the mesh doesn't appear to be compensating correctly at certain points usually means there is some variance in probe offset between different XY points due to some form of skew. Possibly tilt or sag of the gantry, or skew in the rails from not being perfectly aligned, etc.
One way to check for this is to do a G30 S-1 test at various points on the bed and see how the trigger height results change.
-
Good Morning everyone
@JoergS5 I designed the heat bed with enough play for the heat expansion. I also printed the the supporting parts on the left and right side for the heat bed. Due to the plastic material, it's not that stiff and can be deformed. Secondly, if the length rises due to the heat expansion, the screw head is able to move in the cylinder countersink.
I did a few prints on this machine and they looking very good. Actual a 400mm high part. I believe, if I have a mechanical problem, the prints would't looking that nice.
https://www.youtube.com/watch?v=s3IA_d9eO8U
@Phaedrux Thanks. I have checked the mechanical system yesterday. I couldn't find any play or low stiffness. The x-axis is supported by two MGN9 rails. It's a lot stiffer than my second printer, who actually print very nice first layer...
Maybe it's time to change the BLTouch. I ordered it from Triangle Lab. Normally they sold very high quality products, but it's possible that the sensor isn't that precise as it should be.
I will do some probing points to see how good the repetitive precision is.
Many thanks for your help!
-
@buckker Given the location of your probe, the area of the bed that "seems raised" and the position of your wiring loom to the head, I wonder if the loom may be pulling on the head slightly and causing the probe to move slightly nearer the bed when in that from left corner? That would make it look to the system that the left front part of the bed is higher.
-
@buckker said in Mesh Bed Leveling does not work (Core XY with 2 z-axis motors):
I designed the heat bed with enough play for the heat expansion.
It's good that you're aware of those factors, most users don't. Your print looks nice!
-
I did did some further tests. I use G30 S-1 to probe at the center and at one corner of the build plate. Those are the results:
center:
corner:
And I did another test where I pull on the cable in several directions (regarding the post from @gloomyandy ) The max. deviation I get is around 0.015mm.
I think this is a nice precision.
I also eliminate the G32 from the start code. With that the bed is around 0.5mm tilted. I started a print. I could see, that the machine do some compensating, but not enough.
From my actual standpoint I would say that a mechanical cause is improbable. I asking me if something is wrong with my configuration or if it's really a firmware bug. Do we have a prove that the mesh bed leveling works with two independent stepper motors? Could it be, that reprap firmware only compensates 50% of the deviation because of the two motors? With one motor it compensates 100%?
-
@buckker Having two motors really makes no difference to the mesh compensation code, it simply moves the whole bed up and down to adjust for the mesh it does not try and do anything fancy, this uses the same code as when performing any other Z movement so I'm pretty sure you would have noticed by now if the firmware was not moving correctly in Z. I have a similar setup to yours and do not have any issues with bed compensation (and my bed is probably not as flat as yours is!).
A few comments on your configuration files...
- You may need to change your axis limits. At the moment you are not allowing any movement below z=0, looking at your mesh a significant part of that is below this point and so the compensation will not be working correctly in those areas.
- It;s probably a good idea to perform another G30 (or home Z) after running G32 as it is likely that your Z=0 height will have change a little during the bed levelling process. Similarly make sure that you always set Z=0 before creating a mesh (and/or loading one if you use a saved version). If you set your z=0 point at a location that coincides with a mesh point (probably a good idea). Then your mesh should have a reading very close to zero at that point.
- Depending upon how you have determined your probe offset after making the above changes you may need to adjust that setting a little.
Good luck!
-
Thanks for your post
To my knowledge a negative z-axis limit is not necessary. The limits in M208 are only applied to the g-code. Despite that, I changed it to Z-1. It doesn't make any difference.
I also put a G30 after the G32 on the first G29 probing point (left front corner). Now I have the first probing point at exactly 0.000mm.
I printed my test print again. at the left side the first layer is not sticking to the build plate. At the right side it's too close.. So this proves, that the firmware compensates in the negative direction. But it seems it compensates wrong values.
Next step will be to attach a dial gauge to measure the the z-axis travel. I will compare the effective values that the machine compensates. My test print will be adjusted to match the probing points.
-
@buckker said in Mesh Bed Leveling does not work (Core XY with 2 z-axis motors):
I did did some further tests. I use G30 S-1 to probe at the center and at one corner of the build plate. Those are the results:
You're showing the exact problem I spoke of. The trigger height is changing depending on XY position.
@buckker said in Mesh Bed Leveling does not work (Core XY with 2 z-axis motors):
I think this is a nice precision.
I wouldn't say 1.866 and 1.916 many have precision within repeated probes at those locations, but the fact they differ means your probe isn't accurate.
-
Hello Everyone
The problem is finally solved!!
I checked yesterday if the machine compensates the bed deviation correctly with a dial gauge attached to the z-axis. The result was at 3 corners very good (better than 0.02mm). At one corner around 0.05mm.
So I checked again the linear rails from the x-axis. I find out that the rails aren't aligned perfectly to each other. The result was that the bltouch get tilted and the offset isn't consistent over the hole travel length.
I aligned both rails and the issue is gone.
Thanks everyone who was helping me
-
-