Smooth a bed mesh?
-
Hello,
Is there a way to smoothe a mesh? I can see slight evidence of the x carriage twisting one way and the other as it moves. I would like to do a 10 by 10 mesh and amooth it to say a 5 by 5 mesh to remove these artefacts.
I can only really think of saving the mesh and doing thia externally in python.
-
@DocTrucker I don't use mesh compensation myself but surely it must already interpolate between probe points.
-
@deckingman that's not what I'm asking for. When there's a slight directional tilt on the carriage depending on direction of motion you get a peaks and valleys effect on the mesh bed correction. This is effectively noise as if you measured the same set of points from left to right then right to left the whole set would drop or lift. The height of these valleys is negligable, but could add extra unneeded z axis motion which I am looking to eliminate.
-
@DocTrucker If you're getting peaks moving one way, and valleys the other, it's because your X carriage is tilting depending on the direction of pull of the belt, and combined with the offset of the probe, causing the probe to be higher in one direction that the other. I'd try to fix the underlying problem.
As far as I know, the whole point of bed mesh is to compensate for small distortions in the bed. If you're introducing distortions because of probe height inaccuracy, there's no way for the firmware to distinguish these from other distortions, and no way to filter them out.
Ian
-
This is an alloy mk3 bed clipped to a 3mm pane of float glass - which can of course bend and is also invisible to the inductive sensor.
The term small is dependant on perspective. I've got a global dish on the mesh results in the order of 0.05-0.10mm. The deviance of the line-sets is no more than 0.005 or so, but still visible on the height mesh as a ridge and well within the minimum z-microstep size of ~0.0003mm. Doing the mesh bed probe twice, once forwards and the other backwards would probably clean up the results.
Yes, long term revisions to the machine are in order, starting with throwing the crappy dual 8mm smooth rod setup in the bin, but time is the essence here and that is a major CAD revision later.
Edit: Already planning the next revision for the final P3Steel, but that is a way off fruition. -
@DocTrucker said in Smooth a bed mesh?:
Doing the mesh bed probe twice, once forwards and the other backwards would probably clean up the results.
That would probably make the best sense, but not I'm not sure how you'd get it to do that! Or, for example, do a 10x10 mesh, so it starts going X+ from Y0 and comes back X- on Y20, then do a 10x9 mesh starting at 0,20, so it starts going X+ at Y20. You'd lose the first row, but the rest should cancel each other out.
Ian
-
@droftarts could we have a flag on G29 to do the points in reverse order? Potentially a simple add?
I was going to look at a few different methods like what you suggested and averaging a 10x10 array back to 5x5, but you would risk loosing the extremes.
The thing here is it is such a tiny offset that is being applied, and I'm aware it is being exaggerated by my probe offset, but an 8mm sensing distance probe is mighty dificult to package into the carriage!
-
Isn't the mesh result just a csv file? Presumably you could go in there and tinker with the output directly if you wanted.
-
@clearlynotstef that's what I'm discussing doing. A flag to do G29 in reverse would make the results far more acurate though.
-
I suppose you could intentionally mirror your X axis so that instead of starting at the front left it started at the front right. then you'd have two heightmaps that you could do with as needed.
-
@Phaedrux good shout!
My alternative that I was mulling over would be to drive the machine direct from a python script, check the points forward and reverse, then post of the correction. An idea quite suited to the D3 but my restbed isn't ready yet.
-
I really don't understand what you are trying to do here. It is a lot of trouble for a very tiny gain that will not make any difference in your print. If your gain is more than just tiny, then it's worthwhile to correct te error at source and not just stick a bandaid on it!
Let's say pass one shows the bed height to be 0.1 mm high and pass two shows te bed height to be 0.1 mm low. You can average this as zero. When you are actually printing, you do not know which way the printer is moving and you are guaranteed an error of 0.1 mm. Without going through the hassle of tweaking you have either a zero error or a 0.2 mm error which of course is huge but at least you are guaranteed to be right on in 50% of the cases.
You are talking a deviation of 0.005mm .... Good God man, what are you thinking? How accurate do you think that printer is in real life? Don't you have better things to worry about ?
You say: minimum z-microstep size of ~0.0003mm .... that is a theoretical value that you will never achieve! You can be reasonably certain of stepper positions in full steps but not in micro steps! You might be requesting 2 or 3 microsteps but it wouldn't be unheard of that the stepper never moves until you get to let's say step 5 at which point it moves into the general vicinity of where you want to go and NOT to exactly that position. There is no indent that says I am at microstep 211. There is only a certain amount of current applied to the magnets that SHOULD get the steppe to go roughly there!
Again, if you run full steps, you can be reasonably sure that you get to the designated spot. If you run 16 microstep for every full step you have less accuracy over position but still not bad. If you run 256 (or whatever) microsteps per full step you are tossing a coin in the air and hoping and praying but you are essentially guaranteed that you will be nowhere where you are expecting to be unless you are extremely lucky. You will however get there very smooooothly instead of with a big 'clunk'!Sorry, got carried away ... stepping off my soap box now ...
-
@jens55 said in Smooth a bed mesh?:
...then it's worthwhile to correct te error at source and not just stick a bandaid on it!...
Which is exactly what I am trying to do in a premtive manner.
I think you've got the wrong end of the stick for what I am trying to achieve here. But we all feel better after a rant eh?!
Yes a 0.005 deviation is a tiny correction to try and make. Thats my point. I also mention the 0.0003 step size not because I expect to achieve that, but simply stating fact, that the useless corrections on the mesh are an order of magnitude larger than my stepsize. Thus the controller will be processing these steps, adding additional accelerations, jerks, etc that will have no effect on part accuracy but could convievably cause fluctuations in the X/Y processing rates or create tiny witness marks on the parts like the morii patterns that would be a right challenge to track down at a later date.
So, in summary the 0.1mm dish is something I want to correct for as my other similar machine has suffered edge adhesion issues on parts. This 0.005mm additional deviation is pointless to try and correct for, but would be unnecessarily loading the controller and I want to get rid of this potential problem at source rather than ignore it and struggle identify the cause to allow me to band aid it later.
All I am discussing here is ideas that understand the limitations of the measurement equipment but correct for measurement errors that caused by large probe offset, the crappy 8mm smooth rods, and a heavy cable chain so that the controller isn't commanding unnecessary changes in the z axis motion.
As stated earlier on in this thread I will be tackling this issue mechanically in the coming months but not while locked down at home with little scope for extended planning and CAD sessions.
-
But we all feel better after a rant eh?!
Oh yes, rants do wonders for the soul especially if one is already on the edge from general challenges of life
Thank you for correcting me, I am glad you understand the general limitations.
@DocTrucker said in Smooth a bed mesh?:
@jens55 said in Smooth a bed mesh?:
...then it's worthwhile to correct te error at source and not just stick a bandaid on it!...
Which is exactly what I am trying to do in a premtive manner.
But we all feel better after a rant eh?!
Oh yes, rants do wonders for the soul especially if one is already on the edge from general challenges of life
Thank you for correcting me, I am glad you understand the general limitations.
-
@jens55 said in Smooth a bed mesh?:
Oh yes, rants do wonders for the soul especially if one is already on the edge from general challenges of life
It's a weird old time at the moment for us all!
I fall into the category of basically shutting shop on my work and tackling little bits here and there around looking after my son who's been turfed out of Nursery for the next 2 months at least while my wife's work still rumbles on.
I think it's safe to say that most people on this forum fall into the category of having 101 unfinished projects and are not struggling to fill and isolarion/lockdown time! Ironically I was having a deep dive study on resolution/tollerance/accuracy before shutting up work and accidentally stumbling on this issue.
Look after yourself and those close!
-
Boardering on dragging my own thread off topic slightly but how is the best way to attempt to test whether the deviations from the perfect z=0 build plane is related to dip (&/or twist) in the x axis compaired to a wonky bed plate?
Piece of 10mm alloy tool plate ground on both sides? I would say steel, but not wanting it to rust! I've heard stainless is a springy pain to machine. Thick glass may work to but not with the inductive sensor.
Edit: Did make an off the cuff purchase of a BLTouch to try contact probing and to address some of the excessive probe offset issues. But like other issues that will not be on the machine amy time soon.
-
@DocTrucker I think you need to know that something is flat, or as close to flat, as possible, before you can suggest the other side is not flat. I'd generally say 4mm+ plate glass on small beds (up to 200x200), or MIC6 aluminium tooling plate for larger beds are 'flat enough'.
You can infer from some bed mesh shapes what is going on, but an offset probe can make this more difficult. Classic example is a vertical Prusa-style X axis on 8mm rod, heavy direct drive extruder with motor mass out the front rather than over the rails, and a probe in front of that. Any twist of the X rods, coupled with the exaggeration of the Z probe in Y, makes the bed look like a banana! But just because the probe sees this, the nozzle doesn't necessarily, and causes issues with the nozzle being too close or far away when printing. Which is a good reason to like nozzle contact probes eg Piezo, kinematic beds/nozzle mounts, Smart Effector or similar. Bed material doesn't matter then, either.
Ian
-
yeah you absolutely need a flat reference, and a surface plate with papers that isn't a photocopy can run a few £.
as Ian suggest float glass or tooling plate might well be flat enough and the most economical choice (unless you stumble across three relatively similar plates you can lap ... i started with some 300x300x30 granite tiles, but thats a project that will be finished in another lifetime i suspect)
-
Yeah, I understand why the rods could cause the bed to dish, the offset loading will twist the rods more when the carriage is in the centre than towards the edges. Hence my adversion to them. Doesn't take much of a touch to rotate the carriage about the x-axis. This is predominantly why it's next on my rework list, and why I sacraficed x axis travel in order to have the extruder-stepper assembly parallel to the x axis rather than perpendicular.
All that said the direct extruder cleaned up enough other issues to tollerate a slighlty wonkey first few layers.
Glass might be the cheapest thing for me to get here in St Helens! I'll make some enquiries. Not of interest for the architectural industry but shame glass doped to increase conduction isn't more common.
-
Not with it today. That won't work with inductive sensor. Tooling plate is the only option really.