Still Not Printing Level, Could Rod Length or Delta Radius be wrong?
-
Thanks for the input - it's hard to find direct sources from people who've tried it. I'll pick up some of the regular GT2 from SeeMeCNC and then and swap it out when it comes in.
-
Reading this thread I realize that I seem to have exactly the same problem, glad that you opened it!
There is one factor I read about that could play a role, the height correction for the fsr's on the probing points.
What is the order of steps you would propose for fsr adjustments?
a) print test cube to align steps/mm
b) check reproducibility of fsr's
c) find out fsr height adjustments for probing points and add them to bed.g script's probing commands
d) auto calibration S7
e) check rod length… what to do if it differs from the 'real' rod length? -
Re. Steel/pu belt it works with big pulleys but 16 and 20 tooth pulleys do snap the steel cores. Deltas are especially problematic as a small area of belt spends a lot of time around the pulleys.
-
@MiR:
Reading this thread I realize that I seem to have exactly the same problem, glad that you opened it!
There is one factor I read about that could play a role, the height correction for the fsr's on the probing points.
What is the order of steps you would propose for fsr adjustments?
a) print test cube to align steps/mm
b) check reproducibility of fsr's
c) find out fsr height adjustments for probing points and add them to bed.g script's probing commands
d) auto calibration S7
e) check rod length… what to do if it differs from the 'real' rod length?If you want to generate this shape in OpenSCAD - you can make a custom calibration circle
[c]// Calibration "Cylinder" for Delta printer // copy this code into an OpenSCAD file and export as an STL file
$fn = 36; // you can raise this to 100 or so if you want a smoother curve on your circles
cylinder_radius = 110;
cylinder_height = 0.3;
thickness = 10;difference() {
cylinder(r=cylinder_radius, h=cylinder_height, center=true);
cylinder(r=cylinder_radius-thickness, h=cylinder_height, center=true);
}cylinder(r=thickness/2, h=cylinder_height, center=true);[/c]
You could measure your thickness at each part of the circle to see how it compares to something like a 0.3 layer height and raise or lower your FSR probe point in the corresponding area. If the height is too low, add that amount as a negative H value (say H-0.05 to make it 0.05 thicker) or make the H amount more positive to lower the height down slightly.
I'm getting my middle center point of my bed as a cylinder with roughly 0.18 to 0.22 thickness and it varies depending on which side of the circle it's measured on.
If I use something like the bed probe file below, it begins to correct the ridges and valleys, but not quite - does your printer seem to do something similar?
[c]; bed.g file for RepRapFirmware, generated by Escher3D calculator
; 7 points, 6 factors, probing radius: 150, probe offset (0, 0)
G30 P0 X0.00 Y150.00 Z-99999 H-0.2; Z Tower
G30 P1 X129.90 Y75.00 Z-99999 H-0.05; ZY mid
G30 P2 X129.90 Y-75.00 Z-99999 H-0.2; Y Tower
G30 P3 X0.00 Y-150.00 Z-99999 H-0.2; YX mid
G30 P4 X-129.90 Y-75.00 Z-99999 H-0.05; X Tower
G30 P5 X-129.90 Y75.00 Z-99999 H-0.2; XZ mid
G30 P6 X0 Y0 Z-99999 H-0.10 S6
[/c] -
@MiR:
Reading this thread I realize that I seem to have exactly the same problem, glad that you opened it!
There is one factor I read about that could play a role, the height correction for the fsr's on the probing points.
What is the order of steps you would propose for fsr adjustments?
a) print test cube to align steps/mm
b) check reproducibility of fsr's
c) find out fsr height adjustments for probing points and add them to bed.g script's probing commands
d) auto calibration S7
e) check rod length… what to do if it differs from the 'real' rod length?Instead of auto calibration with S7, I suggest S6 initially. Only try S7 if you still get the symmetric valleys/ridges pattern that Saffi reports.
Whatever diagonal rod length you end up in the firmware config, check a couple of things:
1. The XY size of prints, bearing in mind that they typically end up a little over sized anyway due to filament swell;
2. Print grid pattern (or just a noughts and crosses/tic tac toe pattern) that covers the whole bed, and check that the lines are straight.
-
Also, here's a few calibrations on my printer with several points and the same probe height - the software is insistent on making my rod lengths 310 - 312mm. I did double check again with calipers and center to center on the ball joints, it's very close to 300mm and the official measurement is 300.15.
I'll try to run it again and see if I can get 145mm probe points to hit outside the triangle.
; S6 auto-calibration
M665 L312.888 R145.796 H368.282 B140.0 X-0.103 Y0.106 Z0.000
M666 X-0.044 Y-0.367 Z0.411 A-0.16 B-0.04; S7 auto-calibration
M665 L312.863 R145.788 H368.261 B140.0 X-0.070 Y-0.000 Z0.000
M666 X-0.319 Y-0.387 Z0.706 A-0.07 B0.20; S8 auto-calibration
M665 L300.150 R141.955 H368.210 B140.0 X-0.107 Y-0.026 Z0.000
M666 X-0.293 Y-0.397 Z0.690 A-0.07 B0.20; S9 auto-calibration
M665 L312.888 R145.777 H368.274 B140.0 X-0.090 Y0.116 Z0.000
M666 X-0.067 Y-0.329 Z0.395 A-0.16 B-0.04 -
Thanks…
When I do run Mesh Grid Comensation after calibration, will it take the H offsets of the bed probing into account (I guess not) or will points that need more force show up as bed uneveness?
-
Saffi, it's occurred to me that your valleys and ridges pattern could just be an effect of the FSRs giving different trigger heights near the towers compared to midway between towers. Ignoring scaling errors, when you print a large circle, do you get a more consistent first layer height when you use L=300.15 and calibrate with S6, or after calibrating with S7?
-
I'm going to check on this, in the mean time though, I redid my probe points with tissue paper (minding that I am not that great with gauging the height feel anyway).
I am posting all my points below for reference:
100mm Radius Probe Points
I just hit the probe macro several times for each one// Probe Point
// G30 P0 X0.00 Y100.00 Z-99999 H-0.149Stopped at height -0.137 mm
Stopped at height -0.112 mm
Stopped at height -0.175 mm
Stopped at height -0.162 mm
Stopped at height -0.100 mm
Stopped at height -0.125 mm
Stopped at height -0.162 mm
Stopped at height -0.137 mm
Stopped at height -0.125 mm
Stopped at height -0.150 mm
Stopped at height -0.150 mm
Stopped at height -0.137 mm// End Z Tower Probe Point
// Probe Point
// G30 P1 X86.60 Y50.00 Z-99999 H-0.161Stopped at height -0.184 mm
Stopped at height -0.147 mm
Stopped at height -0.172 mm
Stopped at height -0.134 mm
Stopped at height -0.172 mm
Stopped at height -0.172 mm
Stopped at height -0.159 mm
Stopped at height -0.147 mm
Stopped at height -0.159 mm
Stopped at height -0.159 mm
Stopped at height -0.172 mm
Stopped at height -0.172 mm
Stopped at height -0.147 mm
Stopped at height -0.159 mm// End of ZY Mid Probe Point
// Probe Point
// G30 P2 X86.60 Y-50.00 Z-99999 H-0.151Stopped at height -0.137 mm
Stopped at height -0.149 mm
Stopped at height -0.137 mm
Stopped at height -0.162 mm
Stopped at height -0.174 mm
Stopped at height -0.149 mm
Stopped at height -0.162 mm
Stopped at height -0.162 mm
Stopped at height -0.137 mm
Stopped at height -0.137 mm
Stopped at height -0.124 mm
Stopped at height -0.137 mm
Stopped at height -0.137 mm
Stopped at height -0.137 mm// End Y Tower Probe Point
// Probe Point
//G30 P3 X0.00 Y-100.00 Z-99999 H-0.180Stopped at height -0.184 mm
Stopped at height -0.172 mm
Stopped at height -0.172 mm
Stopped at height -0.197 mm
Stopped at height -0.209 mm
Stopped at height -0.184 mm
Stopped at height -0.172 mm
Stopped at height -0.172 mm
Stopped at height -0.172 mm
Stopped at height -0.197 mm
Stopped at height -0.159 mm// End XY Mid Probe Point
// Probe Point
// G30 P4 X-86.60 Y-50.00 Z-99999 H-0.108Stopped at height -0.124 mm
Stopped at height -0.136 mm
Stopped at height -0.112 mm
Stopped at height -0.037 mm
Stopped at height -0.062 mm
Stopped at height -0.112 mm
Stopped at height -0.087 mm
Stopped at height -0.124 mm
Stopped at height -0.112 mm
Stopped at height -0.149 mm
Stopped at height -0.162 mm
Stopped at height -0.136 mm
Stopped at height -0.062 mm// End X Tower Probe Point
// Probe Point
// G30 P5 X-86.60 Y50.00 Z-99999 H-0.137Stopped at height -0.122 mm
Stopped at height -0.122 mm
Stopped at height -0.122 mm
Stopped at height -0.159 mm
Stopped at height -0.134 mm
Stopped at height -0.147 mm
Stopped at height -0.172 mm
Stopped at height -0.184 mm
Stopped at height -0.222 mm
Stopped at height -0.122 mm
Stopped at height -0.084 mm
Stopped at height -0.109 mm
Stopped at height -0.122 mm
Stopped at height -0.097 mm// End XZ Mid Probe Point
// Probe Point
// G30 P6 X0 Y0 Z-99999 H-0.143 S6Stopped at height -0.145 mm
Stopped at height -0.132 mm
Stopped at height -0.120 mm
Stopped at height -0.157 mm
Stopped at height -0.170 mm
Stopped at height -0.195 mm
Stopped at height -0.132 mm
Stopped at height -0.170 mm
Stopped at height -0.182 mm
Stopped at height -0.170 mm
Stopped at height -0.107 mm
Stopped at height -0.107 mm
Stopped at height -0.082 mm// End Middle Probe Point
-
Below is the bed.g file I am using. Still printing ridges and valleys that must vary at least 0.2mm to 0.3mm in layer height based on how the 0.2mm layer is barely sticking and too close to even extrude.
The barely stick is right at each midpoint as usual and the too close starts as you near the tower with the plastic pressure building up and being extra thick as it exits the tower.
Also, the S6 yielded the following information:
; Delta parameters
M665 L300.150 R142.640 H367.999 B140.0 X-0.251 Y0.141 Z0.000
M666 X-0.373 Y-0.157 Z0.530 A0.00 B0.00[c]
; probe the bed at 100 and 98 mm radius with double probe each spot
G30 P0 X0.00 Y100.00 Z-99999 H-0.149
G30 P1 X0.00 Y98.00 Z-99999 H-0.149G30 P2 X86.60 Y50.00 Z-99999 H-0.161
G30 P3 X84.87 Y49.00 Z-99999 H-0.161G30 P4 X86.60 Y-50.00 Z-99999 H-0.151
G30 P5 X84.87 Y-49.00 Z-99999 H-0.151G30 P6 X0.00 Y-100.00 Z-99999 H-0.180
G30 P7 X0.00 Y-98.00 Z-99999 H-0.180G30 P8 X-86.60 Y-50.00 Z-99999 H-0.108
G30 P9 X-84.87 Y-49.00 Z-99999 H-0.108G30 P10 X-86.60 Y50.00 Z-99999 H-0.137
G30 P11 X-84.87 Y49.00 Z-99999 H-0.137; go all the way around and probe the bed at 100mm radius
G30 P12 X0.00 Y100.00 Z-99999 H-0.149
G30 P13 X86.60 Y50.00 Z-99999 H-0.161
G30 P14 X86.60 Y-50.00 Z-99999 H-0.151
G30 P15 X0.00 Y-100.00 Z-99999 H-0.180
G30 P16 X-86.60 Y-50.00 Z-99999 H-0.108
G30 P17 X-86.60 Y50.00 Z-99999 H-0.137; go all the way around and probe the bed at 98mm radius
G30 P18 X0.00 Y98.00 Z-99999 H-0.149
G30 P19 X84.87 Y49.00 Z-99999 H-0.161
G30 P20 X84.87 Y-49.00 Z-99999 H-0.151
G30 P21 X0.00 Y-98.00 Z-99999 H-0.180
G30 P22 X-84.87 Y-49.00 Z-99999 H-0.108
G30 P23 X-84.87 Y49.00 Z-99999 H-0.137; add 3 extra points near the very center
G30 P24 X0.00 Y10.00 Z-99999 H-0.143
G30 P25 X8.66 Y-5.00 Z-99999 H-0.143
G30 P26 X-8.66 Y-5.00 Z-99999 H-0.143; probe the center
G30 P27 X0 Y0 Z-99999 H-0.143 S6[/c]
-
Alright, printing at the same bed.g file posted except I changed it to S7.
Calibration Below:
; This is a system-generated file - do not edit
; Delta parameters
M665 L312.301 R145.735 H367.910 B140.0 X-0.127 Y0.218 Z0.000
M666 X-0.361 Y-0.131 Z0.492 A0.00 B0.00The print of the outer circle improves in that the variance now between layer heights around the circle only looks to be about 0.05mm or so, which is within the FSR margin of error perhaps.
So I guess the question is why are the arm measurement wrong?
The ball cup joints have a diameter of roughly 6.50mm, so the only way the arms could be ~312mm is if somehow the pivot point for the joints is not at the center?
-
So if I measure with a universal FSR height of -0.1mm and do 12 points at 140mm and 12 points at 70mm and a center point, I get the following calibration at S7:
; This is a system-generated file - do not edit
; Delta parameters
M665 L310.877 R145.827 H367.975 B140.0 X-0.337 Y0.108 Z0.000
M666 X-0.311 Y-0.162 Z0.472 A0.00 B0.00Then a 0.3mm cylinder height with grid infill with 130% first layer width looks like the following below (the ridges and valleys are non-existant):
-
Adding a link to the post below from the SeeMeCNC forums, it looks very helpful as the issue appears to be similar (in modifying the rod lengths, the dimensions might change on printed items, which I have not checked on yet):
-
Yes, and see my contribution to that thread at http://forum.seemecnc.com/viewtopic.php?t=11441#p102296. If calibration with S7 gives you straight lines in that test, you can correct any XY scaling error using https://duet3d.com/wiki/G-code#M579:_Scale_Cartesian_axes.
-
Thanks, it does look like this is the right fix.
A 30mm test cube came out as 29.28 and 29.31 per side with the height being correct, so I started a print I've been trying for a while now and scaled it up in X and Y in my slicer by 102.4% to account for that. I'll compare it to my previous prints and see how if the variations look better. It has several little square cutouts around 20mm across a 200mm+ Y length so any differences will show up quickly.
I suppose I'll try the M579 in config.g as follows to replace scaling in the slicer?
[c]M579 X1.024 Y1.024[/c]
On the rod lengths, if I can probe at 150mm or so on the midpoints between the towers, those are the probe points needed to get as close to the calculated rod length as possible?
If I add in a bunch of other probe points at a radius of 75, will those hinder the correct calculations for the rod lengths?
I think what I may do is do a 50mm radius, 100mm radius and 150mm radius and 9 total probe points at the midpoints around the bed. I'll run a receipt paper height test again and use those numbers for a final S7 calibration and see how it does.
It's nice to get this solved, for a while I thought it was something I was doing wrong in the printer build.
Also, on the steps per mm in the config file, is it ok to use fractional or decimal steps per mm? Say 80.15 if I wanted to calibrate to that?
-
For the auto calibration to determine the rod lengths with any accuracy, you should probe between the towers as far from the centre as possible, as long as your FSRs are still responding well (check the trigger height) and the joints are still moving freely. If those conditions are satisfied, probing at a smaller radius too won't make things worse.
Be careful: I remember Michael Hackney posting that if you probe a long way out from centre and between and outside a pair of FSRs, probing can make the bed tilt and give inaccurate results for that and succeeding measurements.
-
I'm adding the following forum post as well as a link to this post for future reference in discussing the rod length and steps per mm relationship on the "ridges and valleys" problem.
Of course, it reinforces the theory that DC42 is on every possible 3D printer forum posting about delta calibration.
-
I also got this part of the problem sorted out, please see my thread on "Easy Checks on steps/mm"
Thank you a lot for the references to the other discussions…
-
In our Spire delta printers we use a Fisher like bed leveling where the hotend pushes the bed. The solution is beautiful in it's simplicity but imposing several obvious problems like different push strength in different bed areas.
There is also a tempered glass bed always a tiny bit curvy.
I had all sorts of problems with correct print dimensions and print sticking at the beginning.
The problems went away with cutting calibration factors down to four.
I'm not sure why, perhaps the added errors of bed probing and some unevenness in the frame added up, but 7 point calibration were putting errors in rod lengths which I was dead certain about.
The prints have been longer in one tower direction and different from one calibration to another.
With 4 factor calibration these problems are gone. -
The calibration algorithm assumes that the bed is flat and the geometry is accurate except for those things that auto calibration adjusts. If your build has other types of geometric error or a non-flat bed, it will give incorrect results.
Calibrating diagonal rod length automatically is not advised unless you are able to probe points a long way outside the triangle formed by the towers.