Mesh Compensation Overcompensating a bit?
-
@fcwilt the z offset only works as good as I need it to be in this project, for a narrow margin of heights. Unfortunately this 8x9cm area in the middle of my bed seems to be the only area with a suitable height range. There i got maximum deviations of about 0.1mm and i can print two instead of one of the qr code keychains. I identified its coords via a P21 heightmap.
That's why i was looking at the precision bed from Filafarm, which is supposed to have around 0.05 deviations. When it's no problem to just level down and squish the unevenness away, it's ok. But if i want to maintain the perfect look of the .3mm extrusion width lines, it's a different matter, as I have to maintain a positive offset. On the center of my bed, for the 2 keychains, I now use 0.01 offset.
-
@suntoxx said in Mesh Compensation Overcompensating a bit?:
@fcwilt the z offset only works as good as I need it to be in this project, for a narrow margin of heights. Unfortunately this 8x9cm area in the middle of my bed seems to be the only area with a suitable height range. There i got maximum deviations of about 0.1mm and i can print two instead of one of the qr code keychains. I identified its coords via a P21 heightmap.
I have tested Mesh Compensation with a heightmap I created by hand. It was perfectly flat on the Y axis but on the X axis the deviation ranged from 0 on the min end of the axis to 100mm on the max side of the axis.
The firmware correctly adjusted the Z axis despite the extreme deviation.
I don't know why it doesn't seem to be working well with your printer.
That's why i was looking at the precision bed from Filafarm, which is supposed to have around 0.05 deviations. When it's no problem to just level down and squish the unevenness away, it's ok. But if i want to maintain the perfect look of the .3mm extrusion width lines, it's a different matter, as I have to maintain a positive offset. On the center of my bed, for the 2 keychains, I now use 0.01 offset.
A replacement bed sounds like a grand idea.
Frederick
-
@fcwilt said in Mesh Compensation Overcompensating a bit?:
A replacement bed sounds like a grand idea.
Yes, I wrote to Filaprint and will see what amount of money and effort this would take and then I will decide wether to do it or not. The numbers i print now i can do with printing two at a time, so for now I am not forced to do it. I also preordered the Prusa XL, so if i can wait until then, the possibility to switch nozzle sizes in prints will probably make quite a difference for this too.
And as much as I complain about the mesh compensation, even in my "sweet spot" where i can print two at the same time, i got 0.1mm deviation. Without the compensation, i probably wouldnt even there get the result i do now.
-
@suntoxx a couple of extra thoughts for you from my experiences with mesh comp...
First obvious question is have you double checked that mesh compensation is active during the print? I appreciate its a silly question, but a stray M561 has sent me nuts before...
What is your min z height allowed in config? You'll need to allow a small negative amount so that it can reach the low points on your bed.
Have you checked that the BLTouch trigger height is consistent across the bed? Could be that any small gantry sag/tilt could be affecting it in some areas? Even just the eight of the wiring and filament feed could flex things a few micron. One option for testing this is to manually edit a heightmap in excel to make it compensate more in the areas you are seeing issues. There's a couple of bed levelling stls on thingiverse that work quite well for this kind of thing
-
One thing I am wondering. When you guys say that you always get a perfect first layer and don't understand why it doesn't work for me, do we mean the same thing? That means, can you level your nozzle to the bed so that at its G31 value, it is set to z 0 (=touching the bed without a paper in between) and then always print a perfect layer on a bed (that has a bad of about .5 deviance or so), without using a z probe offset (ie with m290 at 0 and not changing G31)?
Because my problem is not that i am not able to squish irregularities out of the first layer with a negative z probe offset, the problem is that with a negative z offset, the first layer does not perfectly maintain the extrusion width, which negatively affects the QR Code embedded into the first layer. Which I believe is probably a major difference. I got the impression, that on a bed with more than .1mm deviation, you can not perfectly maintain the extrusion width on the first layer of a print with multiple colors on the first layer.
@engikeneer said in Mesh Compensation Overcompensating a bit?:
@suntoxx a couple of extra thoughts for you from my experiences with mesh comp...
First obvious question is have you double checked that mesh compensation is active during the print? I appreciate its a silly question, but a stray M561 has sent me nuts before...
Yes, it's working. Only got M561 in my leveling macro and and got G29 in my startcode.
What is your min z height allowed in config? You'll need to allow a small negative amount so that it can reach the low points on your bed.
I have tried down to -4, but various first layer prints showed no difference between 0, -2 and -4. Would't it be a strange thing if the programmers allowed the mesh compensation to end at 0, when most of its job is to compensate below 0?
Have you checked that the BLTouch trigger height is consistent across the bed? Could be that any small gantry sag/tilt could be affecting it in some areas? Even just the eight of the wiring and filament feed could flex things a few micron. One option for testing this is to manually edit a heightmap in excel to make it compensate more in the areas you are seeing issues. There's a couple of bed levelling stls on thingiverse that work quite well for this kind of thing
I believe this shouldnt be a problem. It is a CaribouDuet with 10mm Misumi rods, carriage has LHBB10 aluminium bearing blocks and Igus energy chains. Printer came preassembled and calibrated.
Also, there are no signs of tolerances. If I optimize somethingto print in one place of the bed, it reproduces it there without any variance.
However, as some of the keychains themselves, when copied around the bed, seem fairly consistent, an offset for each of them might actually improve the performance of the mesh compensation, I believe. But manually editing the heigtmap won't proof that the printer is at fault, will it?
-
When you guys say that you always get a perfect first layer …
Perfect is relative. Your keychain needs extreme accuracy in order to keep the QR code readable. Most things we print are less demanding (with respect to the first layer); as long as we don’t diagnose elephant feet or air prints, we are fine. Of course, that's relative, too
squish irregularities out of the first layer
For you: a problem, for others: a feature to get a uniform surface
Would't it be a strange thing if the programmers allowed the mesh compensation to end at 0, when most of its job is to compensate below 0?
Think of the axes limits as safeguard to protect our hardware. That’s why they are absolute. If you want to exceed the limits, you have to actively permit it.
But manually editing the heigtmap won't proof that the printer is at fault, will it?
The need for a heightmap itself proofs the existence of a, let’s say: less than perfect bed. If manual editing is needed on top, I would talk of a major mechanical problem.
However, your keychains are really special - to repeat myself: you are pushing the limits. In such a situation, it’s absolutely fine to try all tricks you can imagine. The alternative would be to buy a printer in the range of 10k bucks or so, and even that will not be perfect without tweaks.
-
@infiniteloop said in Mesh Compensation Overcompensating a bit?:
For you: a problem, for others: a feature to get a uniform surface
Well, it does help a lot up to .1mm deviation
Think of the axes limits as safeguard to protect our hardware. That’s why they are absolute. If you want to exceed the limits, you have to actively permit it.
I would have expected that G29 already permits it and only as much as is necessary for the bed in question. Or is there a reason why you trust your probe to compensate convex parts of your bed, but not concave ones? Is the risk higher?
Do you have to lower the limit by the amount of bed deviation to compensate (-0.340mm in my case) or do you also have to take the G31 z probe offset or anything else into account?
The need for a heightmap itself proofs the existence of a, let’s say: less than perfect bed.
That's one way to put it. It sucks would describe my bed with .5mm deviation well too though, I suppose
If manual editing is needed on top, I would talk of a major mechanical problem.
However, your keychains are really special - to repeat myself: you are pushing the limits. In such a situation, it’s absolutely fine to try all tricks you can imagine. The alternative would be to buy a printer in the range of 10k bucks or so, and even that will not be perfect without tweaks.
The filaprint precision bed unfortunately won't work with my printer. I guess I will try the silicone mod for prusa mk3s+ and see how that improves things. It's a shame. The printer can handle those tight tolerances without breaking a sweat and with a better bed he could do it across the entire print surface. Lets hope the mod can get most of the bed below .1mm deviation.
-
Do you have to lower the limit by the amount of bed deviation to compensate (-0.340mm in my case) or do you also have to take the G31 z probe offset or anything else into account?
You can lower the limit to any value you find reasonable for your printer. As long as you supply reliable data from the mesh, you don’t risk to damage either nozzle, print bed, or both. To be safe, you could lower the Z limit only for the time of a print - else, you might ram the head into the bed with DWC’s machine movement controls.
On the X axis, I face a similar situation: Either I limit it to a range both of my nozzles (Chimera hotend) can reach, or I extend it for single-material prints so that I can cover the bed completely - but inadvertent use of the other nozzle would then result in funny air prints.
The filaprint precision bed unfortunately won't work with my printer.
I had an eye on this, too, but we share a common lack of luck: it neither fits with my printer
-
@infiniteloop said in Mesh Compensation Overcompensating a bit?:
You can lower the limit to any value you find reasonable for your printer. As long as you supply reliable data from the mesh, you don’t risk to damage either nozzle, print bed, or both. To be safe, you could lower the Z limit only for the time of a print - else, you might ram the head into the bed with DWC’s machine movement controls.
Reasonable would be the lowest number necessary, wouldn't it? I have done quite a bit of testing and can't seem to find any confirmation of this working. Is there any documentation about this or has one of the responsible coders mentioned this? (is this compensation reprap oder duet3d code?)
The thing is that i haven't found any indication yet, that lowering the limit down to -4 has any effect and the keychain already has strong visual changes at about 0.02mm change on z. Neither does it seem to affect adhesion on the lower parts of the bed on normal prints.
-
@suntoxx as long as your z min is greater than the lowest point in your mesh (yours looks about -0.2mm?) then you'll be fine. G31 offsets don't come in to it, though tool offsets do if you use them (e.g. a toolchanger).
You're right that if you manually edit the heightmap it won't tell you where the error is coming from, but if it works, does it matter...?
I agree that you are really needing to push the limits to get this print right. Realistically, you need to get the nozzle to follow the bed surface within 5-10% of the first layer height over the whole surface area. For a 0.2mm layer height, that means 10-20um which is really not a lot! You'll have 1-2um from the BLTouch. Every single um adds up and even thermal expansion can start to add up (e.g. the frame could heat up slightly during probing or printing so the later points have more offset). Slight deflection from the rods being under load also comes into play (we're not talking visible flex or backlash). You only need the BLTouch trigger height to vary by 0.005mm at one edge of the bed an you may start to see it in the print. There's also the accuracy of the z axis as stepper microstepping is not always perfect which can effect both the probing and the printing accuracy.
I don't think you've got a major mechanical issue, or got something configured very wrong. It sounds like the issue is reasonably repeatable though, so I'd tackle it by trying to manually edit the heightmap and tune that. Comparing the manual edited to the original may also help you figure out which areas of the bed have the issues
-
I felt like I had the same issue. I have a mesh of 23x19 points, always taken after at least an hour of heat soak in. I do this for each one is my removable print plates.
I have an extremely flat build surface underneath and I even go so far as to manually probe the bed at randomly chosen probe points to validate the mesh.
The tested points always nearly exactly match the saved mesh.
But when I print, there is always one area, on each of my 6 different plates that acts like a low spot.
All I could think of was that my kinematics were out of whack somewhere so the reasonably large offset between the probe and my tool must be revealing that.
Maybe you have the same issue? I have a tool changer, that's why my probe is so far away.
BTW, I fixed it by squaring my frame, checking all along the lengths of the body and added braces where they were the wrong distance apart.