I do manually calibrate my MaslowCNC.
It is not a simple task. And hopefully it could soon be all automatic (thanks to initiatives like the community effort around @madgrizzle and @Joshua with the Holey calibration)
(edit 2019-01-26) Here is a list of all parameters along with their target accuracy I found to be necessary to tune the Maslow right.
Note that the firmware is getting improved to consider and record all necessary parameters.
So here is how I do my manual calibration on my triangular link (ring kit), and how you could do it assuming you have a 8x4 feet workspace. If you want to try it, I recommend you read through instructions once before you start. You might need to play with Joshua’s latest firmware proposal
Parameters are set in Ground Control, which sends them out to the arduino. But maybe not all parameters are adjustable in the current firmware release. Check it out.
a) Set work area Height = 1220 mm and work area Width = 2440 mm
If these are a little off, the sled will not stop at the workspace exact edge. It may stop within or beyond by as much as half of the error. That is if the top beam is exactly parrallel and center is exactly above the workspace center. And note other parameter errors contribute to let the sled go out of the workspace area while Ground Control thinks it is within.
b) Make sure your frame is stiff enough. To check it out, ideally, you get a laser pointer attached to the beam. Try pointing the beam in the same line as the beam. Check the laser dot displacement when targeting a wall nearby (I use a wall 5 feet away ) and having sled moving accross the workspace along the top edge. Specifically look for these:
b1) front/rear laser dot displacement shows beam is bowing in the horizontal plane. Should be maximum when sled is top center and least in lower corners.
b2) up / down laser dot displacement shows the beam is flexing in the vertical plane. Should be maximum flex when sled is near the workspace side where the pointer is attached, least at the other side, and regardless of sled height.
Now, a confortably stiff frame leaves the laser dot completely idle. (marking the wall with a pen shows no change). On the other hand, lack of stiffness contributes to wavy displacements when routing along the top edge, and larger position drift when the router bit feeds along the material.
c) distance between motors ( left and right motor shafts.)
To get that value, it is good enough to use a tape measure and carefully measure the distance down to 1 mm. If your frame is stiff enough, it won’t make a difference wherever the sled is located while you take that measure. I recommend to check at least one bottom corner, and the center top of workspace. Then I do like @madgrizzle says:
That is good if both gear boxes lie on a horizontal beam. Otherwise you may have to work out a way to get a value precise within 1mm. But no need to overdo it: The residual error in this measure- if any- will be compensated later.
d) Motor offset height (Get the vertical distance from workspace top edge to motor shaft Height.)
For this and other checks, being able to place a tape verticaly on the workspace then sit the tape measure tip under the top beam has proven to me to be very handy.
If your top beam is not in line with the workspace, you could add a few boards to have a measurement positions in at least the following 5 places along the top beam: center, near 800mm horizontal on both sides of center, then near left and right edges. (edit: the Holey Calibration will place dots at X 965mm, so you might want to have that too!)
Your tape tip must sit clearly on that beam reference face. And you have to determine the vertical distance from that face to the sprocket center (see ?? mm in the picture).
Why 800mm? When chain tolerances are wrong or when chain stretch factor is wrong, it is about there near the top edge where such errors are most obvious and measurable.
e) Sled Rotation Radius for triangular kinematics
With triangular kynematics, the rotation radius should be given by the link design.
Use it as is. The ring kit has 138,14mm. I use it fine.
f) Sled centering error (parameter not yet available but not necessary):
Now what if the router is not perfectly in line with the sled triangular link center where chains would cross?
That is a simple x and y offset and has no other effect. Meaning no warping of the workspace.
It has to be taken into account when you try to place the sled on the horizontal center, or on the workspace edge.
g) Chain Elongation Factor (chain stretch while under tension), (edit: now available within the Maslow firmware)
This is around 6x10E-6 m/m/N. Using your sled weight and taking into account the chain tension along with that elongation factor to compute resulting left and right chain stretches.
h) sled weight: (edit: now available within the Maslow firmware, including an -adjustable- default sled weight)
If you have a large scale, it may not be too accurate when measuring low weights. A good solution is to use a body weigth scale. First measure you weight. Then grab your sled with everything normally held by the chains. Measure again. Then substract the two values to get you sled weight. Measuring within one pound accuracy should be good enough.
The impact of chain elongation factors is most important in the upper half of the work space. Not considering it leaves you with about 5 mm dip lower on the vertical position around the center top compared to the left and right sides. It also unevently stretches horizontal distances in the 0 to 800 mm horizontal left and right ranges, while falling back in the 800 to 1200 mm horizontal range. In other words, it is a significant contributor in making round things oval. That parameter is however not the only one doing this: So do rotation radius, motors shaft distance, and chain link pitch error (a.k.a. chain tolerances).
i) Chain 12 o’Clock position
This is easy and makes a significant difference: use a level like this.
j) Chain tolerances left and right chain (really is about the real vs the expected average link length).
That one is rather important and has a significant impact on workspace warping.
Make sure 12 o’Clock is set straight, then draw your horizontal center and tweak until you get your sled on it. So you end up with hopefully the right difference between you chains tolerances.
Beyond getting the proper difference, what about getting the proper values? Since all other sources of top edge dips were previously addressed. You should now be able to find the proper chain lengths by changing tolerances equally on both chains. Add to both values 0,05% to pull top center error 1.5mm up closer in line with the far left and right points. That also is expected to make the sled points closer to the real workspace top edge when Ground control expects it to be on the workspace top edge. You should Increase that tolerance common increment up to getting the actual Motor offset height at the top center , top ±X 800mm, and the top left anf right corners.
k) Then correct sag using the sag correction factor available in your firmware. That means horizontal distance should now be uniform and accurate from 0 to 800 mm and from 800 to 1200 mm on both the top edge and the bottom edge.
And that is it.
Your parameters are now hopefully set right. But these are somehow limited by your (tape) measurements accuracy. Now, sled center gets to the workspace edges when Ground Control also says so. And your board has gotten scored a few times by your router to measure where it stands. To get more accurate results, adjusting parameters may be difficult because you might end up having some random errors, like uneven chain pitch.
To get rid of these last error sources, you might need to reccord a residual x/y error table in the arduino. And that is another topic to be covered in my next post.
Here you can learn more about how each error affects the MaslowCNC work area