How do we want the *ideal* calibration process to work?

There are still some bugs to track down, but I’d like to start talking about how we want the ideal version of the calibration process to work.

There are simply too many steps right now and each step creates opportunities for something to go wrong. Most of these steps can and should be done automatically I think.

Editing the .yaml file should be gone entirely. There is no reason that the user should have to do that.

Even more than that I think we can avoid even having to ask the user for the information (IE I think that we can do better than having a user interface where you type in the information that would go in the .yaml file).

Horizontal vs vertical we can detect automatically by driving the top left and right motors to let out a bit of belt and then seeing if gravity moves it. If the belt doesn’t get taken up then we’re on the flat, and if it does get taken up then we’re on an angle.

For the frame dimensions maybe we can say just pull out enough to fit and your frame and then we can take a few measurements close to the center of the frame and use those to roughly calculate the frame dimensions…then expanding the calibration pattern out towards the edges. (@dlang deserves credit for that idea)

After that it could all be automatic, right? Obviously the results should save automatically. I don’t think that there is a real reason that we need to do a power cycle at the end either. FluidNC requires a power cycle for it’s settings to be updated, but since we’re not changing any of those I think that we should be able to make it so at the end of the calibration process everything is good to go.

Any other ideas or thoughts on how we can streamline it?

1 Like

When it is taking measurements, it generously spools out belt at one side to be able to move towards the next point on the other side. This is “normal” behaviour for now but maybe the spooling can be a bit more elegant. So not “spitting out” but more "providing just enough slack " in a manual set up you would let the line slip while maintaining just enough tension to keep it tight. I guess that the motors don’t work that way though. They don’t do slipping. Its eiter pull or push.

1 Like

I agree. I’ve been working on some tweaks to the internals of the calibration process which will hopefully be in next week’s update. I made it so less belt gets extended, and also right now it extends belt on all four arms but I made it so it just extends belt on the arms which are about to need it.

Hi Bar,
this is such a cool project, and I am really amazed at the energy you are putting in the troubleshooting, and getting it to work for us, so thank you!
You asked for input on the ideal calibration routine: I am very much a user, and not a coder, so the less down and uploading, parameter changing and swimming through files the better. Also, I plan to use the M4 in different locations: vertically in my shop and horizontally in my ship or on a collapsible frame, so I expect to use the calibration routine quite often.
So I guess it would be ideal if when you put the machine on the material and connect the belts to the anchors, a question appears “calibrate y/n?” And then the rest of the proces automatically, wihout intervention or help. And a very clear “READY” at the end of the calibration proces.
An other thing where there may be user input needed is when the work area is smaller than the standard 4x8.
Thanks again and good luck,


1 Like

Another approach WRT error messages is focus on what the error message means to the user (at least the most likely implication) and therefore what the user should do next to resolve the problem themselves.

1 Like

After you have the get the rough frame calibration, I would have the user drive
to the corners to set the edge of the calibration (and incidently, detect where
the frame isn’t parallel to the workpiece) and then fill in the calibration from
there automatically. it could be a fixed number of points, or points at a given
distance apart from each other (more experimentation needed to figure out which
is better and how many are needed to get consistant results)

Also, there should be a mode to be able to say ‘this is the same frame you were
on last time’ and have it just do a sanity check at a few points to make sure
the belt lengths match as expected

(ideally, support the idea of having multiple frames, so you can say ‘this is
frame X’ for it to do the sanity check)

David Lang


but we do have the extend belts functionality where the motors only run as
needed to allow the belt to extend, it seems like it should be possible to use
something like this when providing slack rather than just running the belt out
and it going extra slack.

David Lang

1 Like

Don’t really understand the electronic or coding piece. So my ideas may be not viable or just bad.

It seems that during the cal video the belts are loose for far too long. Is it possible to reel all 4 in at the same time and same speed and have the motors stop at a certain tension? This would prevent drive off and place the sled around mid board area.

Then maybe drive the sled to the corners at a spot marked in from the edges say 4". This would give the machine a better idea of the boundaries.

Then run the cal protocol to map out all the points and do that math stuff.