Mesh bed compensation issue
-
@norder thank you for your support.
I have already tried to slow down the BL touch but did not help.
I have already done repeatability measurements on different points and all the measurements were with a max 0.005mm deviation which is pretty damn good.
Yes, I have a magnetic bed but the BL touch is with the plastic tip.
Furthermore I also tried to put a 4mm thick mirror over it because of this reason but the results are the same.
In addition I tried to define the mesh bed measurement points to be far away from the magnets.
I am quite convinced it is not the BL touch.
Today I even took apart the complete Z assembly, tuned the belt tension to the same in all 3 axes, tightened all the screws...
I am really lost. -
Can you share a screen shot of the height map being displayed?
Can you confirm that the probe is in line with the nozzle in X and 54mm in front of it?
Can you share your homeall and slicer start gcode as well?
-
@kiki0000
It's not the plastic pin of the BLTouch.
The BLTouch has a HAL sensor in the upper area that reacts to magnetic fields.
A tiny magnet is embedded at the upper end of the pin, to which the HAL sensor reacts.How does the problem appear?
Is the first layer too close in places and too far away from the print bed in places, like the print bed is uneven and there is no MBL?
Or is the first layer too close or too far away that a few baby steps can help, as if the Z offset had not been determined correctly?Post the heigtmap with a suitable test print.
I'm thinking of a large area that is 1 layer thick. The layer height of 0.1mm at 100% flow would be the most meaningful.
This way you can get a better picture of your problem and make comparisons between MBL and actual pressure.Google Translate
-- Original Text --Es liegt nicht an der Kunststoff-Pin des BLTouch.
Der BLTouch hat im oberen Bereich einen HAL-Sensor der auf magnetische Felder reagiert.
Am oberen Ende des Pins ist ein winziger Magnet eingelassen auf den der HAL-Sensor reagiert.Wie zeigt sich denn das Problem ?
Ist der erste Layer stellenweise zu nah und stellenweise zu weit weg vom Druckbett entfernt, so als wäre das Druckbett uneben und es gäbe kein MBL ?
Oder ist der erste Layer insgesamt zu nah dran bzw zu weit entfernt das einige Babystepps Abhilfe schaffen, so als wäre der Z-Offset nicht korrekt ermittelt worden ?Poste doch mal die heigtmap mit einem passenden Testdruck dazu.
Ich denke dabei an eine große Fläche die 1 Layer dick ist. Die Layerhöhe von 0,1mm bei 100% Fluss wäre am aussagekräftigsten.
So kann man sich eher ein Bild von Deinem Problem machen und Vergleiche zwischen MBL und tatsächlichem Druck ziehen. -
@kiki0000
I find the X0 and Y54 strange for an offset for a BLTouch.
Is it mounted on the back of the X-rail?Also the measurement points in your bed.g file look weird to me for a 320mm x320mm print bed.
It doesn't look symmetrical.Please show us photos of your printer.
I need to be able to get an idea of it. -
@phaedrux said in Mesh bed compensation issue:
Can you share a screen shot of the height map being displayed?
@phaedrux 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?
@phaedrux said in Mesh bed compensation issue:
Can you share your homeall and slicer start gcode as well?
G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 X-355 Y355 F5000 ; move quickly to X or Y endstop and stop there (first pass) G1 H1 X-355 ; home X axis G1 H1 Y355 ; home Y axis G1 X5 Y-5 F4800 ; go back a few mm G1 H1 X-355 F360 ; move slowly to X axis endstop once more (second pass) G1 H1 Y355 ; then move slowly to Y axis endstop G90 ; absolute positioning G1 X166 Y176 F10000 ; go to first probe point G30 ; home Z by probing the bed
Slicer g code:
M140 S[first_layer_bed_temperature] ; Raise bed temp to profile requested bed temp M190 S[first_layer_bed_temperature] ; Wait for bed temp to rise G32 ; Autocalibrate bed G29 ; M104 S[first_layer_temperature] T0 ; Raise hot-end temp to profile requested hot-end layer 1 temp M109 S[first_layer_temperature] T0 ; Wait for hot-end temp to rise to profile requested hot-end layer 1 temp G92 E0 ; reset extrusion distance
But I have tried with and without G32, with and without homing afterwards etc, nothing worked.
-
@norder said in Mesh bed compensation issue:
t's not the plastic pin of the BLTouch.
The BLTouch has a HAL sensor in the upper area that reacts to magnetic fields.
A tiny magnet is embedded at the upper end of the pin, to which the HAL sensor reacts.
How does the problem appear?Yes, I know how it works but to be honest I did not expect that the magnetic field of the magnet is affecting it from ca 50mm away.
Furthermore I have seen before at a few people that when it is affecting there is all of a sudden like a huge mountain is showing u on the heightmap. mine is quite quite stable, there are only slight gradual variations on the bed if you check my previous answer above.@norder said in Mesh bed compensation issue:
How does the problem appear?
The problem is like it would not correct enough. One side of the bed is perfect and on the other side it is starting to be worse and worse. I would say the error is maybe like max 0,05mm. See picture:
@norder said in Mesh bed compensation issue:
@kiki0000
I find the X0 and Y54 strange for an offset for a BLTouch.
Is it mounted on the back of the X-rail?Yes, the Bl touch is behind the X rail. This is the only position I have free space.
@norder said in Mesh bed compensation issue:
Also the measurement points in your bed.g file look weird to me for a 320mm x320mm print bed.
It doesn't look symmetrical.The bed is 310mm and you are right it wasn't symmetrical until now because of space constrains. Now I rebuilt the Z axis and put them completely symmetric (furthermore updated the config.g, the bed.g and the homing files) but the result/the bed mesh is completely the same.
@norder said in Mesh bed compensation issue:
Please show us photos of your printer.
I need to be able to get an idea of it.A few pictures.
I really appreciate your support.
-
@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