Chain Compensation Status

I’ve read through the forums a few times and am not sure what the status is of the chain compensation routine. It appears to be implemented, but I am not sure anyone is using it. I’m having difficulty getting my manual measurement of distance between motors to match that of Maslow and think this might be a solution (or getting new chains) but last I read on it, it’s still in “beta”. Is anyone using it and if so, what typical values are you seeing for left and right chain compensation?



It IS implemented, but I haven’t found it to make my machine more accurate. After using the compensation step I was able to get the chain measurement to match my manual measurement, however then my calibration test pattern score went down instead of up so something is wrong. I agree that this is the last big thing we need to sort out, and any information you can gather from using the procedure would be much much apreciated

1 Like

Thanks, I’ve been trying to go through the code to better understand how its accounted for in the calculations. I guess I need to find somewhere in this forum where someone described how the inverse triangulation calculations are done (hmm… that would make for a good wiki post).

I’ll try to do some remeasuring tonight and test a before and after. I assume the following process would work efficiently:

  1. Run chain length calibration and record Maslow measured motor distance and chain compensations.
  2. Set the motor distance to what Maslow measured, but zero out the chain compensations.
  3. Run the triangular calibration twice
  4. Do some measurements of accuracy
  5. Set the motor distance to the hand measured value and re-enter chain compensations.
  6. Run the calibration twice
  7. Do some measurements of accuracy
  8. Compare results of 4 and 7.

Additional thought, we need to add a delay between pressing the button and the sprockets feeding out the chain in this step. Mine got wrapped again when I didn’t realize it would start right off the bat. My chains are sticky I guess.

For the accuracy testing, what I’ve been doing is just drilling a shallow hole at near the middle of the board and then dropping a foot down and drilling another shallow hole and measuring the error. Right now, I’m about 1/16th an inch off. If I understand the mechanics correctly, an error in chain length would be more pronounced near the middle of the board rather than the edge.


This is a cool test that I haven’t thought about trying before

1 Like

@madgrizzle, I am happy to see that you are testing the chain length compensation routine! The chains I got with my kit were not the same length (right about 6mm shorter than left), and @bar created the routine to deal with this issue. I have been away from my shop, and decided to purchase a longer single chain that I can split, so that I end up with matched chains on my system. In the process I am also widening the top beam to 12’, with the hope that performance is improved in the lower corners. I just fired up my system to make brackets to mount the Home Depot Easy Strut above my original 10’ beam… the stuff only comes in 10’ pieces, so I am joining 2 - 6’ parts to get to 12’. Presently using v 1.13 firm and software… I will upgrade to 1.18 after the mods are complete, and recalibrate. Meanwhile, I look forward to your results.



I got half of the test completed last night before the twins came and demanded to go swimming with me. I guess I should enjoy the fact that at seven years old they still want to spend time with me because I know that will end one day.

Chain compensation measurements:

  • When measured manually: 3602.6 (Note: this was measured with sled attached and at top center of frame)
  • When measured with the left chain: 3590.11
  • When measured with the right chain: 3589.66
  • Left chain correction factor: 0.347900203615
  • Right chain correction factor: 0.360479822602

What concerns me the most is that I’m off by over a centimeter, though fortunately its pretty consistent between both chains. However, if I did the math correctly it equates to about .022 mm per link.

Here are the results so far, with no chain compensation factors:

First calibration run:

  • Distance between motors: 3590.11 mm
  • Vertical motor offset: 475.8 mm
  • Rotation radius: 137.3 mm
  • Chain sag correction value: 31.469023
  • Vertical error over 12-inches starting near center: 1/16-inch

Second calibration run:

  • Distance between motors: 3590.11 mm
  • Vertical motor offset: 478.4 mm
  • Rotation radius: 138.5 mm
  • Chain sag correction value: 27.394203
  • Vertical error over 12-inches starting near center: 1/16-inch

It does not appear I can improve upon the calibration by running additional iterations, so I’ll try out the chain compensation factors and see what results.


