Mesh bed compensation issue
-
@kiki0000
It looks like the mesh is not loading at all.
If you delete the heightmap.csv file from the system directory and run G29, will a new heightmap.csv be created afterwards?Your M557 command line isn't symmetrical either.
M557 X30:280 Y64:296 S30:30
For the X-axis it would be a measuring range of 250mm and 8.33 measuring points and for the Y-axis it is 232mm and 7.73 measuring points.First of all, the measuring range could definitely be larger, test where the BLTouch can measure anywhere on the print bed.
Where it is mounted (X0 Y54) there should only be problems on the front side of the print bed... if at all.
To do this, home the printer and use the DWC to see where the BLTouch comes from (not the nozzle).Secondly, 8.33 and 7.73 measuring points do not work, because they always have to be whole numbers, otherwise a part on the right side and at the top of the print bed will simply not be calculated or not scanned with the BLTouch.
I would replace the parameter S30:30 with the parameter P9.
With P9, 9 x 9 measuring points are approached and the distance (in your case 30mm) is calculated automatically.
You enter the whole number and Duet calculates the distance between the measuring points.
That's much more comfortable... You only have to specify how many measuring points you would like to have.
On your heihtmap I see 9x9, hence P9.Always leave a narrow margin around the entire print bed where no measuring points should be.
Example:
The print bed is 310mm x 310mm and you would leave a margin of 10mm then the command line would look like this...
M557 X10:300 Y10:300 P9Advantage:
The measuring range becomes larger and the MBL more precise.
Imagine the MBL was only 50mm x 50mm with a 310mm x 310mm print bed... you get the idea.
As big as possible but not exactly to the edge.I have a 330mm x 330mm print bed and my probe doesn't quite reach the right edge, so my frame is 30mm wide, so X30:300 Y30:300
Google Translate
-- Original Text --Es sieht so aus als würde das mesh gar nicht geladen werden.
Wenn Du die Datei heightmap.csv aus dem System Verzeichnis löschst und G29 ausführst, wird danach eine neue heightmap.csv erstellt ?Deine M557 Befehlszeile ist auch nicht symmetrisch.
M557 X30:280 Y64:296 S30:30
Für die X-Achse wären es ein Messbereich von 250mm und 8,33 Messpunkte und für die Y-Achse sind es 232mm und 7,73 Messpunkte.Erstens könnte der Messbereich bestimmt größer sein, teste dazu mal wo der BLTouch überall auf dem Druckbett messen kann.
Dort wo er montiert ist (X0 Y54) dürften nur Probleme an der vorderen Seite des Druckbettes auftreten... wenn überhaupt.
Dazu mal den Drucker homen und mit dem DWC gucken wo der BLTouch überall hin kommt (nicht die Düse).Zweitens funktionieren 8,33 und 7,73 Messpunkte nicht, denn es müssen immer ganze Zahlen sein, sonst wird an der rechten Seite und oben vom Druckbett einfach ein Teil nicht mit berechnet bzw mit dem BLTouch nicht abgetastet.
Den Parameter S30:30 würde ich durch den Parameter P9 ersetzen.
Bei P9 werden 9 x 9 Messpunkte angefahren und die Distanz (in Deinem Fall 30mm) wird automatisch berechnet.
Du gibst die ganze Zahl vor und Duet berechnet die Distanz zwischen den Messpunkten.
Das ist viel komfortabler... Du musst nur noch angeben wieviel Messpunkte Du gerne hättest.
Auf Deiner heihtmap sehe ich 9x9, daher P9.Lasse immer einen schmalen Rand um das komplette Druckbett frei, wo keine Messpunkte sein sollen.
Beispiel:
Das Druckbett ist 310mm x 310mm und man würde ein Rand von 10mm lassen, dann würde die Befehlszeile wie folgt aussehen...
M557 X10:300 Y10:300 P9Vorteil:
Der Messbereich wird größer und das MBL genauer.
Stelle Dir vor das MBL wäre nur 50mm x 50mm groß bei einem 310mm x 310mm Druckbett... Du verstehst.
So groß wie möglich aber nicht genau bis zur Kante.Ich habe ein 330mm x 330mm Druckbett und meine Sonde kommt nicht ganz an den rechten Rand, daher ist der Rahmen bei mir 30mm breit, also X30:300 Y30:300
-
@norder said in Mesh bed compensation issue:
Not only does it look like the heightmap isn't loaded before printing, it actually is. In your Slicer Start GCode, the S1 parameter is missing from the G29 command.
Complete the G29 command so that it looks like thisAs far as I know G29 means the same like G29 S0 which is doing the probing before the print and afterwards applying it. Isn't it?
I will give it an other go now but I have already tried this before. Lets see.
Thanks for this hint. -
@kiki0000 said in Mesh bed compensation issue:
@norder said in Mesh bed compensation issue:
Not only does it look like the heightmap isn't loaded before printing, it actually is. In your Slicer Start GCode, the S1 parameter is missing from the G29 command.
Complete the G29 command so that it looks like thisAs far as I know G29 means the same like G29 S0 which is doing the probing before the print and afterwards applying it. Isn't it?
I will give it an other go now but I have already tried this before. Lets see.
Thanks for this hint.I immediately deleted the comment.
I made a mistake there, sorry.
Your startup GCode is OK.Comment has been changed.
Actually, you couldn't have read the text at all, because I deleted it again only 10 seconds after posting it. -
I just noticed one thing...
You first heat up the print bed with the Slicer GCode, so you start the print... the print bed is heated up... the print bed is leveled... an MBL is created... the nozzle heats up and the print starts.
Right ?Maybe it's going too fast so that the print bed doesn't have enough time to warm up evenly everywhere?
Printing begins and only then has the entire printing plate reached its temperature.
So it expands a bit between the MBL and the start of printing and the mesh is no longer accurate.So heat up the bed beforehand and wait a bit until you start printing and check if the first layer still looks like it does now.
Google Translate
-- Original Text --Eines ist mir gerade aufgefallen...
Du heizt das Druckbett erst mit der Slicer GCode an, also Du startest den Druck... das Druckbett wird aufgeheizt... das Druckbett wird gelevelt... ein MBL wird erstellt... die Düse heizt auf und der Druck beginnt.
Richtig ?Eventuell geht das zu schnell so dass das Druckbett zu wenig Zeit hat um überall gleichmäßig warm zu werden ?
Der Druck beginnt und erst dann hat die komplette Druckplatte erst ihre Temperatur bekommen.
Sie dehnt sich also zwischen dem MBL und dem Druckbeginn noch etwas aus und somit ist das mesh nicht mehr genau.Also heize das Bett vorher auf und warte etwas bis Du den Druck startest und prüfe ob der erste Layer dann immer noch so aussieht wie jetzt.
-
@norder said in Mesh bed compensation issue:
@kiki0000
It looks like the mesh is not loading at all.
If you delete the heightmap.csv file from the system directory and run G29, will a new heightmap.csv be created afterwardsYes, if I delete the heightmap and run G29 afterwards, it is recreated automatically.
@norder said in Mesh bed compensation issue:
First of all, the measuring range could definitely be larger, test where the BLTouch can measure anywhere on the print bed.
I have redefined now the mesh to make it close to as big as the bed. As you also mentioned the only part what I cannot reach is the front side of the bed. Furthermore I use now P9.
But I assume this should not effect printing if the part is anyway within the meshed area, right?@norder said in Mesh bed compensation issue:
Actually, you couldn't have read the text at all, because I deleted it again only 10 seconds after posting it.
Haha, I am quick
@norder said in Mesh bed compensation issue:
You first heat up the print bed with the Slicer GCode, so you start the print... the print bed is heated up... the print bed is leveled... an MBL is created... the nozzle heats up and the print starts.
Right ?No, basically as soon as I turn on the printer I heat up the bed and leave it soak for at least 5 minutes before I start the print or even do the auto bed leveling and/or mesh bed leveling.
@norder said in Mesh bed compensation issue:
To do this, home the printer and use the DWC to see where the BLTouch comes from (not the nozzle).
You confused me now a little bit with this. Shall I put in the mesh the coordinates where the nozzle would be or where the Bl touch is?
This is the new mesh area:M557 X10:300 Y-20:300 P9 ; define mesh grid
This is what I have got with the redifined mesh. It is weird to me. The nozzle can go in Y direction to -20 so basically the minimum mesh point could be 34. But it starts at 60.
-
@kiki0000 said in Mesh bed compensation issue:
Can you confirm that the probe is in line with the nozzle in X and 54mm in front of it?
Yes, the probe is in line with the nozzle in X direction but it is behind the nozzle not in front of it. This is why it is defined as "Y54". Is this correct?
Yes, sorry, you are correct.
I suspect that your probe trigger height may be varying depending on the XY position. Perhaps due to tilt on the X axis, or skew in the Y rails. Those are the common reasons anyway.
To test this, please check the trigger height at various locations on the bed and see if they are consistent.
Home the printer G90 Move to different XY positions with G1 X Y Move nozzle to touch the bed G92 Z0 G1 Z5 G30 S-1 repeat at another location
-
@kiki0000 said in Mesh bed compensation issue:
To do this, home the printer and use the DWC to see where the BLTouch comes from (not the nozzle).
You confused me now a little bit with this.
I mean that after homing in the DWC you should move the machine movements over the print bed to check how far you can move the BLTouch in X and Y.
With the command M564 S0 you can switch off the axis limitation and then approach the actual limits in small steps (1mm).So homing... Move the printhead all the way -Y until the printer stops itself... Run M564 S0... Move to the actual limit in 1mm steps (be very careful!)... When the limit is reached, make a note of it displayed coordinate...back up 10mm and do M564 S1 and rehome to be safe.
This is what I have got with the redifined mesh. It is weird to me. The nozzle can go in Y direction to -20 so basically the minimum mesh point could be 34. But it starts at 60.
To do this, correct the axis limits in config.g.
There you have Y10 at minimum, so the MBL is also cut off at 60 below.
For maximum I would enter X310 Y310.; Axis Limits M208 X-15 Y10 Z0 S1 ; set axis minima M208 X320 Y320 Z300 S0 ; set axis maxima
Google Translate
-- Original Text --To do this, home the printer and use the DWC to see where the BLTouch comes from (not the nozzle).
You confused me now a little bit with this.
Ich meinte damit dass Du nach dem Homing im DWC mit den Maschienenbewegungen das Druckbett abfahren solltest um zu kontrollieren wie weit Du den BLTouch in X und Y bewegen kannst.
Mit dem Befehl M564 S0 kannst Du die Achsenbegrenzung ausschalten und kannst Dich dann in kleinen Schritten (1mm) an die tatsächlichen Grenzen rantasten.Also Homing... Druckkopf ganz -Y fahren bis der Drucker selber stoppt... M564 S0 ausführen... in 1mm Schritten an die tatsächliche Grenze fahren (Sehr vorsichtig sein !)... Wenn die Grenze erreicht ist, notiere Dir die angezeigte Koordinate... 10mm zurück fahren und M564 S1 ausführen und zur Sicherheit neu homen.
This is what I have got with the redifined mesh. It is weird to me. The nozzle can go in Y direction to -20 so basically the minimum mesh point could be 34. But it starts at 60.
Dazu korrigiere die Axis Limits in der config.g.
Dort steht bei Dir Y10 bei Minimum, daher ist das MBL unten auch bei 60 abgeschnitten.
Bei Maximum würde ich X310 Y310 eintragen.; Axis Limits M208 X-15 Y10 Z0 S1 ; set axis minima M208 X320 Y320 Z300 S0 ; set axis maxima
-
@kiki0000 said in Mesh bed compensation issue:
Haha, I am quick
No, I'm too slow.
Or too quick to post.
It will be, because I correct my comments very often.
I should give myself more time.
At least avoid embarrassing comments -
@norder said in Mesh bed compensation issue:
To do this, correct the axis limits in config.g.
The axis limits refer to the nozzle and not to the BLTouch.
The offset (X0 Y54) of the BLTouch is automatically calculated for commands such as G29 that affect the BLTouch.
-
@phaedrux said in Mesh bed compensation issue:
I suspect that your probe trigger height may be varying depending on the XY position. Perhaps due to tilt on the X axis, or skew in the Y rails. Those are the common reasons anyway.
To test this, please check the trigger height at various locations on the bed and see if they are consistentYes, I can definitely see 0,04-0,05mm deviation on certain points. And this is roughly the deviation I have in the layer height too.
Quickly I have replaced the 2020 extrusion but it did not help. Tomorrow I try to do some changes on the Y rails.
Do you have any idea how could I check if this is the issue? -
@norder said in Mesh bed compensation issue:
To do this, correct the axis limits in config.g.
There you have Y10 at minimum, so the MBL is also cut off at 60 below.
For maximum I would enter X310 Y310.Thanks for the explanation. Then my understanding was correct. I have made this few cahnges and now I ahve a mesh from the complete bed except teh first ca 30mm.
But I assume this wasn't my issue because within the mesh it should still work fine but it does not.
According to the recommendation of @Phaedrux I have checked the trigger height at a few points and it looks like I have a small deviation checking it on a few points. It looks like I have some skew in the rails but I do not really understand how. This printer is a BLV MGN Cube with the metal conversion which is aligning itself all the alu extrusions. The MGN rails are original Hiwin. I have no idea what could go wrong and how to chcek what is wrong.... -
@kiki0000 said in Mesh bed compensation issue:
Do you have any idea how could I check if this is the issue?
Did you map out where the deviations occur? This can give an idea what the issue may be.
X axis tilt is harder to correct due to the torque forces of the extruder and would need to be corrected mechanically, or the BLtouch would need to be moved to the Y0 position to the side of the nozzle instead so that the tilt doesn't have the same impact.
If the issue is skew in the rails you'd have to do some squareness checking and adjustments.
-
Another way to verify if it's tilt or skew is to set the probe type to manual (M558 P0) and then use the same trigger height check at various positions. Manual probe mode prompts you to jog the Z axis down.
-
@phaedrux said in Mesh bed compensation issue:
Another way to verify if it's tilt or skew is to set the probe type to manual (M558 P0) and then use the same trigger height check at various positions. Manual probe mode prompts you to jog the Z axis down.
Thank you for the lots of support. I will give this a go tomorrow. I am way too tired already because of this. It was enough for today
-
@kiki0000 said in Mesh bed compensation issue:
But I assume this wasn't my issue
No, that's what I thought too after the last heightmap.
But you couldn't leave the heightmap like this with this large free area.
However, it could have alleviated the problem, since the measuring points and the geometry were completely out of sync.Let's assume that the linear rail of the X-axis is twisted.
Then one way to find out would be to dismantle the rail and turn it 180° to reinstall it.If the error in the test print (as can be seen in the photo) is also twisted (or the trip height values), then the culprit has been found.
If the HiWin rails are all the same length, you could then exchange the X rail for one of the Y or Z axis.
You should think twice about moving the BLTouch. Then you would also have a more stable mount, these inserts as spacers do not look very confidence-inspiring.
P.S.:
If the linear rail is twisted evenly over its entire length, then of course there is no point in turning it over, but I believe that this error occurs more in the left half when I look at the test print.Google Translate
-- Original Text --But I assume this wasn't my issue
Nein, das habe ich mir nach der letzten heightmap auch gedacht.
Aber so konnte man die heightmap ja nicht lassen mit diesen großen freien Bereich.
Es hätte das Problem aber mindern können, da die Messpunkte und die Geometrie komplett aus dem Lot waren.Gehen wir mal davon aus, die Linearschiene der X-Achse wäre in sich verdreht.
Dann wäre eine Möglichkeit dieses herauszufinden, die Schiene zu demontieren und um 180° gedreht, wieder einzubauen.Ist jetzt der Fehler bei dem Testdruck (wie auf dem Foto zu sehen) auch verdreht (oder die Werte der Auslösehöhe), dann ist der Übeltäter gefunden.
Wenn die HiWin Schienen alle gleich lang sind, könntest Du die X Schiene dann gegen eine der Y oder Z Achse austauschen.
Du solltest Dir das mit dem Umsetzen des BLTouch überlegen. Dann hättest Du auch eine stabilere Halterung, diese Inserts als Abstandhalter sehen nicht sehr Vertrauenserweckend aus.
P.S.:
Wenn die Linearschiene auf ihrer gesamten Länge gleichmäßig gedrillt ist, dann hat das umdrehen natürlich keinen Sinn, aber ich glaube das dieser Fehler mehr in der linken Hälfte auftritt, wenn ich mir den Testdruck ansehe. -
@norder said in Mesh bed compensation issue:
Let's assume that the linear rail of the X-axis is twisted.
Then one way to find out would be to dismantle the rail and turn it 180° to reinstall it.So the X rail is flipped over. It looks slightly different now but it is weird that now it looks like the front left is the slightly higher point and not the rear left corner. I would have expected now that this moves to the front right corner. Although due to the reason that I have the 3 axis bed leveling and I have 2 Z axis on the right this could compensate for it and maybe this is why it is now showing up on the fron left.
But to be honest the end result is the same. Still during printing the left side is closer to the bed. Shall I go to mess with the Y extrusions (although this su*ks because lots of bolted on componenets here )?
@norder said in Mesh bed compensation issue:
You should think twice about moving the BLTouch. Then you would also have a more stable mount, these inserts as spacers do not look very confidence-inspiring.
I think I should do this but the problem is that my head is really wide already so I would loose a hell amount of width on the print bed. But maybe just to try it works it would worth a try...
-
@kiki0000
The fact that the lower corner is now red is really strange, I would have expected the upper right corner instead.
But it can be due to the leveling of the 3 Z-axes.
The BLTouch has a certain repeat accuracy, I think it's 0.05mm according to the factory specification!?Getting the BLTouch as close as possible to Y0 with the nozzle is probably the best solution in your case, as @Phaedrux already explained.
On the heightmap, however, you can see less than half of the problem because it is distorted by the real unevenness of the printing surface.
If you had a really absolutely smooth surface, then you could only see the error in your X-axis in the heightmap.I made a quick sketch to make it clearer.
You have determined the Z offset of the BLTouch at a point on the print bed, i.e. the distance between the nozzle tip and the trigger point of the probe (green line).
Now the printhead moves to a point where the entire printhead tilts backwards or forwards (red line sketch).
Unfortunately, you mounted the BLTouch in a place that amplifies the usually small problem and even affects the pressure.
Because the determined Z offset of the BLTouch to the nozzle tip changes with the movement in the X direction.The error pattern that would show up in the heighmap with an absolutely smooth print surface is about half of the error that would show up in print.
Because the axis of rotation (twisted X linear rail) is exactly between the nozzle and the BLTouch.
Please correct me if I'm wrong here.Assuming the problem really is the twisted X rail.
Since we don't have the printer in our own hands, remote troubleshooting is always difficult.
If it were standing here on the table, I would measure some parts to look for the error.
But that should be clear to everyone anyway.
It's annoying when someone completely disassembles their printer out of desperation and in the end it turns out that only one screw was loose.Your heihgtmap still starts at Y60.
Google Translate
-- Original Text --Das die untere Ecke jetzt Rot wird ist wirklich komisch, ich hätte eher mit der rechten oberen Ecke gerechnet.
Es kann aber an der Nivelierung der 3 Z-Achsen liegen.
Der BLTouch hat ja eine gewisse Wiederholgenauigkeit, ich glaube es sind 0,05mm laut Werksangabe !?Den BLTouch so weit wie möglich auf Y0 mit der Düse zu bringen, ist in Deinem Fall wohl die beste Lösung, so wie @Phaedrux es bereits erklärt hat.
Auf der heightmap sieht man aber weniger als die Hälfte des Problems denn es wird durch die wahren Unebenheiten der Druckoberfläche verfälscht.
Hätte man eine wirklich absolut glatte Oberfläche, dann könnte man erst den Fehler Deiner X-Achse in der heightmap erkennen.Ich habe auf die schnelle mal eine Skizze gemacht um es zu verdeutlichen.
(Skizze siehe oben)Du hast auf einem Punkt auf dem Druckbett das Z-Offset des BLTouch ermittelt, also der Abstand zwischen Düsenspitze und Auslösepunkt der Sonde (Grüne Linie).
Jetzt bewegt sich der Druckkopf an einen Punkt wo der gesamte Druckkopf sich nach hinten oder vorne neigt (Skizze mit der roten Linie).
Nur hast Du den BLTouch leider an einer Stelle montiert, die das normalerweise kleine Problem verstärkt und sich sogar auf den Druck auswirkt.
Denn der Ermittelte Z-Offset des BLTouch zur Düsenspitze ändert sich mit der Bewegung in X Richtung.Das Fehlerbild welches sich bei einer absolut glatten Druckoberfläche in der heihgtmap zeigen würde ist in etwa die Hälfte des Fehlers welches sich im Druck zeigen würde.
Weil die Drehachse (verdrehte X Linearschiene) sich genau zwischen Düse und BLTouch liegt.
Man möge mich berichtigen wenn ich mich hier irren sollte.Vorausgesetzt das Problem ist wirklich die verdrehte X Schiene.
Da wir den Drucker selber nicht in den Händen habe, ist eine Fehlersuche aus der Ferne immer schwierig.
Stünde er hier auf dem Tisch, würde ich einige Teile vermessen um den Fehler zu suchen.
Aber dass sollte eh jedem klar sein.
Ärgerlich wenn jemand aus Verzweiflung seinen Drucker komplett zerlegt und am Ende stellt sich heraus es war nur eine Schraube locker.Deine heihgtmap fängt ja immer noch bei Y60 an.
-
@norder said in Mesh bed compensation issue:
Getting the BLTouch as close as possible to Y0 with the nozzle is probably the best solution in your case, as @Phaedrux already explained.
I have done this now and put the BL touch on the left in line with the X axis and the result is amazing. I have lost now ca 40mm on the right side of the bed but I do not care. There were really something with the X rail.
Look at the first layer now with just some random 0,2mm thick 50x50mm rectangles.
Furthermore my bed is also pretty damn flat. There is something on the rear left corner and some deeper points. At first I though those blue deeper points are because of the magnets but I have put 2 of the rectangles on the exact point and they are also perfect.
Thank you for your support! I am really happy now. Lost ca 4-5 evenings with this issue
-
@kiki0000 said in Mesh bed compensation issue:
I have lost now ca 40mm on the right side of the bed but I do not care.
You have to die a death.
Great that the problem is over, the layers look great.Besides, my bed is damn flat too.
Yes, that's right.
That a corner goes up a bit isn't bad, it's compensated by the MBL.
IIt's probably from bending the pressure plate to loosen the pressure parts.
I have the same printing plate and bent it too much once, after which there was such tension in it that it bent once with a bang from the heat of the pressure bed.
I had to get this tension out again by bending in the opposite direction and for a while I attached additional clamps to the corners.If I should buy a spring steel plate again, it will only be bent very slightly.
But my main pressure plate is an FR4 with a magnetic plate glued underneath, which doesn't get any stress from bending.
Google Translate
-- Original Text --Ich habe jetzt ca 40mm auf der rechten Bettseite verloren aber das ist mir egal.
Einen Tod muss man sterben.
Super dass das Problem aus der Welt ist, die Layer sehen super aus.Außerdem ist mein Bett auch verdammt flach.
Ja, das stimmt.
Das eine Ecke etwas hoch geht ist nicht schlimm, es wird ja durch das MBL ausgeglichen.
Vermutlich kommt es vom biegen der Druckplatte um die Druckteile zu lösen.
Ich habe die gleiche Druckplatte und habe sie auch einmal zu stark gebogen, danach war dort so eine Spannung drin, dass sie sich einmal mit einem Knall durch die Hitze des Druckbettes gekrümmt hat.
Ich musste diese Spannung wieder raus bekommen durch entgegengesetztes biegen und habe eine Zeit lang an den Ecken zusätzlich Klammern angebracht.Falls ich mir noch einmal eine Federstahlplatte zulegen sollte, wird diese nur sehr wenig gebogen.
Meine Haupt-Druckplatte ist aber eine FR4 mit untergeklebter Magnetplatte, die bekommt keine Spannungen vom biegen.
-
@norder said in Mesh bed compensation issue:
That a corner goes up a bit isn't bad, it's compensated by the MBL.
Yes, exactly. Furthermore it is really rare that I print really big objects....
@norder said in Mesh bed compensation issue:
IIt's probably from bending the pressure plate to loosen the pressure parts.
Yes, something might have happened with it. It is already 2 years old so no wonder to be honest.
@norder said in Mesh bed compensation issue:
But my main pressure plate is an FR4 with a magnetic plate glued underneath, which doesn't get any stress from bending
I have heard about this PCB material as bed. My only concern is that this is a super good thermal insulator material.
How much higher temp do you have to set to reach the requested temp on the top?
Are these bare FR4 plates without copper I assume? Maybe it would even be better if the bottom layer would be copper coated because this would spread the heat amazingly.
Does this work with most of the materials? (PLA, PETG, ABS)
How high temperatures do you have to set for these?Sorry for the lots of questions