Maslow Home Maslow Community Garden

Accurate MaslowCNC manual calibration, how to


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 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 displacement shows the beam is flexing in the vertical plane. Should be worse when sled is near the workspace side where the pointer is attached, regardless of sled height.
Now, a confortably stiff frame leaves the laser dot completely idle. (marking the wall with a pen shows no change). Lack of stiffness contributes to wavy displacements when routing along the top edge.

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. Your tape tip must sit clearly on that 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 top workspace edge.

g) Chain Elongation Factor (chain stretch while under tension, not yet available?)
This is around 6x10E-6 m/m/N. You need a firmware that records and uses your sled weight and takes into account the chain tension along with that elongation factor to compute resulting left and right chain stretches.

h) sled weight: (not yet available?)
If you have a large scale, it may not be too accurate when measuring low weights. A good solution is to use a bathroom 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 because not considering it leaves you with about 5 mm dip lower on the vertical position around the center 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 link length tolerances).
Now that one is rather important 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 toward the actual Motor offset height is met by the top center , top ±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.

Do 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

Most Critical Measured Dimensions
Chain Tolerance Effect on Accuracy
Maslow accuracy - simplification proposal
How to rebase commits in preparation for a nice and clean pull request?
Accuracy Issues and Calibration Overview
Table of Contents
Calibration simplification idea/question

Thank you so much for explaining it step by step!


You say that the work area width would be 1240mm. Why? When the default is 2438.4 mm. Did you mean to say 2440mm?


Yes I meant 2440 mm. edited. :slight_smile:


@c0depr1sm, hope you don’t mind that i’ve liked this post in the wiki Table of Contents
I was not sure to put it under GroundControl, not knowing, i put the link at 5. Optional…
Please edit the wiki table of content and from my perspective this deserves a place at the top with an own title.
In the wiki it must,so kindly correct how please.

Edit: A seperate point -> Calibration – traditional – manual?


Thank you @Gero for the invitation :-).
The wiki is this place where we can summarize what was shared and learned over the forum.
I like your choice because section 5 comes in later, once the basics have been learned.

Section 1 about “accuracy issues and calibration overview” is a place where I could spend some time to continue building the wiki too.


Your contribution can not be valued enough!
Amazing observing, understanding and testing.



I had some trouble with the calibration I posted over over on Holey calibration thread i also posted my first hole cut test there.


Hi @Gero
Following your invitation, I have worked through several forum posts to close the loop on MaslowCNC parameters and calibration. About that, here is a summary list of the topics I think contain valuable elements for the Wiki.

What do you think is the right way to improve the Wiki from that?






holey-triangular-calibration optimization


Actual Z axis torque load measurements

Actual gearbox sprocket shape SVG file

Alignement jigs to build an acurate MaslowCNC

History of GroundControl calibration assistance


27 days and I still don’t have an answer.
Guess I need to get drunk and start a mind-map that would likely have 3 top levels splitting the wiki for:

  1. entry level, the basics to get up and running for signboards, art and other things that don’t require a high accuracy
  2. intermediate, for people making furniture, boats and other things that require that the parts fit together
  3. for developers, contributors, testers, amazing people like you that are dedicated to bring this amazing design forward

The amount of information is overwhelming, even for a ‘Maslow veteran’ like me. Can only guess what it feels like for a newbie Chipmonk. I think the wiki should give a choice on how deep to dig.