M4 Power off and recovering

Is there no way to power down without then having to do a belt retract? Does it ever store a position ? I left it overnight in the center where it finished after calibration and after jogging back and forth a bit. Left at 0,0. Come back in morning and it won’t move. The position numbers change but it doesn’t move. This seems to be the norm and SO fragile. Why aren’t we assuming it’s still were we left it at power off? I guess the wifi glitched overnight? The computer was set to not sleep but screen saver was on.

I don’t know about other people but I find the retract, extend super frustrating. I would say it’s not a workable flow if every time you go to use it you need to do a retract.

Is there some sort of sequence of Brower restart, FluidNC restart and power off that I’m missing?

2 Likes

This is (I think, speaking for me at least) a very important feature. Bar has started implementing features like Z saving that will provide a foundation for saving belt sizes on shutdown such that we won’t have to do this. That said, this is the state of the software at this time (May 16 2024). At this point, I’m selfishly less focused on this and more on debugging my own issues so have not focused on software for this issue, but assuming I can get my issues solved, I’m happy to try to start taking this on if Bar or someone else has not solved it by then :slight_smile:

3 Likes

anesbitt wrote:

Is there no way to power down without then having to do a belt retract? Does
it ever store a position ? I left it overnight in the center where it finished
after calibration and after jogging back and forth a bit. Left at 0,0. Come
back in morning and it won¢t move. The position numbers change but it doesn¢t
move. This seems to be the norm and SO fragile. Why aren¢t we assuming it¢s
still were we left it at power off? I guess the wifi glitched overnight? The
computer was set to not sleep but screen saver was on.

I don¢t know about other people but I find the retract, extend super
frustrating. I would say it¢s not a workable flow if every time you go to use
it you need to do a retract.

Is there some sort of sequence of Brower restart, FluidNC restart and power off that I¢m missing?

browser restart should not require retract/extend

However, if a fluidNC restart (including power cycle) the system cannot know
that the machine didn’t move during the time it was powered off.

There has been talk about adding an option ‘if you are absolutely sure the belts
didn’t move while powered off, press “keep saved position”’ but the calibration
issues have absorbed the development effort so far and such a feature has not
been added.

Note that even if this is added, there will be times, such as when you pull the
plug while it’s cutting, that you will still need to retract/extend.

If you leave it powered on, you should not need to retract/extend

David Lang

1 Like

@dlang thanks for the info on browsers vs FluidNC and power off.

Yeah I seem to have power and or wifi glitches at times. It stays operational for a few days and then croaks.

I think a manual override sounds like a good idea for those few instances where you leave it at a known home point and goes off line for one reason or another.

The pain of retracting varies I guess. My frame is vertical and just at the limit of my reach so it’s always a little sporty

1 Like

Yea, I built a 12’ tall by 8’ wide frame (“vertical portrait”), and after two days, I moved the top anchors down to 8’ (just at arms reach with a small stepstool on each corner) until I get to the point of having the ability to not hang it so often. Bigger ladders are scary and awkward. It will become very important to have a way of “zeroing” without taking the machine off once I want to get back to the larger size.

2 Likes

Ron Lawrence wrote:

It will become very important to have a way of “zeroing” without taking the
machine off once I want to get back to the larger size.

going to first principals here, the only way the maslow has to find zero is to
retract until it stops moving.

Currently, this is until the anchor hits the arm, which is a shorter distance
than the edge of the sled, resulting in the requirement to disconnect from every
anchor.

The first thing to do is to add a set of configuration variables of ‘extra
length’ for each belt (there is currently a hard-coded extra length that is
applied to all belts) so that you can put a clamp on the belt at a place that
will let the sled get to the corner of the workpiece, but still have the belt
anchor attached. This would also let people extend the belts for larger frames.

It may be possible to use a single variable for this (just changing the internal
variable from a hard-coded value to a configurable value), but it will work much
better over the long run to not require that each extension be exactly the same
length.

by itself, this will let you then leave it attached to one anchor.

The next thing to do is to add a way to manually control the belts, for each
belt let you toggle it between extend/retract/hold/comply modes. Then after a
restart/e-stop/outage you can manually drive the sled up against each of the
clamps to zero that belt (make the belt length display be in red or something if
the belt has not yet been zeroed, and then you drive around until you zero each
of the belts)

This driving around cannot be automated as the system can’t tell when you are
about to go off the top of the workpiece as you try to go to one corner and the
other corner is too short and problems like that.

So it would be a hassle, but less of a hassle than climbing up to the top of a
12’ tall frame to detatch/reattch the anchors

David Lang

Restating and maybe tweaking your words to make sure I understand. Forgive me if it does not make sense…

POST calibration, the maslow knows its anchor points. Given this, there are options beyond saving belt lengths, which we should do and is a partial solution to the issue with the caveats you have already mentioned.

