Closed StreakingJerry closed 6 years ago
I tried M420 S1 but still the same. The method I test is bilinear.
This is the record of Repetier
21:53:07.174 : N23 G28*34
21:53:24.678 : X:122.00 Y:32.00 Z:8.14 E:0.00 Count A:30800 B:18000 Z:6512
21:53:30.350 : N24 M420 S1*81
21:53:30.350 : echo:Bed Leveling On
21:53:30.350 : X:122.00 Y:32.00 Z:8.40 E:0.00 Count A:30800 B:18000 Z:6512
21:53:36.416 : N25 G29*37
21:54:00.101 : Bilinear Leveling Grid:
21:54:00.101 : 0 1
21:54:00.101 : 0 +0.113 -0.467
21:54:00.101 : 1 +0.369 -0.278
21:54:00.117 : X:197.00 Y:107.00 Z:8.55 E:0.00 Count A:60800 B:18000 Z:6512
The right side still 1mm higher than the left.
BTW which bugfix version you mean? The current testing one 1.1.8 and I don't find any newer version.
I just test to run g29 first. The right is 1mm higher. Then I manually level it, and run G29 again. and now the bed is prefect level. But after I power off and power on again, run g29. the right is 1mm higher again.
bugfix-1.1.x
has the latest fixes.
You really need to fill in the issue template when reporting problems and also attach your configuration files as requested in the template. It will make it much easier for people to help you.
Please search the issues here, there are so many with the same problem. Some say it´s a mechanical issue, others dont believe that.
Did you save final mesh with M500? May be it use the older mesh after load settings. Also you can try to check actual bed level before run G29 to check the mechanical issues. Home with G28 than G29 S5 to disable mesh than move head to control points with G1 commands to see the actual bed level by distance between bed and nozzle at same Z height value.
All kinds of bed levelings, using a probe, don't try to keep the nozzle at a constant distance to the bed. They keep the probes trigger point at a constant distance to the bed. This works well only, if the distance of the nozzle tip and the probes trigger point are the same all over the bed. If Z_PROBE_OFFSET_FROM_EXTRUDER
isn't constant there is no chance to make bed levelling with auto probing work - you have a mechanical problem not covered by Marlin.
A workaround is to use UBL and to dial in the mesh points manually, maybe with help of G26. An other one, for all kinds of leveling, is to use the nozzle as the probe (PROBE_MANUALLY, ...).
PS There is a theory one could use to compensate for varying Z_PROBE_OFFSET_FROM_EXTRUDER by using 3 not collinear probes distributed around the nozzle. This is expensive, difficult to set up and for sure has an other hole in the theory what would need the next level of compensation. At first we had mechanical bed levelling by adjusting some screws. To avoid mechanical adjusting a probe and 3-point levelling was added. To overcome not consistent probing multi point levelling, was invented. Because of non flat beds (and not linear movement of deltas) mesh leveling was invented, at first for delta printers, than for cartesians. Up to now with every new compensation we discovered new sources for mechanical errors. For now UBL is the latest step forward. It tries to unify all the earlier attempts and tries to add relative simple manual mesh point editing. With this you can bypass all theory and can just look at the print result (G26). The next step could be a compensation for thermal expansions of the system, or different Z_PROBE_OFFSET_FROM_EXTRUDER caused by different temperatures of the probe (Prusa already trys to do that). But this again needs more hardware and adjustment to make it work.
Today leveling works good enough to temptate manufacturers to reduce hardware quality, to make the printers cheaper.
In the end it may be cheaper and faster to invest in a flat bed, good mechanics, adjust the bed with 3 bolts and developing a personal fixed routine sequence in using the printer with z-babystepping during the first layer.
Adding more and more complexity can't be the way to make 3D-printing easier for a non expert user.
I have updated to the newest bugfix-1.1.x and then I have tried to level the bed manually first, then run the G28 and then G29. after that I test the leveling result by G1 and the right side is 1mm higher. After that I tried to lower the right side by 1mm and run g28,g29 and test with g1 again. The right side is still 1mm higher. I have done a couple of test with different bed leveling condition before G28. The result is no matter if bed is level or not before ABL. No matter the right side is higher or lower before ABL. after the ABL the right side will always 1mm higher than left side. Also the probe is fixed on the extruder. Therefore I am pretty sure Z_PROBE_OFFSET_FROM_EXTRUDER is constant. Due to this constant difference so I think this might not be a mechanical issue. The ABL methods I used are 3=point, bilinear and linear, They all give the same result.
Is this a core xy machine?
are you using bltouch?
Yes mine is corexy.
I just use a normal endstop without arm mounted on a servo
Also the probe is fixed on the extruder. Therefore I am pretty sure Z_PROBE_OFFSET_FROM_EXTRUDER is constant.
If you have a twisted X axis this is not true. Because of the twist the Z_PROBE_OFFSET_FROM_EXTRUDER
appears different from the right to the left of the bed. This is a common problem on i3-style machines.
I have tried all three auto leveling methods but none of them works correctly.
#define AUTO_BED_LEVELING_3POINT #define AUTO_BED_LEVELING_LINEAR #define AUTO_BED_LEVELING_BILINEAR
There are currently 5 different bed leveling systems in Marlin.
A workaround is to use UBL and to dial in the mesh points manually, maybe with help of G26. An other one, for all kinds of leveling, is to use the nozzle as the probe (PROBE_MANUALLY, ...).
Yes! Once again Anhardt is out in front. If you are having problems... Go to the basics. What ever the mesh looks like when you probed it... Now do a G26. (Even if you are using Bi-Linear or the original Mesh bed leveling) Print the G26 Mesh Validation Pattern.
Does it look right? If not... Start editing the mesh points up or down.... And re-print the G26 Mesh Validation Pattern. Probably the pattern will look better but not be perfect. Keep doing this 2 or 3 times. Pretty soon... Your mesh will accurately describe the bed (at least as far as the printer sees it).
If you are curious... Re-probe the bed and compare the 'working' mesh with the probed mesh. Probably, you will see a pattern. And that might give you some hints on where to look for the root cause of the problem. But even without doing that, if you have a working mesh, you can just use it and not go after the root cause of the problem. (Me??? I would go after the root cause and fix it!!!)
Therefore I am pretty sure Z_PROBE_OFFSET_FROM_EXTRUDER is constant.
Don't believe in that. Measure it. With 1mm difference from right to left. it should be pretty easy to see the error by naked eye. Just take a look on the nozzle-bed distance on both sides of the bed when the probe triggers and compare. Finding the reason could be a bit more difficult, because the huge (Y_PROBE_OFFSET_FROM_EXTRUDER 63) lever is amplifying the reason.
Due to this constant difference so I think this might not be a mechanical issue.
All this proves is, that it's a systematic error, independent from the kind of bed level compensation. So a error in measurement is as likely as before.
Thanks for your guys help. I have figured out the problem, @Roxy-3D and @AnHardt is right, My x-axis use two axis and I find they are not prefect parallel by a counter weight with a string. Thanks again for all your guys help.
BTW may I ask how can I edit the mesh generated by bilinear method and save the difference between the adjusted mesh and original measured mesh? Therefore I am able to load this bias every time after ABL.
I have figured out the problem, @Roxy-3D and @AnHardt is right, My x-axis use two axis and I find they are not prefect parallel by a counter weight with a string. Thanks again for all your guys help.
Hi! I don't undersend... Have you solved the problem? I have the same problem on H-BOT with BLtouch... And I don`t know what to do....(( (MARLIN 1.1.9)
Bilinear Leveling Grid: 0 1 2 0 +0.265 -0.510 -1.128 1 +0.237 -0.502 -1.195 2 +0.331 -0.425 -1.152
Our "bed leveling"- algorithms try to keep the distance between bed and nozzle constant.
For that we try to find the Z position of the bed at several places with a probe and
assume the distance between the probe and the nozzle is constant.
Now we try to keep the distance probe to bed constant.
If the distance probe nozzle changes, depending on where (XY) we are on the bed, we can keep the probes distance to the bed as exact as we want. The distance nozzle bed will vary.
There are some mechanical problems a printer can have what can cause this error.
We can't find this problem for you because it's not in the software. It's up to you to find the mechanical problem.. One of the most common is a "twisted X-axis".
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.
I have tried all three auto leveling methods but none of them works correctly.
No matter the right side of bed is lower or higher than the left side initially. After auto leveling the right side will always about 1mm lower than the left side. I have tested a lot and I think there should be no problem with my configuration. I guess there should be some problem about compensation rate or something?
Configuration.h
```cpp //#define AUTO_BED_LEVELING_3POINT //#define AUTO_BED_LEVELING_LINEAR #define AUTO_BED_LEVELING_BILINEAR //#define AUTO_BED_LEVELING_UBL //#define MESH_BED_LEVELING /** * Enable detailed logging of G28, G29, M48, etc. * Turn on with the command 'M111 S32'. * NOTE: Requires a lot of PROGMEM! */ #define DEBUG_LEVELING_FEATURE #if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL) // Gradually reduce leveling correction until a set height is reached, // at which point movement will be level to the machine's XY plane. // The height can be set with M420 Z