MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.04k stars 19.15k forks source link

UBL levels X perfectly +-0.150m but not the Y axis? Deviates +-0.500mm on the Y #12318

Closed Flight77 closed 5 years ago

Flight77 commented 5 years ago

I really like everything about the UBL system but unfortunately I can not get it to work properly to automatically build the mesh. Have been trying for a long time. I can successfully build a UBL mesh manually and it is awesome rendering a deviation of no more then +-0.150mm on X and Y. But when try to built it automatically the X is great but the Y axis renders deviations of +-0.500mm (Y does much better with the UBL off) Here is what I got: -- I am on Marlin 1.1.8 (Tried 1.1.9 and 1.1.9bugfix where UBL activates successfully but does not move my Z at all, Z compensation is dead, not working at all no matter what I do) -- I have the MKS Gen V1.4 -- I have a very precise analog micrometer (0.01mm resolution) attached to the printer head so I can see in real time the deviation as the head moves across the bed. -- Using BLtouch which is doing very well; repeatability test shows an average deviation of 0.007 -- I have a big bed 600 x 600mm but I have it pretty level for its size as you can see below. -- Bed Topography Report: (I have an inset of 60 that's why it goes from 60 to 540)

(0,4)                           (4,4)
(60,540)                        (540,540)
  0.034    0.052    0.052    0.110    0.099
  0.054    0.077    0.041    0.118    0.148
  0.056    0.039   -0.007    0.077    0.146
 -0.012   -0.056   -0.112   -0.042    0.102
[-0.162]  -0.277   -0.302   -0.221   -0.037
(60,60)                            (540,60)

-- Mechanics of the printer, board and firmware all working well and makes great prints.

Since my BLT probe is very accurate and I have verified that the Topography is correct with my micrometer attached to the printer head, why is the UBL system failing to do the correct algorithms for the Y axis when build with the auto mesh generation via BLTouch? It does it correctly for X but not Y?

Maybe someone can help me fix the Y axis problem on 1.1.8 or Maybe 1.1.9 has no issues with UBL Y axis so someone can help me make 1.1.9 UBL work?

I really appreciate if anyone can help, thanks

Perhaps Roxy-3D can help me?

@Roxy-3D

Roxy-3D commented 5 years ago

We have seen a lot of problems with 'twisted gantry' machines. Suppose your X-Carraige beam had a small twist in it. Also suppose the Z-Probe has an Y-Axis offset from the extruder nozzle.

As the nozzle (and probe) move from one side of the X-Axis to the other side the probe will raise or lower a little bit. This causes an 'imperfection in the measured point'. And that is why I wanted to verify the BL-Touch probe pin had the same height from the bed in all four corners (when the nozzle is just touching the bed). If the numbers had been off from each other... That would be good evidence we are dealing with a 'twisted gantry'.

gloomyandy commented 5 years ago

Out of interest how do you measure the distance from the bed to the bl touch pin with a good degree of accuracy? I'd like to try that myself.

gloomyandy commented 5 years ago

Oh and did you also measure the distance shown by the micrometer at each corner with the nozzle on a sheet of paper? That might provide some useful input.

Roxy-3D commented 5 years ago

For me.... I've done it with a pair of coins. The BL-Touch probes only have a small amount of clearance. So, you get a lot of flexibility with just a few coins. A couple of dimes, a couple of pennies, A nickle, a quarter.... (Two nickles is almost always too much!!!)

With the 'right' two coins you are going to be able to just barely slide them under the pin. And you can eye ball the gap by shining a light under the far side of it. It certainly is not precise compared to using a dial indicator. But in his Topograph map he had +.4mm to -.38mm. For sure... you would see a difference with those kind of numbers.

AnHardt commented 5 years ago

0.5 mm should be visible. Go to a corner. Put the nozzle on the bed. Don't deploy the BLT, but put a stack of coins on the bed under the tip of the probe, to lessen the distance. Guess the distance. Go to next corner. ...

Flight77 commented 5 years ago

I just tried building the mesh with my new BLtouch 2.0 and the topography report is the SAME.

I am going to try one more thing, change the BLT delay to something high like 500

define BLTOUCH // Stratus Tune

if ENABLED(BLTOUCH)

define BLTOUCH_DELAY 500

If this does not work I can't think of anything else.

Roxy-3D commented 5 years ago

If this does not work I can't think of anything else.

Also... A G26 Mesh Validation Pattern using the probed mesh would be very telling. That would show imperfections in the measured points.

G26 will show you what the nozzle sees... It is worth seeing if the pattern is uniform across the bed.

Flight77 commented 5 years ago

That is actually printing a pattern correct? I don't need to print something to see the level is off......because it is way too off. It is off visually, it is off using a thin paper method, it is off on the micrometer. I need to fix it and get it as level as possible and then try a print.

Look again at the Topography Report, this one is with the new BLTouch 2.0 Bed Topography Report:

        0       1       2       3       4
 4 | +0.217  +0.271  +0.304  +0.374  +0.413
   |
 3 | +0.136  +0.172  +0.183  +0.277  +0.332
   |
 2 | +0.012  +0.016 [-0.009] +0.107  +0.203
   |
 1 | -0.108  -0.171  -0.210  -0.114  +0.025
   |
 0 | -0.358  -0.484  -0.512  -0.428  -0.198
        0       1       2       3       4

Focus at the center top value +0.304 (center, back of bed) and then look the bottom center -0.512 (center, front of the bed) Running my Y axis from back to front of the bed UBL will change the z to create a deviation of over 800mm. My bed is not off by nearly that value, with UBL off I can run Y up and down all day long and it is getting a maximum deviation of about 0.200mm total. The killer that really shows the error is that -0.512. With UBL on this -0.512 will drive my nozzle into my bed. It does, I tried it...I did not let it hit though, and I expect it too, it makes sense. What is causing the problem may be complex and I do not know the answer but the errors the problem is generating is obvious, it makes sense, it is math and the numbers do add up, literally.

I just tried #define BLTOUCH_DELAY 500 and also 50, makes no difference same results.

I am not crazy, it is really creating the wrong mesh for my current nozzle to bed relationship. I am out of answers, if anyone can think of anything else please let me know.

Flight77 commented 5 years ago

Here is another confirmation my automatic probing is just not working right for some reason. Here is a mesh I created manually with "Manually Build Mesh" via the LCD and adjusting the points per my micrometer. This is what was built manually and this is what is should look like.

   0       1       2       3       4
 4 | -0.210  -0.140  -0.070  -0.010  -0.080
   |
 3 | -0.160  -0.100  -0.000  +0.040  -0.000
   |
 2 | -0.020  -0.010 [+0.050] +0.130  +0.140
   |
 1 | +0.070  -0.000  +0.080  +0.180  +0.280
   |
 0 | -0.000  -0.110  -0.050  +0.070  +0.300
        0       1       2       3       4

What a huge difference from this one bellow created by auto probing with BLT, look at the numbers.

 0       1       2       3       4
 4 | +0.199  +0.271  +0.309  +0.398  +0.418
   |
 3 | +0.119  +0.190  +0.205  +0.303  +0.335
   |
 2 | +0.013  +0.034 [+0.003] +0.125  +0.205
   |
 1 | -0.159  -0.167  -0.204  -0.113  +0.039
   |
 0 | -0.397  -0.516  -0.542  -0.433  -0.245
        0       1       2       3       4

But someone may ask, how do you know with such certainty what it should look like?

Well, I just loaded this "manual mesh" up and activated UBL. How sweet it is, I can move all over the bed now in X and Y (staying within my mesh of course) and my max deviation is about +-0.70. It is actually under +-0.100 This was achieved with the micrometer because of how precise it is and doing the probing manually which records the points correctly. For those who don't believe in the micrometer and might claim; maybe it can not be mounted correctly or secured on the carriage, it's too heavy or it might vibrate or has to much play or it is installed to far from the nozzle/probe, here's the proof; Let's check the results of this last manual mesh I created in a different way. Let's remove the micrometer now and check the leveling accuracy the old fashion way, with a piece of paper of about 0.100mm thick. I can move my X or Y in any direction/location on the bed and the paper grabs between the nozzle and bed with about the same resistance anywhere on the bed, and remember I have a huge bed. This proves conclusively, that the BLT probe is not recording the correct points to create a precise usable mesh. Yes, I can level my printer accurately and print great models if I do a mesh by manual probing, but my quest is to do that automatically. I am using 5 x 5 (25) mesh points here for diagnostic purposes, but normally I run with 7 x 7 or 9 x 9 and I really, really, really would prefer to plot 81 points automatically rather than manually.

Roxy-3D commented 5 years ago

I don't need to print something to see the level is off

Yeah... But I know what a G26 pattern is supposed to look like. I know how different imperfection on the print bed and carriage manifest themselves in the pattern.

I'm sorry that it is too much trouble to run a G26 even though it has been asked for several times. I understand it takes 10 minutes to run the pattern. Do you know how many weeks of development time it took to refine the G26 command so it could help people like you?

Flight77 commented 5 years ago

It is not that I don't want to print the pattern, I mentioned previously a few posts ago that if I actually attempt to print with the current mesh pattern that the DL touch produced it is so off that one end of the print the nozzle will be up in the sky about almost half a millimeter off the bed and the other end will drive itself into the bed. The mesh is that off....nothing will print unless I print a small little pattern right in the middle of the bed but that defeats the purpose. Do you still want me to print under those conditions?

Also, as I mentioned on my previous post, the fact that I can built a manual mesh that works so perfectly to level my bed with a +-0.070mm deviation over almost the entire bed to nozzle surface, doesn't this show the physical condition of everything and rules out a possible "imperfection on the print bed and carriage"?

Anyway I know you're trying to help and I really appreciate it and I certainly do appreciate all the effort that was put into this firmware including the G26 Pattern. If you want I will try the pattern I do not know what will come out or if it will print but I will certainly try it.

gloomyandy commented 5 years ago

Out of interest could you try creating the mesh again now that you have the micrometer removed? Do you still get the same readings?

Flight77 commented 5 years ago

Yes I did try to create the mash with the micrometer removed the topography numbers are the same

thinkyhead commented 5 years ago

This proves conclusively, that the BLT probe is not recording the correct points to create a precise usable mesh.

Yeah, probably best to junk the probe if it's not reliable. Try the EZABL probe from TH3D Studios.

InsanityAutomation commented 5 years ago

@thinkyhead I've got the same antclabs bltouch on 10 machines. It's been plenty reliable for a good long time. He's tried a second with the same results so it's either a process issue, mechanical issue, or something we're overlooking.

Flight77 commented 5 years ago

I agree 100% with that statement. The BLT seems extremely reliable as far as recording exactly the same values for the same probe points. And M48 is showing a mean deviation of 0.007 which is absolutely awesome. It is something I overlooked either a mechanical issue or a firmware issue or a combination thereof; something is causing it to record the probe points erroneously.

Flight77 commented 5 years ago

Thinkyhead, I have tried the EZABL type probe, I have several of them, the BLTouch is a lot more reliable as having a much higher resolution than the electromagnetic field based probes. I know they work well though it is a matter of preference.

thinkyhead commented 5 years ago

The bad values that are being recorded in the mesh aren't just from the firmware throwing dice. You must have a mechanical or probe issue of some kind. Marlin simply records the Z position at which the probe triggers. If wires are tugging on the gantry, or the carriage is wobbly, or if the gantry is twisted, or the probe mounting is off-kilter then the probe readings simply aren't going to be trustworthy, regardless of how accurate the probe is or how repeatable a probe at a single point may be.

We really do not relish doing end-user support in this issue queue (as noted on this page.) Please instead take advantage of these community resources:

After seeking help from the community, if the consensus points indisputably to to a bug in Marlin, then at that time you should post a bug report.

Flight77 commented 5 years ago

Thinkyhead Everything mechanically has been checked over and over again, not to mention that the printer is working very well in every other aspect, including the UBL leveling system if the mesh was created probing manually. It does not seem to be a mechanical issue and thanks to the knowledgeable folks that have helped me here, even more so now. Based on all the tests I am not ready to conclude that this is a non-firmware issue. If you guys don't mind please continue try to help me a little longer, if we cannot come with solution within a reasonable amount of time I will close this tread.

Flight77 commented 5 years ago

@Roxy-3d Here is the pic of the results of the G26 pattern done with the mash that was created with the automatic probing. It did not print well at all it started well while it was in the center and then when it started going out farther from the center the nozzle head came a little too high I had to abort and cut short because the filament was just not attaching to the surface is just going everywhere. 20181108_202126

thinkyhead commented 5 years ago

If the problem is with the firmware, then why don't we have a rash of reports from BLTouch users that all their probe readings are messed up? The only conclusion that can be reached is that something about your setup is screwing up the readings from the probe.

I strongly recommend that you take advantage of the community resources that I listed for your benefit. We emphasize in our community guidelines that this Issue Queue is not a support forum, and we really mean it. We are over-qualified to be doing support of this kind, we have a very long development TODO list, and there are only so many hours in the day. Please seek help in a more appropriate forum. I'm sure someone with experience will be able to help you.

Flight77 commented 5 years ago

Ok, I understand. I want to thank everybody that helped me I really appreciate all you guys. Keep up the fantastic work that you are doing and in the future if I have any solid information that I can contribute for the greater good I will, thanks again.

github-actions[bot] commented 3 years ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.