Testing needed on Pending patches

There has been a lot of cleanup and handling of corner cases on the auto-grid-size (in the green) PR, so it needs some testing. I especially need someone with a good large frame to set the spacing between points small so that it generates a very large number of points (this is a setting in manlow.yaml, defaulting to 400mm betwen points)

I’ve been going through the code manually to trace the workflow and I caught a few problems, including
deciding on the grid size before we take the first measurements, so we don’t really know the frame size
allocate the array to hold the list of points before we calculated how many points we were going to have
and some others that came from those.

Not good. Powered down the Maslow, powered it back up. Started fluidterm on USB port.

All looked good, then I clicked on one of the arrow keys and all 4 belts started unwinding, so I hit the power. It pushed out about 6 inches of belt before power went off from all belts. Serial port disconnected is where I powered down, then restarted Maslow

serialportdump2.txt (8.6 KB)

Maslow-serial (92).log (2.6 KB)

Logs follow:

did you do the retract/extend and jogging before what is logged? or was this still setup from the last failed run with the same numbers?

I’m going to dig into things tomorrow afternoon (az time) and find what $ commands are there that will let me get position and status reports so that you can run them after jogging (before shutting down) and after startup (before you start jogging)

it did load the belt lengths and it set the state to ready-to-cut

[MSG:DBG: Belt positions loaded from NVS: TL=2061.511 TR=1814.033 BL=1967.473 BR=1895.724 newState=7]

I’m busy for the next hour or so. will get back to you later. No I this run i just loaded powered down and restarted the Maslow.

Started again this AM

Hooked up the usb connection, powered up the Maslow and connected by usb.
logged in and did the retract extend dance. jogged the Maslow a few times.

Powered down and back up, set the XY to 10mm and then tried to jog. Maslow released a small amount of belt on all motors similar to release tension then tried apply tension got message
Cannot take slack until belts have been extended

Maslow-serial (94).log (2.8 KB)

Maslow-serial (93).log (6.2 KB)

SerialDump3_MaslowSerial92_93.txt (32.5 KB)

Before powerdown From Dumpfile

[MSG:DBG: Belt positions saved to NVS: TL=1986.787 TR=1890.431 BL=1892.042 BR=1967.398 state=7]

After Powerup

[MSG:DBG: Belt positions loaded from NVS: TL=1986.787 TR=1890.431 BL=1892.042 BR=1967.398 newState=7]

Any progress on $ commands?

not yet,

If you can get me the logs before the shutdown showing the belt lengths that are
being saved, we can then compare them to the belt lengths found and loaded.

my guess at this point is some other internal variables aren’t getting
re-initialized.

I did ask for a fix for the spools slowly running out, and it found a corner
case that could account for it.

read:

Logs 93 and 94 above are the before and after which I ran this morning, the SerialDump is corresponding to 93 & 94. for some reason it saves as 92-93 but that is incorrect

Ian Abbott wrote:

Logs 93 and 94 above are the before and after which I ran this morning, the
SerialDump is corresponding to 93 & 94. for some reason it saves as 92-93 but
that is incorrect

Thanks, I think it found the problem (extended* variables not being set) but
instead of just setting them, it added a whole new set of functions to save and
restore the belt positions (without removing the first set)…

I need to go unload a trailer in my driveway, if it fails again, I may just
hand-peck those changes into the restore function and have you test that.

David Lang

SerialDump95-96.txt (28.0 KB)

Maslow-serial (95).log (5.4 KB)

Maslow-serial (96).log (2.7 KB)

I may have panicked the 1st time it started feeding out belts, it looks more like it was going to Release tension, although the status doesn’t match. State is Ready to cut, but the belts are slack

before (only partial recorded in dump file)

L=1886.233 BR=1975.107 state=7]

After restart

[MSG:DBG: Belt positions loaded from NVS: TL=1979.111 TR=1896.422 BL=1886.233 BR]

No value for BR

re: belt postion

give this one a try

if you jog, and pause, you should see in the log that it saves the belt positon
if you fully retract and pause, you should see in the log that it saves the belt
position.

when you do anything else after this, you should see it say that it’s marking
the belt positon stale

if you restart with the belt position stale, you should have to do the full
retract/extend/apply tension dance.

