Welcome! Log In Create A New Profile

Advanced

UBL Delta Calibration for Square Printing

Posted by mnester 
UBL Delta Calibration for Square Printing
October 29, 2019 02:55PM
Marlin 1.1.9 UBL Delta Leveling for Accurate Square 3D Printing

Problem: Using Marlin’s UBL for helping with creating a perfect first layer does NOT help overcome the printer’s geometric build inaccuracies which cause severe measurement discrepancies.

Note: This is a given, but you might find that while you may be able to print calibration pieces and they come out accurate (Example below); when you go ahead and print a piece that is as large as your print bed, you will continue to run into accuracy problems (I am talking about stretching/squeezing in a triangular fashion). I guess what the crux of the matter is that UBL might give you a false sense of security because it can force the printer to print no matter what.

Example: You check your towers to be at right angles to the print bed within less than 1mm. You run G29 P1 to establish your mesh bed. The mesh bed looks like it is tilted according to the numbers in the array when you check G29 T. However, you might think, “what does it matter,” UBL is compensating for that and everything is fine. So you continue to print a calibration piece to establish X/Y/Z accuracy. (My calibration piece is 3 intersecting rectangles that are 150mm x 4mm.They are in line with each tower. They are offset more towards the towers.) The nice thing about UBL in this case is that you can go ahead and mess with your Steps/mm for every tower and then run G29 P1 and not have to worry about anything else. This allows for a quicker Steps/mm calibration (don’t get me wrong though, this process still takes a long time). You keep reprinting the calibration piece until you are very close (in my case within .5mm). So you think great, UBL is compensating for the bed leveling and I have just established corrections to the steps/mm for each tower to print correctly, I am done here. But then you get a huge surprise when you print a large square or rectangle that reaches to the edges of your print bed to find out that the print is not square. One end of the square will measure (in my case) .060” off the other side (and I talking measuring the Y distance at the maximum X and at minimum X). What is more frustrating though is that when you had Marlin 1.1.8, the bed leveling which adjusted end stops, radius, and tower angles never solved this issue either which completely threw me off track. This just goes to show that bed leveling is completely blind to X/Y and probably Z measurement accuracy. With all that said, UBL is probably the best tool to also solve the problem above. But to do so, you have to follow several manual steps and use your best judgement, when UBL or Bilinear/Trilinear bed leveling can’t.

Here is a process that I have developed to help eliminate triangular stretching/squeezing of your printed objects:

1. Best place to start is to look over the mechanics of the printer.

a. Tighten your (GT2) belts. I would even recommend getting a force gauge or deflection gauge to ensure that the tightness is very close amongst all 3 towers.

b. Have an L square ruler and check that each tower is at a 90 degree angle to the print bed or at least very close. If it is not perfect, make sure you spread the error evenly amongst all 3 towers by adjusting the bed.

c. Also check that the towers are at right angles to the joiners of the structure. That may be tricky and I would just simply recommend to build the base and top very carefully in the first place. Make sure that the joiners are equal length in the first place and then when you fasten them to the corners, ensure that the corner and joiner lines up as perfectly as you can.

2. Make sure that you have Marlin 1.1.9. with UBL enabled and a probe sensor. Else this will probably take you months to do this iteratively. I’m not even going to go into doing this completely manually. You will also need a program like Pronterface to see the mesh once it is constructed by your printer and to input commands very easily.

3. Run your first mesh using G29 P1. You will likely see that the figures you get are not even close to each other. Each tower position will be off from each other and all the areas opposite of the towers will not be close to the tower offset.

4. So knowing that physically, your bed is level with the towers, you can establish that something else must be off.

5. First place to start are the tower end stops. Either using firmware offsets (be careful, they are in steps, not in mm) or manually adjusting your end stops, ensure that the point closest to the towers is close to equal to all the other towers. Adjust, then G29 P1, then G29 T, look at the difference and then do it again until you are close. Hopefully less than .1mm.