Once calibrated, and going on what you suggest, we could have the user jog the maslow to the very limit of each corner of the cutting area and attach a clip that grips the belt with teeth. I’m picturing one side smooth, and the other toothed at the pitch of the teeth on the belt, with a large enough area facing the maslow to allow the maslow to “stop” at that spot upon retract. Then we could have the maslow drive itself into that clip to get an exact measurement there. (repeat for all four sides). so we would then have the top left, top right, bottom right, (and 0 for bottom left) along with the “limit” for each belt in those directions. I’d say for most users, you could then mark these spots on the belt carefully with a permanent marker, but that would be useful only if you intend to move between frames.

I think we could then, on power up if we don’t know where we are, we can have the maslow apply tension, then work its way to the corner limits to determine what each belt length actually is… or have the user drive it to the clips as you suggest (might be better that way at first, but I think we could come up with an algorithm to wander slowly up to each limit clip). Upon hitting each “limit stop” it would know where on that belt it is. Once all 4 are done, it knows where it is in the frame and can apply tension and go home.

Did I mostly get what you are proposing?

If I remember Bar’s past comments, the issue here is the Maslow does not know how to move without knowing where it is (belt lengths) before moving.

If I am wrong and we are able to move without it knowing, we could simply define a point on the wasteboard (trace around the sled for instance) and save that point. On turning on, drive to that point and then click a button telling the system we are there. Then the Maslow would load the saved belt lengths for that point.

Ron Lawrence wrote:

Restating and maybe tweaking your words to make sure I understand. Forgive me if it does not make sense…

POST calibration, the maslow knows its anchor points. Given this, there are options beyond saving belt lengths, which we should do and is a partial solution to the issue with the caveats you have already mentioned.

I am talking about finding the belt lengths, this doesn’t change pre/post
calibration. If you have clips on the belt pre-calibration, it will not affect
calibration.

Once calibrated, and going on what you suggest, we could have the user jog the
maslow to the very limit of each corner of the cutting area and attach a clip
that grips the belt with teeth. I’m picturing one side smooth, and the other
toothed at the pitch of the teeth on the belt, with a large enough area facing
the maslow to allow the maslow to “stop” at that spot upon retract.

Yes, but it does not need to be post calibration, you just need to know how much
length there is from the edge of your clamp to the edge of the anchor.

You can manually enter this (measure, count teeth, etc). This works for both
putting a stop on the existing belt (shortening the distance to the stop) or
adding something on the far side of the anchor (extending the belt)

If shortening the belt, this can be automated independent of calibration:
retract/extend the belt to get a zero against the anchor as you do now, then
attach the stop wherever you want and retract again, but instead of setting the
belt length to zero when it stops moving (against the stop instead of against
the anchor), save the offset between the anchor and the stop and record that as
the extra.

If extending the belt, this is harder, you would want to have it held in place
with all 4 belts at a known length, detach one belt from the anchor (requires
extending it slightly), attach the extension, and then retract that belt until
tight, recording how much shorter the belt is as the offset.

You may actually want to do both, put a clamp on the belt so you don’t have to
retract as much, and add an extension so that you can reach the anchors that are
further away.

Then we could have the maslow drive itself into that clip to get an exact
measurement there. (repeat for all four sides). so we would then have the top
left, top right, bottom right, (and 0 for bottom left) along with the “limit”
for each belt in those directions. I’d say for most users, you could then mark
these spots on the belt carefully with a permanent marker, but that would be
useful only if you intend to move between frames.

you leave the clip on, so the next time you have to find zero, you just retract
to the clip instead of retracting to the anchor.

You position the clips just outside your cutting area, so that you don’t hit
them while cutting, but that the sled doesn’t fall off the machine when you
drive all the way against them.

I think we could then, on power up if we don’t know where we are, we can have
the maslow apply tension, then work its way to the corner limits to determine
what each belt length actually is… or have the user drive it to the clips as
you suggest (might be better that way at first, but I think we could come up
with an algorithm to wander slowly up to each limit clip). Upon hitting each
“limit stop” it would know where on that belt it is. Once all 4 are done, it
knows where it is in the frame and can apply tension and go home.

yes (although I don’t think we can drive automatically, especially on a vertical
frame)

Did I mostly get what you are proposing?

mostly

David Lang

Dave Elliott wrote:

If I remember Bar’s past comments, the issue here is the Maslow does not know
how to move without knowing where it is (belt lengths) before moving.

If I am wrong and we are able to move without it knowing, we could simply
define a point on the wasteboard (trace around the sled for instance) and save
that point. On turning on, drive to that point and then click a button
telling the system we are there. Then the Maslow would load the saved belt
lengths for that point.

when the machine powers on (or reboots), it does not know what lengths the belts
are at, they may have changed since the power was shut off. As such, it can’t
know if it needs to tighten or losen a belt to get to any location.