if you restart with the belt position not stale, you should be able to jog, cut,
etc without having to do more (except possibly disable the alarm, I’m not sure
what it does, and I’m not sure what the right behavior is, I can see arguments
either way)

David Lang

System thinks I have posted too much, and I should give others a share!!

What happened:

loaded the new version (somehow my Maslow.yaml got corrupted so I had to restore it)
powered down, did the dance, moved the Maslow a few times. I didn’t turn on debug in the yaml file so didn’t get all the current readings now, much cleaner.
Powered off again and restarted, comes up in ready to cut. Tried a jog and all 4 motors ran out some belt. tried again and a about 50 mm rolled out on all belts.

Maslow-serial (97).log (5.7 KB) before

Maslow-serial (98).log (6.0 KB) after

SerialDump_98-97.txt (12.8 KB)

System thinks I have posted too much, and I should give others a share!!

What happened:

loaded the new version (somehow my Maslow.yaml got corrupted so I had to restore it)
powered down, did the dance, moved the Maslow a few times. I didn¢t turn on debug in the yaml file so didn¢t get all the current readings now, much cleaner.
Powered off again and restarted, comes up in ready to cut. Tried a jog and all 4 motors ran out some belt. tried again and a about 50 mm rolled out on all belts.

would this be about a half second worth of feed?

it thinks it found it, try this one

David Lang

Not yet same again. Forgot to save the before but it is in dump file

SerialDump99.txt (12.5 KB)

Maslow-serial (99).log (3.7 KB)
Tried Release Tension and Apply Tension, appeared to work but got not ready to move message.

to make sure I’m clear on what you did.

you restarted, then did a jog and it relaxed the belts (and saved the new belt lengths)

from the serial logs, we see the belt lengths get loaded

[MSG:INFO: loadBeltPositions() called]
[MSG:INFO: Validity check: ret=0 validityMarker=1]
[MSG:INFO: Belt position load: Set currentState directly to READY_TO_CUT]
[MSG:DBG: Set Calibration extended* variables to true (belts are extended)]
[MSG:DBG: Belt positions loaded from NVS: TL=1996.106 TR=1885.514 BL=1896.078 BR=1958.]
[MSG:INFO: Starting Maslow Version 1.12]

then in the UI we see you jog and it save the belt lengths
JogTo: '$J=G91F2500X10

[MSG:DBG: Belt positions saved to NVS: TL=9.931 TR=16.061 BL=14.633 BR=11.198 state=7]

and in the serial logs, we see the belt positions saved
[MSG:DBG: Belt positions saved to NVS: TL=9.931 TR=16.061 BL=14.633 BR=11.198 state=7]

(same length, good).

then you tried to apply tension, but couldn’t, so you tried relaxing tension and then applying tension, but by then the belt lengths are bad

these logs are extremely helpful, they log:

[MSG:INFO: Requesting state change from Ready To Cut to Taking Slack]
[MSG:INFO: Cannot take slack until the belts have been extended]

which tells us that there is still confusion over what the state is.

To be clear, the Maslow did not move, it just pushed out all 4 belts

It may have found it. the belt positions loaded were:
TL=1996.106 TR=1885.514 BL=1896.078 BR=1958
you tried to do a small jog and it then saved the belt positions as:
TL=9.931 TR=16.061 BL=14.633 BR=11.198

this is a massive difference. It found that it was setting their length in mm, but not setting the encoder positions. It claims to have done that now.

it also misunderstood the problem and made it possible to apply tension when it’s ready-to-cut. Given the problem that people have with slack belts, I’m not sure that’s a bad change. @bar ??? it should not be needed, but I think that after applying slack it figures out where it is, so I don’t think it will hurt anything.

so here is a version that sets the encoders correctly, let’s see what happens here.

hold off on this one, it found a bug.

SerialDump_eureka.txt (18.5 KB)

Maslow-serial - 2025-10-06T194930.618.log (2.9 KB)

Maslow-serial - 2025-10-06T194410.872.log (3.2 KB)

As you may have guessed from the filename - it worked - Congratulations

After a power reset I could move Maslow as expected.
After a Release tension folowed by power reset - no longer valid.

PS have you changed the log file names