6. Now that you have those values close to one another, evaluate whether those values are close at all to the center point. If not, then the horizontal radius needs to be adjusted until it is. Once again, you’ll have to adjust, test and re-test. However, this is where UBL makes this process so much easier because your mesh is your map and it is easy to read.

7. So now you have your center point offset very close to the tower offsets. But you might notice that the spaces in between the towers are quite different than those points. There might be more offset between Z and X towers than Y and Z towers for example. This is where adjusting the tower angles comes in. In the case described, you will go positive on the angle of the Z tower to compensate. Once again, this will be trial an error. The goal is to have the values on the mesh array very close to each other all around.

8. Afterwards do G29 P3 so that Marlin can expand the mesh one point outward and guess the figures. This is great when you are printing using the whole bed because otherwise if you go beyond the measured mesh, the printer will go back to zero offset, causing your print head to hit the print bed or go up too much.

9. After this is done, you save your work with G29 S0 (could be 0 through 7). Then you figure out your Z offset (M851) by homing your print head to the top (I don’t use G28 because it might sometimes reset the mesh or at least unload it). Using pronterface controls, scroll the print head to the print bed, leaving only a gap of .1mm. Sometimes that may be an issue if you need to go negative on your Z axis, in which case M211 S0 will allow you to go negative. Take a look at your printer display and take note of the Z position. If it is not 0, then use command M851 Z x.x (X being your value and it could be positive or negative). Then do M500 to save.

10. You can now start printing your calibration piece. But first you have to load the mesh using G29 L0. My calibration piece asks to draw a straight line from each tower, then through the center 150mm. Once that is done, you take your measurements and see where you are at. Then you start adjusting the Steps/mm for each tower. I would not do this mathematically because things don’t scale when there are 3 towers involved. Adjustment to one tower will slightly adjust the other 2.

11. Once you figured out your new steps/mm values, you will need to setup a new mesh again and save it and print another calibration piece until your lengths for each tower are within ~.5mm. Once you got the steps/mm figured out to print equal size rectangles for each tower, you will have to now look at the mesh again and see where adjustments are needed to make the plane flat and equal again on the whole print bed.

a. If the mesh points nearest to the tower are off, then it is the end stops that need adjustment again.

b. If the mesh points between the tower and center are off, then it is the radius.

c. If the mesh points between the towers are off, then you need to adjust the tower angles until they are all pretty much even.

12. Now once again print a calibration piece and see where you are at. Eventually you should be on point and then you will be able to print squarely.

Note: Now this may seem like pieces of information from doing calibrations manually years ago and they are but the UBL mesh bed makes your precision so much better that you can make your printer have just about perfect precision. Also, I would like to emphasize that in Marlin 1.1.8., the auto bed leveling feature would adjust all the tower end stops, horizontal radius, and tower angles, but it would only do so to print flatly on the print bed. And so I would probably not recommend going to 1.1.8. or using bilinear/trilinear bed leveling and then using those values for what I have just described. The goal of those routines is reaching the print bed across the whole X and Y plane, and not printing with precision. When I was using trilinear I believe, my parts were off .060” or more from one end to the other. I don’t really understand why it would do that but I guess it would just optimize the print head movement to take place on an angle or something. Hope this helps someone because I have not seen this type of information addressing this specific issue with delta printers. Took me a few weeks of trial and error. The only online info you will find is to adjust scaling in your slicer when things are too big or small. Nothing about triangular stretch or squeeze. Good luck.

-Michael N
Re: UBL Delta Calibration for Square Printing
November 13, 2019 07:57AM
How do you go about adjusting step 6?
Re: UBL Delta Calibration for Square Printing
November 13, 2019 08:09AM
Quote
majorkuso
How do you go about adjusting step 6?

The horizontal radius setting is in the prepare - auto calibration - settings menu
Re: UBL Delta Calibration for Square Printing
November 13, 2019 05:13PM
Thanks I am trying to get my k280 tuned is there a good guide on this process if the outer edges are too far how do you adjust?
Re: UBL Delta Calibration for Square Printing
November 14, 2019 01:25AM
Please explain what do you mean by too far. Are you talking about UBL mesh results?
Re: UBL Delta Calibration for Square Printing
November 14, 2019 12:56PM
correct, for instance here is my G29 T, how do I read this?