Interestingly, I just entered the compensation factors and motor distance and now, without recalibrating, am accurate to 1/32-inch near the center… Just started to recalibrate to see what happens


I recalibrated and there really wasn’t much improvement. The values after calibration were:

Distance between motors: 3602.6 mm
Vertical motor offset: 468.44 mm
Rotation radius: 133.2 mm
Chain sag correction value: 38.992573

So I played with the simulator and decided to manually bump up the rotation radius and see what comes of it. I believe (I don’t recall precisely) I added 5 mm to it… making it 138.2 mm.

I then ran a series of 100 mm squares in the top left, bottom left and center and I was getting measurements of 99.7 to 100.1 mm in top left and center and around 99.0 to 99.3 in bottom left. I think this is pretty good.

I’m going to try some projects now (plan to make somethings with joinery) to see how well it works.


I assume you are meaning chain tolerance errors

The routines have been written, but there is some bug somewhere that causes
things to not work correctly.

My guess is that there is some calculation or movement in the calibration
process that doesn’t take the correction into account and so throws everything
else off.

One thing that I don’t think we do:

After the measure manually (no tension), measure left, measure manually
(tension), measure right routine.

  1. do we compare the manual tension/no tension results, and if they differ (too
    much) raise an alarm that the machine isn’t rigid enough

  2. do we properly reset the chain lengths to the corrected value, or is one
    chain left fed out, but with the pre-measurement length in memory rather than
    the actual length (it would probably be best to re-set the chains on the
    sprockets from scratch)

  3. when we feed out to a ‘known’ distance, the sprockets are not going to have a
    tooth at 12 o’clock, which means that resetting the chain lengths is going to
    introduce error.

This step really needs to be changed, if someone has a wider top beam, the
preset lengths are not going to reach the sled, and the length on each side
really needs to be something that leaves a tooth at 12 o’clock. The pre-set
fixed length is just wrong.

After this, we need to do the cuts, then audit the code to check that the
calibration forumulas include the chain tolerance error.

If the chain tolerance values are not accounted for, then the calculations of
chain sag are going to be off, because the chains are longer than the machine
thinks they are

This was my thought as well, or we are double compensating somewhere. I’ve been working on trying to understand the code, but it’s been slow progress. In my opinion, a measure of a well calibrated machine is how close to the ideal rotational radius the calibrated value is. Coming up with a low rotational radius (i.e. 130) and getting better results by manually setting it closer to 140 suggests something is off.

1 Like

When I ran the calibration with chain compensation, I had reset the teeth to 12 o’clock (couple of times, actually). I just bring up the triangular test cut rather than akip through the calibration process.

And then finally…

Why are we calibrating the values we are?

  1. Rotational radius? It appears to me, that at least for the ring kit, this could be readily determined and would be consistent among all maslows. If a calibration routine is coming up with a value that is different than what it actually is, something has to be wrong and we are trying to compensate for it.
  2. Chain sag? Isn’t this a factor determined by the weight of the sled or does other factors associated with the chain construction come to play? If just the weight, couldn’t the compensation factor be calculated by simply entering the sled’s weight. I don’t think the weight would have to be highly accurate… just put it on a scale or hold it while you are on a scale.
  3. Vertical offset? Can’t this just be measured and entered.

It seems to me that perhaps the better calibration factors to adjust are possibly the distance between motors and the chain length compensation.

Distance between motors really shouldn’t need calibrating… manually measure while the sled is attached to the chains and at the top of the work area. I’d think this would put maximum pressure on the beam. Might be good to test at bottom of work area as well to come up with a measurement on how much the beam flexes so the user can stiffen things up if needed.

It just comes down to the chain compensation… each chain with its own value. But wouldn’t the current version of calculating this be as good as any?

If all above is true, then why even do test cuts for calibration. If there’s something special about chain sag, then calibrate just that with the test cuts… not rotational radius and y-offset.

1 Like

2b) frame angle. if we’re measuring the sled weight, surely we need to subtract some amount for friction, which would be dependent on frame angle. it’s probably a small amount (~4-8%) of the sled weight but some sort of attempt at including that should be made it would seem.