Alternative Calibration Approach

I’ve yet to assemble (or even save up for the parts) a Maslow, but the calibration process seems a bit finicky and unable to account for chain droop. It reminded me of the manual bed leveling on my 3d printer, which made me think of the inductive sensor that some machines have. It probes the print bed surface at a configurable number of points, and then accounts for any off-level or warped bed characteristics in the software.

With the Maslow, along with triangular kinematics, it seems like it would be possible to do something similar (albeit more manual without some kind of optical sensor). If we were to mount a fine-tip bit or pointer into the router, just above the surface of the plywood, and then measure & mark certain points on the cutting surface, we could generate a map of coordinates by manually directing the printer to each point and saving.

One possible advantage of this setup is automatically accounting for chain droop without worrying about variations in different configurations. I don’t think this would work without triangular kinematics, though. Here’s a very rough sample of coordinates that could be measured and marked by hand.

After manually (arrow keys or other keyboard entry) pointing the maslow to points A, B, and E, the rest of the calibration process could involve automatic movement to the expected position of other coordinates, with keyboard entry for fine correction.

I’m curious to hear what you guys think, thanks for reading :slight_smile:

3 Likes

In retrospect, I’m not sure why I don’t think it’ll work without triangular kinematics…but I’ll want that for my build anyway.

I think this is a really cool idea and I actually went down the road to try to program it at one point and the issue that I ran into was that it relies really heavily on having someone make a lot of very precise measurements. If it’s relatively easy to measure the distance between two points, but if the whole area is slightly distorted it can be very difficult to measure something like a 1/8th inch bend in an 8’ span. I played around with maybe doing something like using a piece of dental floss or fishing line which could be pulled taught to give a reference straight line, but I ultimately felt like there were too many things which could go wrong. In theory I think this is the best possible solution because it can compensate for any distortion at all.

1 Like

Maybe the edge of painter’s tape? It might be a little harder to stretch straight, but easier to keep in place.

I’d use diagonal measurements to check that it’s square, but the measurements would be pretty involved and time consuming.

How about a modified version that uses paper templates with marks in the corners? Print & tape 5 papers, precisely measure for placement (can’t get away from that unfortunately) and double-check with horizontal, vertical, and diagonal measurements.

I looked into encoders and other things that might help with distance measurement, and this is the closest I got to anything that might work. Unfortunately, I found posts online with similar sensors that had accuracy issues. Another issue would be rotational measurement, which this can’t do, so some kind of self-leveling would have to happen, in the center of the sled.

If we really want sub-millimeter accuracy, I don’t see a way around the tedious measurements.

1 Like

The problem is that you end up trying to measure sub mm errors over 8 feet in
length, that’s really, really hard.

With triangular kinematics, I posted an approach that should be able to
calculate the unkowns with a single pass (doing two small horizontal cuts), but
nobody (including me) has had time to follow up on that

I think this would result in a FAR better calibration than the stock squares.

David Lang

3 Likes

With regular kinematics you have too many variables, and no way to test the
results of changing just one of them.

see https://github.com/MaslowCNC/Mechanics/wiki/Accuracy-Issues

1 Like

I’d use diagonal measurements to check that it’s square, but the measurements would be pretty involved and time consuming.

How about a modified version that uses paper templates with marks in the
corners? Print & tape 5 papers, precisely measure for placement (can’t get
away from that unfortunately) and double-check with horizontal, vertical, and
diagonal measurements.

the problem is the papers can be slightly misaligned compared to each other.

I looked into encoders and other things that might help with distance
measurement, and this is the closest I got to anything that might work.
Unfortunately, I found posts online with similar sensors that had accuracy
issues. Another issue would be rotational measurement, which this can’t do,
so some kind of self-leveling would have to happen, in the center of the sled.
https://www.tindie.com/products/jkicklighter/pmw3360-motion-sensor/

If we really want sub-millimeter accuracy, I don’t see a way around the tedious measurements.

see the triangular calibration topic, it doesn’t account for chain sag, but I
think it takes care of everything else. If the only remaining problem we have is
chain sag, that makes the problem FAR easier.

And chain sag seems to only cause ±1mm from the quick test we have so far.

1 Like

Thanks for the detailed explanation, @dlang, it sounds like we’ve already got a better solution :slight_smile:

In theory at least, now we need to try it in practice.

But I think it will work better than any other approaches suggested so far.

David Lang

2 Likes

What about staring from a circle? a center point that always measures the same distance to the outer diameter as soon as the machine is calibrated.

And maybe somekind of callibration tool?

a nail that sits in the center of the workspace, a fishing line, and a trigger that toggles a switch
then start the machine in the center, move sled up and down until ‘Click’ then move back to the center then move from left to right until ‘Click’ (recalculate dimension) and repeat the steps to see how far it is homed in
and recalculate again for more precision.

Then eventually also move diagonal to check all

this should only need one pin in the arduino to do the measurements.

maybe first measure and recalculate vertical several times before doing the horizontal

I hate to harp on my own postings, but please read the page on accuracy issues

With triangular kinematics you only have two contruction time variables

  1. the distance between the motors, which we can measure pretty accurately (down
    to the limits of accuracy of the chain, somewhere around 0.1mm)

  2. the distance from the center of the bit to the chains.

As I show in this thread

making two marks that are an expected distance from each other in the vertical
center line (and then measuring the expected distance) is enough to calculate
the distance from the center of the bit to the chains to an accuracy of 2x the
accuracy of your measurement (so if you can measure to 1/2mm, your resulting
accuracy is ~1/4mm)

This is if you make one mark in the center, and another one up 500mm

If you were instead to make one down 500mm and the other up 500mm from center,
you would be able to be accurate to ~4x your measurement (so if you can measure
1/2mm, you would be accurate to ~1/8mm)