Bed Topography Report:
( -124,124) (124,124)
0 1 2 3 4 5 6 7 8 9
9 | . . . . +0.314 +0.549 . . . .
|
8 | . . -0.073 +0.125 +0.385 +0.675 +0.962 +1.232 . .
|
7 | . -0.088 +0.077 +0.325 +0.563 +0.865 +1.233 +1.506 +1.842 .
|
6 | . -0.089 +0.237 +0.485 +0.786 +1.093 +1.442 +1.783 +2.078 .
|
5 | -0.035 +0.077 +0.362 +0.608 +0.973 +1.303 +1.653 +2.009 +2.363 +2.754
|
4 | . +0.286 +0.517 +0.783 [+1.184] +1.541 +1.854 +2.210 +2.541 .
|
3 | . +0.407 +0.648 +0.962 +1.322 +1.701 +1.990 +2.333 +2.742 .
|
2 | . . +0.703 +0.998 +1.440 +1.869 +2.164 +2.518 . .
|
1 | . . . . +1.562 +1.954 . . . .
|
0 | . . . . . . . . . .
0 1 2 3 4 5 6 7 8 9
( -124, -124) (124, -124)
Re: UBL Delta Calibration for Square Printing
November 15, 2019 01:20AM
You need to go to step 5 and get your spacing near the towers close to equal and then proceed from there. You're completely off right now.

The idea is that by the time you are done with my procedure, your g29 t values are very close to each other. This means that the print head is traveling without any corrections, correctly across its plane. This results in proper kinematics.

Edited 1 time(s). Last edit at 11/15/2019 01:28AM by mnester.
Re: UBL Delta Calibration for Square Printing
November 15, 2019 04:27AM
Shouldn't this topic be in the Delta forum?


http://www.marinusdebeer.nl/
Re: UBL Delta Calibration for Square Printing
November 15, 2019 08:18AM
Dont know. The main idea behind this is utilizing Marlin's UBL for proper calibration
Re: UBL Delta Calibration for Square Printing
November 26, 2019 08:11AM
Quote
Ohmarinus
Shouldn't this topic be in the Delta forum?

Maybe you should go ahead and move it to the delta forum after all.

Thanks
Re: UBL Delta Calibration for Square Printing
November 26, 2019 08:28AM
Quote
mnester
Quote
Ohmarinus
Shouldn't this topic be in the Delta forum?

Maybe you should go ahead and move it to the delta forum after all.

Thanks

No problem! I think it's a very valuable topic and it does it justice to be in the right place smiling smiley


http://www.marinusdebeer.nl/
LVD
Re: UBL Delta Calibration for Square Printing
November 26, 2019 11:13AM
Iterate x number of times through points 3 to 8 or simply issue a G33 command and done.
Re: UBL Delta Calibration for Square Printing
November 26, 2019 03:33PM
Quote
LVD
Iterate x number of times through points 3 to 8 or simply issue a G33 command and done.

I agree about the functionality of G33, it's all I have ever needed. It works so well and is incredibly useful. However, my current setup has an inconsistency and I do not know how to fix this. Even though all sizes of my arms etc are the same, mounted square, and the effector is straight and the distance between the arms is parallel, the effector still tilts.

When I finally receive my new arms I'm moving away from magnetic balls again and will redesign the effector again without an inductive sensor and just do the leveling manually. It really isn't needed and the sensor only adds weight and wire strain to my effector.


http://www.marinusdebeer.nl/
Re: UBL Delta Calibration for Square Printing
November 26, 2019 05:50PM
Quote
Ohmarinus
However, my current setup has an inconsistency and I do not know how to fix this. Even though all sizes of my arms etc are the same, mounted square, and the effector is straight and the distance between the arms is parallel, the effector still tilts.
Your towers may be rotated slightly along their long axe or carriages may be rotated along horizontal axe connecting printer centre with the carriage. These are another sources of effector tilt which you did not mention. Depending on the firmware one can calibrate out errors from:
  • end-stop offsets
  • tower positions
  • tower angles to bed
  • steps per mm
  • diagonal rod length