trying to drive to a point manually could work, but that requires that you be
very careful to determine if you are exactly at that point (any error here will
compound later), and at the point you say you are at that point, all belts need
to be tight (and tightening them if they aren’t may move the sled), so I don’t
think it works as well.

David Lang

I likely am misreading your suggestion as I thought it had us moving the sled to the corners, which would require movement without knowing the lengths.

Think etch a sketch, but with 4 controls vs 2 :laughing: . you’d have to move it by making the belts manually retract / comply as you go.

1 Like

I guess either way could work doing it that way.

Dave Elliott wrote:

I likely am misreading your suggestion as I thought it had us moving the sled
to the corners, which would require movement without knowing the lengths.

it would be, but not by saying ‘move left and up’ but by saying 'tighten the top
left belt while I hold this button, then release the top right belt while I hold
this other button.

David Lang

What about if we used only two belts (bottom two on vertical) and retracted and extended only those two. With those two lengths and the known distant between the anchors we have 3 sides and should be able to use fairly simple math to find where we are on the X,Y plane and derive the other 2 lengths, no?

Dave Elliott wrote:

I guess either way could work doing it that way.

internally each of the 4 belts is set to do one of 4 things

  1. do nothing (aka hold)
  2. comply (aka extend), feed out the belt while monitoring the encoder, keep
    feeding as long as the encoder shows movement.
  3. retract the belt at speed X
  4. extend the belt at speed X

to move normally, it is doing a combination of extending some belts while
retracting others, changing the speeds continually to move correctly (there may
be moments when a belt doesn’t move, but they are fairly rare, you would have to
be cutting an arc centered on the anchor with exactly the right radius)

if we don’t know where we are, we can’t do that.

but what we can do is have the user on a horizontal frame set 3 belts to comply
(so they will extend as needed) and then set the 4th to retract and keep doing
it until you hit the limit.

If you are not in the quadrent nearest the anchor you are pulling towards when
you start, some of the other belts will get looser as you pull towards the
anchor (potentially very loose)

if you have a vertical frame, you can’t put the top belts in comply mode or the
weight of the sled will feed out all the belt until the sled hits the ground. If
you start in the top center, and want to retract to the top left, you will have
to extend the top right immediatly (if you just retract the top left, it will
pull you off the top of the workpiece), this will swing the sled down in an arc
around the top left anchor, having the bottom belts go slack. As you then
retract the top left belt, the sled will move along an arc centered on the top
right anchor.

it will be messy, and you will have to watch your slack (possibly every few cm
of movement you pause and tension the belts to keep there from being too much
slack), but it will be better than climbing on a ladder to remove the machine
from the frame.

David Lang

Dave Elliott wrote:

What about if we used only two belts (bottom two on vertical) and retracted
and extended only those two. With those two lengths and the known distant
between the anchors we have 3 sides and should be able to use fairly simple
math to find where we are on the X,Y plane and derive the other 2 lengths, no?

the problem is that until you fully retract a belt, you have no idea what it’s
length is.

or are you suggesting the following:

detach the bottom two belts, retract them fully, then extend them by the amount
that you retracted them, connect them to the anchors, and tension everything.

that should let you calculate where you are and what the other two belts should
be.

depending on how accurate this ends up being, it could work, and would be better
than detaching everything.

I would still want to try to zero out the top two belts to be sure, otherwise
you are putting all your position error into those two belts.

David Lang

You are more or less correct. The idea is to retract bottom two, extend enough to reconnect and tighten and measure. With those two lengths and the known length of the bottom axis, you should be able to derive the other two lengths.

You are right that it all depends on the accuracy of the measurements, but the entire system is dependent on the accuracy of those measurements.

So the belts pull at a certain motor amperage when retracting, maybe you don’t want the machine actually hanging on a belt you are retracting. Keeping that in mind how about after calibration we bore a home hole in the spoil board. So turn on Router run z all the way in and out.

Later when ‘recentering ‘ you would extend the z and ‘hang’ the machine on the bit. Then retract belts in a ‘machine is centered mode’ using a known center. It’s a fifth anchor.

anesbitt wrote:

So the belts pull at a certain motor amperage when retracting, maybe you don¢t
want the machine actually hanging on a belt you are retracting.

as long as the limit is high enough, that shouldn’t be a problem.

Keeping that in mind how about after calibration we bore a home hole in the
spoil board. So turn on Router run z all the way in and out.

Later when ¡recentering ¡ you would extend the z and ¡hang¢ the machine on the
bit. Then retract belts in a ¡machine is centered mode¢ using a known center.
It¢s a fifth anchor.

This will work for a while, the problem will be that the hole will get larger
over time as it’s used. but you can cut an inset and replace it over time.

David Lang