marks from side to side are not going to be anywhere near accurate until you get
things accurate so that marks up and down the centerline are accurate.

Once you have things so that your marks up and down the centerline are accurate,
everything else is going to be pretty darn close (except for chain sag)

Right now the current calibration isn’t anywhere close to being efficient. It’s

  1. guess
  2. cut
  3. measure horizontal and vertical (which are not independent items)
  4. alter your guess based on which was larger horizontal or vertical (with no
    real idea how far to modify your guess)
  5. move to a different location on the workspace (which means that the
    errors will show up differently
  6. if the difference is ‘too large’, goto 1

It should be

  1. move to the center (or close to the center in steps of one tooth so you can
    mark the chains at the center location)
  2. make test cuts
  3. measure the actual distance between the test cuts
  4. calculate the correct values

ready to cut accurately.

How about printing (smallish) test patterns similar to those that are used on an inkjet printer for automatic alignment? It would probably require a small bit for ease of reading and speed. There is likely a pattern that would use moire effect to exaggerate misalignment, or set some window screen on it to make it stand out.

I’m thinking a series of sets of horizontal and/or vertical lines, with the program making minor adjustments to the pertinent settings between each set. Then the user inputs which set turned out best, with potential to rerun the program if more adjustments are needed.

For chain sag, the test pattern would need to be at the bottom left or bottom right.

Would that also clue you in to changes in motor distance due to flexing of the top beam/mounts? Or would you expect the flex to recover when the upward movement stopped?

Maybe an upward diagonal cut with a slow start and finish, and max power speedy in the middle. That would leave evidence in the path, (maybe like an upside down speed bump?)

Would that also clue you in to changes in motor distance due to flexing of the top beam/mounts? Or would you expect the flex to recover when the upward movement stopped?

for flexing, I would run another test after the current motor distance test,
namely run the motors suddenly up to full power and see how much movement is
detected.

There should be a tiny bit (from reduced chain sag), but if it’s more than a
tiny bit, it indicates a flaw to at least be aware of.

We would need to have someone with the top beam model run this test to see what
the minimum amount of difference that we should ideally see is.

The nice thing is that we have the encoders to measure how much the motors move
after being snugged up.

Maybe an upward diagonal cut with a slow start and finish, and max power
speedy in the middle. That would leave evidence in the path, (maybe like an
upside down speed bump?)

The trouble is that it’s really hard to see and measure a slight error like this

how many people have a printer that can print 4’x8’ patterns? how many people
who have such printers (or access them at a local kinkos) can print without
introducing error (the last several times I tried, the ‘experts’ at the local
kinkos tried to scale my drawing to fit their ‘printable window’ instead of
printing it as provided), when you are looking for errors of 1mm or less over
8’, even shrinking the borders by 1/4"-1/2" will throw your print off more than
the error you are trying to measure

Wit the type of errors we are fighting for chain sag or frame stiffness, you
can’t measure over a foot or so.

If you think about it, you’ll see that we are looking for ~1/12" over 8 ft, so
over the space of a normal sheet of paper this is an error of ~1/150" most
printers have a claimed accuracy of ~1/300" in printing a dot.

we may very well be reduced to “move to this location in the bottom left, put a
piece of dental floss over the top of the chain, and measure the max distance
from the floss to the chain” for sag calibration.

Keep brainstorming on ideas, I haven’t found a good one for dealing with the
errors after the chain-to-bit calibration.

Just be aware of the size of error that we are trying to measure. I expect that
an error of <1mm in the bottom corners would be acceptable to most people

David Lang

How about letting the user make the three measured marks on the centerline, one at the center and the others at 450mm (500mm) above and below, with a scribe for instance. Then drive the bit up and down to each mark to measure those positions. That would acquire the correct values and the cuts would not be necessary, so repetition of the process wouldn’t need fresh spoil board :slight_smile:.

That could work (if you have a nice pointed bit)

you shouldn’t have to make multiple cuts with this, it’s not guess and retry,
it’s measure and calculate, so only one pass should be needed

When everything works, yes. In real life, there are things that ‘happen’. Trying a different chain attachment method, for instance :wink:.

All that is needed is to always measure from the same point - turn the bit so that one flute points up at 12 o’clock (and make sure it doesn’t drag on the surface while you drive up and down). That would make a good indicator against a knife-mark on the surface.

When everything works, yes. In real life, there are things that ‘happen’. Trying a different chain attachment method, for instance :wink:.

keep in mind you can re-use the same board, just shift it an inch or two to the
side

All that is needed is to always measure from the same point - turn the bit so
that one flute points up at 12 o’clock (and make sure it doesn’t drag on the
surface while you drive up and down). That would make a good indicator against
a knife-mark on the surface.

Ok, mark the center, then mark ±(fixed amount), a shop made compass will do
this well, one nail for the center mark, one at ~± 1.5’ (leave clearance to
clear the bottom)

move so the top of the bit barely touches the bottom mark, then move it to the
top mark and the system knows how much it retracted the chains, and you are
telling it the distance between the marks (and that they are symmetrical around
the center of the workpiece), everything else should be able to be calculated.

Then have it move the bit to the center and see if that’s correct or not.

My one concern with this is that the actual center may now leave you with a
sprocket tip pointing straight up, and I think it’s worth having the center be
off a little bit to have a quick and easy ‘recalibrate to home’ position. But it
may be ‘good enough’ to have the ‘recalibrate’ position just slightly higher
than the true 0,0 point.

the current fixed chain lengths for calibration isn’t good because if you are
building a wider than stock machine the chains may not reach the sled, and if
you are building a narrower than stock machine, the sled may be on the floor
with the stock chain lengths.