Each restart requires recalibration

Ok, this is getting frustrating…. Each time I reboot the maslow it loses its belt lengths(and yes I do a retract/extend) and refuses to move in x/y axis(although z doesn’t seem to be affected) until I do a recalibrate then all is good. Good thing is that the recalibration only seems to take a few minutes but it is frustrating. Has anyone else come across this problem?

Scott wrote:

Ok, this is getting frustrating…. Each time I reboot the maslow it loses its
belt lengths(and yes I do a retract/extend) and refuses to move in x/y
axis(although z doesn’t seem to be affected) until I do a recalibrate then all
is good. Good thing is that the recalibration only seems to take a few minutes
but it is frustrating. Has anyone else come across this problem?

you should retract/extend/apply tension and hit the red ALARM button but should
not need to recalibrate

I have a PR in waiting for people to test that should save the belt lengths and
avoid the need to retract/extend as long as the belts were tight when you
powered off.

David Lang

1 Like

cott wrote:

Ok, this is getting frustrating…. Each time I reboot the maslow it loses its
belt lengths(and yes I do a retract/extend) and refuses to move in x/y
axis(although z doesn’t seem to be affected) until I do a recalibrate then all
is good. Good thing is that the recalibration only seems to take a few minutes
but it is frustrating. Has anyone else come across this problem?

If you want to test the remembering belt lengths across power off, try running
the firmware you can download from

when you power on, you will still need to hit the alarm button, but then you
should be able to move. try small moves at first, if it goes wrong you may have
to hit power quickly (or risk breaking belts or belts going badly slack)

it’s also possible for odd things to happen if you relax the tension before you
power off, so for testing, don’t power off unless the belts are tight (either
fully retracted or tight in the frame). If you do power off with them slack, it
won’t warn you , but you should do the retract/extend dance before you start
doing anything

David Lang

Hi David, thanks but right now I can not risk breaking belts at the moment. I might order some replacements and then give it a go.

Scott wrote:

Hi David, thanks but right now I can not risk breaking belts at the moment. I
might order some replacements and then give it a go.

understood. it is being worked on, and hopefully my comments above will let you
do the retract/extend without having to do calibration.

David Lang

Are you using the “Apply Tension” button?

Hi Bar, yes I am. I’ll take a screen recording of what is going on next time I do it.

1 Like

I’d like to test this. What exactly am I to download. The link takes me to GitHub but what file am I downloading?

bday wrote:

I¢d like to test this. What exactly am I to download. The link takes me to
GitHub but what file am I downloading?

On that page there is a link to downlaod firmware-package
unzip the file that this downloads and you will have a firmware.bin file
install that on the maslow and test as I noted above.

David Lang

1 Like

Got it. I’ll report this weekend.

1 Like

@dlang when I download, unzip and install the firmware.bin restart and hit the test button should I see a change in the version number. Still shows 1.12 on my screen.

bday wrote:

@dlang when I download, unzip and install the firmware.bin restart and hit the
test button should I see a change in the version number. Still shows 1.12 on
my screen.

That is going to be correct. There is a PR in that names versions via git tags
and shows when you are using something other than a release, but that’s not in
yet.

for the save belts, Ian found a bug in that last night, so I fixed it and built
a new version, try this instead (it was saving the lengths, but not restoring
them)

David Lang

@dlang yea I was going to say that I did try it and it still reported it didn’t know the belt length. I’ll try the correction version. Thanks

@dlang no go. I downloaded, unzipped and uploaded the modified firmware.bin file. I retracted, closed the browser, turned off the power then powered back on extended and applied tension. All so I was starting at a good point. With belts tensioned as requested I then powered down, waited a few, powered back, reset the alarm button and tried to jog down 50mm. nada. Message that Maslow didn’t know the belt lengths. Serial for before and after attached.

Maslow-serial (before power off test).log (4.6 KB)

Maslow-serial (after power off test).log (1.8 KB)

bday wrote:

@dlang no go. I downloaded, unzipped and uploaded the modified firmware.bin file. I retracted, closed the browser, turned off the power then powered back on extended and applied tension. All so I was starting at a good point. With belts tensioned as requested I then powered down, waited a few, powered back, reset the alarm button and tried to jog down 50mm. nada. Message that Maslow didn¢t know the belt lengths. Serial for before and after attached.