Common source of errors leading to effector tilt - i.e. imprecise XY dimensions after Z dimension is properly calibrated and bed levelled (without using approximated compensation through a bed mesh):
  • diagonal arms going to the same tower do not have the same length
  • diagonal arm mounting points do not have the same distance on both platform and the corresponding carriage
  • lines connecting diagonal arm mounting points on the platform and the corresponding carriage are not parallel (the typical reason is a slightly rotated tower along its vertical axe or a slightingly rotated carriage along its horizontal axe)
If you can handle a bit of math and wxmaxima then check out this: [github.com]
Re: UBL Delta Calibration for Square Printing
December 09, 2019 09:15AM
Quote
LVD
Iterate x number of times through points 3 to 8 or simply issue a G33 command and done.

The whole reason I have written this is because G33 does not do what I am trying to accomplish, which is to print accurately in every dimension. If you read the tutorial, it mentions that automatic bed leveling does nothing to help accurate printing. If that was the case, then I could have just used G29 and called it a day as well. Neither G29 or G33 can do what I am talking about because you have to take measurements and evaluate and then iterate a few times until you get your desired result. G33 doesn't even get you in the ball park of accurate printing. Have you tried measuring your prints with a caliper?
Re: UBL Delta Calibration for Square Printing
December 09, 2019 09:19AM
Quote
Ohmarinus
Quote
LVD
Iterate x number of times through points 3 to 8 or simply issue a G33 command and done.

I agree about the functionality of G33, it's all I have ever needed. It works so well and is incredibly useful. However, my current setup has an inconsistency and I do not know how to fix this. Even though all sizes of my arms etc are the same, mounted square, and the effector is straight and the distance between the arms is parallel, the effector still tilts.

When I finally receive my new arms I'm moving away from magnetic balls again and will redesign the effector again without an inductive sensor and just do the leveling manually. It really isn't needed and the sensor only adds weight and wire strain to my effector.

What do you mean tilts? Is this a mechanical issue? As in, you can see the effector at an angle with your eyes? Or are you just seeing a difference on the print bed with one side squished and the other not? Because if you are just getting one side squished, then that is exactly the reason G33 is garbage and you have to do some iterative work as I have described to make it right.
Re: UBL Delta Calibration for Square Printing
July 21, 2020 03:54AM
Quote
mnester
Quote
Ohmarinus
Quote
LVD
Iterate x number of times through points 3 to 8 or simply issue a G33 command and done.

I agree about the functionality of G33, it's all I have ever needed. It works so well and is incredibly useful. However, my current setup has an inconsistency and I do not know how to fix this. Even though all sizes of my arms etc are the same, mounted square, and the effector is straight and the distance between the arms is parallel, the effector still tilts.

When I finally receive my new arms I'm moving away from magnetic balls again and will redesign the effector again without an inductive sensor and just do the leveling manually. It really isn't needed and the sensor only adds weight and wire strain to my effector.

What do you mean tilts? Is this a mechanical issue? As in, you can see the effector at an angle with your eyes? Or are you just seeing a difference on the print bed with one side squished and the other not? Because if you are just getting one side squished, then that is exactly the reason G33 is garbage and you have to do some iterative work as I have described to make it right.

The effector was tilting at the edges during probing because the print head needed to push harder on the Force Sense Resistor to create a signal. I have since switched to piezo's and now it works wonderfully.

The only thing that is bothering me is that due to heat expansion the first layer height isn't always spot on. I wish there was some kind of gcode to at least check the height in the center at the beginning of each print. The mesh I've created now is perfect, but it's just the first layer height is uniformly wrong each time I print. It's sometimes too high and sometimes too low. The longer I've been printing, the warmer the entire machine becomes, somehow things change and I cannot fix that because I have not been able to find a different print bed for this machine yet and our machine shop is closed for summer holidays.


http://www.marinusdebeer.nl/
Sorry, only registered users may post in this forum.

Click here to login