a bunch of cleanups, try

David Lang

Hi David,

Can you add a feature to apply tension and check that a certain value is met? And if not met, pause and warn the user they need to retract the belts and re-extend them?

Otherwise, if there is no user warning at all, any unexpected slack or variance between the actual and expected belt length could like you say… cause issues.

2 Likes

I love that idea. I think that when we load the belt position we should always be loading into the “Extended” state. Then the user can press “Apply Tension” which will take a measurement and compare it to the stored anchor point locations. If everything is OK then it will basically immediately transition to the “Ready to Cut” state, but if there is something wrong we’ll catch it right away and prevent ourselves from getting into any trouble.

2 Likes

I disagree, when you are in an extended state, the belts are loose. when you
power up and read the encoder, you only know the position of the encoder, you
don’t know how many times it’s gone around. As a result, you can’t tell the
difference between being at exactly the same point and being off by 40mm.

In the current code, it allows for ± 10mm of difference (1/4 turn each way). If
the reading is outside of this range, it decides that the data is bad and won’t
load it. I picked that as a wide safe zone. in theory you could correct for ±
20mm (1/2 turn each way), but if you go just past 1/2 turn in, it would read
instead as a 1/2 turn out (a 40mm error).

The system has no way to detect this, even in theory.

1 Like

That would all still be true, but this would be an extra check.

Think about the case where someone powers off the machine, disconnects it from the anchor points, then reconnects to the anchor points but accidentally does it reversed (so the down direction is now different). When they power up the machine will try to break itself.

If they pressed apply tension the machine will automatically detect that the anchor points are in a different location and protect itself.

Bar wrote:

That would all still be true, but this would be an extra check.

Think about the case where someone powers off the machine, disconnects it from the anchor points, then reconnects to the anchor points but accidentally does it reversed (so the down direction is now different). When they power up the machine will try to break itself.

If they pressed apply tension the machine will automatically detect that the anchor points are in a different location and protect itself.

First off, with the current code, it would be hard to remove the machine as
there would be tension on the belts.

second, if they did, the frame would have to be very close to a perfect
rectangle, or the current code would detect one of the encoders rotating more
than a 1/4 turn and not accept the reloaded data (so full retract and extend
would be needed)

third, how would apply tension detect that the anchor points are in a different
location any better than the current test?

remember that it doesn’t know how many turns there are on the encoder, just the
current position of the encoder.

remember also that belts don’t all retract at the same speed, so relax tension
followed by apply tension isn’t going to result in the exact same belt lengths

I also doubt that people will want to take the machine off the frame and store
it with the belts extended. that is a recipe for belt tangles, both outside the
machine and internally on the spools.

Ian has commented that it would be nice to be able to relax tension and have it
save the position still. I am reluctant to do this due to the reliability issues
due to possible belt movement, but thinking about it, it may work under limited
conditions:

  1. tension is released, but not by much. possibly instead of powering out, just
    set a coupld of the belts to comply for 10mm or so (how much movement is needed
    to relax against belt stretch)

  2. it would work better for an upright frame and have the top belts not move at
    all for relax/apply tension

  3. I don’t think this could be something that happens automatically like the
    current code, I think it would need to be a command to ‘park’ the machine and
    shut it down. the process of parking the machine would need to save the belt
    lengths and encoder data before relaxing tension, after relaxing tension, and
    that the tension was relaxed

  4. if the machine is detached, there will still be a risk due to the encoder
    positions repeating exactly every 40mm. it’s the sort of thing that will mostly
    work, but sometimes not, and there is no way to detect this. the best I could
    think of is to have a popup at startup ‘if the machine has been detached from
    the anchors, the coordinates may be wrong, do you want to use them?’

a couple notes on the current code

if you detach the machine and retract-all, then when you power on, you don’t
need to retract all, you can go right to extend

for those worrying about leving the machine on the frame with the belts under
tension, I’ll point out that if you store the machine with the belts fully
retracted, they are under tension on the spools.

3d printers and other machines that use these belts leave them under tension all
the time (possibly not as much tension as we apply, but under tension.

David Lang