After v1.15 → v1.20 upgrade, Apply Tension always fails — bottom-belt deviation ~40mm

Upgraded a working Maslow M4 from FluidNC v1.15 → v1.20. Kept my calibration (didn’t upload the stock maslow.yaml). Same physical setup that cut fine yesterday now refuses to get past Apply Tension.

Center point deviation always reports top belts ~0-5mm off, bottom belts −37 to −44mm off. Threshold is 12mm so I never reach “Ready to Cut”.

What I’ve ruled out:

  • Anchors haven’t moved (checked physically)
  • Spool wraps look clean
  • Sled IS physically centered — measured with a tape, within ¼" of true center. So the 1.5" deviation reading is a real model-vs-reality mismatch, not sled drift.
  • Multiple Retract → Extend → Apply Tension cycles don’t help; result is the same every time.

Questions:

  1. Is this a known v1.20 regression after upgrading from v1.15 with preserved calibration?
  2. Any recovery path before I commit to a full recalibration run?
  3. Directions to the nearest bridge where I can throw this thing off of

Maslow M4, FluidNC v1.20, plywood-on-foam.

Maslow-serial (13).log (4.6 KB)

Also wanted to add that I had zero issues with applying tension and getting ready to cut using 1.15.

did you save your maslow.yaml from before the upgrade? and verify that the
upgrade did not change it?

David Lang

Thanks, I just quadrupled checked that. It did not get upgraded. It’s my original one from 1.15.

Wes wrote:

Thanks, I just quadrupled checked that. It did not get upgraded. It’s my original one from 1.15.

that is odd, can you post your anchor locations and the log that is reporting
the belt lengths that don’t compute? we can double-check the math.

the ‘easy’ thing to try is to save a copy of the maslow.yaml and then do another
find anchors. but if we can dig down to try and figure out what went wrong as
well.

David Lang

Looking at your log file, I notice the Z position value is way outside limits, Maslow thinks it’s 174.710mm above the work surface. Try setting it to a more reasonable value. Because the Maslow is compensating for the wrong height it is expecting to roll out more belt. Adjust the height, Release Tension and Apply Tension and it should come good.

MSG:INFO: Current z-axis position loaded as: 174.710]
[MSG:INFO: Starting Maslow Version v1.20]
[MSG:INFO: Maslow update loop registered with hardware watchdog]
[MSG:INFO: Channel auto report interval set to 50 ms]
Release Tension

The next version release will provide a warning for this condition.

1 Like

Ian Abbott wrote:

Looking at your log file, I notice the Z position value is way outside limits, Maslow thinks it’s 174.710mm above the work surface. Try setting it to a more reasonable value. Because the Maslow is compensating for the wrong height it is expecting to roll out more belt. Adjust the height, Release Tension and Apply Tension and it should come good.

MSG:INFO: Current z-axis position loaded as: 174.710]
[MSG:INFO: Starting Maslow Version v1.20]
[MSG:INFO: Maslow update loop registered with hardware watchdog]
[MSG:INFO: Channel auto report interval set to 50 ms]
Release Tension

The next version release will provide a warning for this condition.

ahh, missed that. yes. you sometimes need to reset the Z-zero height
after an unclean shutdown, run the router all the way down, then in settings
there is a set z-zero that will set it properly (in the small text between the
buttons and the logs, you will see the Zm and Z values, Zm is the machine
coordinates, what is way off here, Z is relative to th Z home you set, aka the
top of your material)

David Lang

Thank you all. I’ll give that a try. Not sure how that value got set to that number. That is 6.8 inches… how does it even get set that high?

I’ve noticed it when a new version is loaded occasionally, and can also happen when the machine not shutdown correctly (after a fault etc). The next version incorporates a warning dialog if the numbers aren’t sane.

Does the sane number check also apply to tool path cutting thickness? My keyboard glitched out the other day and I sent a command to cut something 80 mm thick, which is impossible for this machine.

1 Like

Yes, it warns you, but you can still override the warning. You might want to lift the Maslow off the screws for instance. You can try it here, bearing in mind this version is still under testing.
index.html.gz (137.7 KB)
firmware.bin (1.9 MB)

1 Like

Tried it — jogged Z all the way to the bottom, clicked Set Z-Stop. MPos Z reset to 0, homed:true again, belt extension counters cleaned up. Big improvement on Apply Tension: bottom-belt deviation went from −44mm to −16mm (top belts now +2-3mm, bottom symmetric at −16mm).

Still 4mm over the 12mm threshold though, so we’re not getting to Ready to Cut.

Maslow-serial (15).log (33.0 KB)

Suggest try Retract, Extend and Reconnect Anchors. I expected that to work. How good was your fitness after the last find anchors?

No dice. :frowning:

My original anchoring calibration did not go well from memory, I believe one of the moderator experts sent me a custom file. Again that was working a few days ago with previous firmware but not with new firmware.

Here’s a recap of my calibration history.

  • Calibration was running all night without converging — fitness scores stuck around 0.025-0.030, repeatedly hitting “Calculated Fitness Too Low. The process will automatically try again.”
  • I posted my CLBM measurement data from a 6-waypoint run.
  • Bar ran the numbers through his copy of the calibration and produced anchor values with fitness 1.6158 (“looks perfect”) — but they implied a frame over 5m wide, so when I pasted them in, FluidNC bombed with: “Frame side lengths are outside valid range (500-5000mm). Top=5219.14mm, Right=3101.51mm, Bottom=5429mm, Left=3129.8mm.”
  • ian_ab re-ran the same CLBM data and produced a working set:
    Maslow_tlX: -4.5, Maslow_tlY: 4040.1
    Maslow_trX: 4570.1, Maslow_trY: 4041.9
    Maslow_blX: 0.0, Maslow_blY: 0.0
    Maslow_brX: 4532.2, Maslow_brY: 0.0
    (Fitness 1.2785, frame within the 5m limit)
  • I pasted those into maslow.yaml manually via the FluidNC UI; the machine initialized and a 3x3 calibration completed successfully.

Try a Find Anchors again and post serial log.
Did you try the new version firmware and index.html.gz I sent?
Find anchors should quit if it can’t get a good result quickly.
can you also post your maslow.yaml file (drag and drop is the easiest way)

Update: downgraded back to v1.15 and Apply Tension works again. Posting the recap in case anyone hits the same wall.

The problem on v1.20 (after upgrade): Apply Tension consistently failed with bottom-belt deviation of 25-44mm (threshold 12mm). Top belts were always within tolerance, only the bottom belts complained. Tried everything I could think of inside the firmware:

  • $SETZSTOP to fix corrupted MPos Z (this is the post-crash recovery move — brought deviation from -44mm down to -16mm, but never below 12)
  • Maslow_workThickness adjustments (39 → 49 → 34 → 39 — moved the needle ~0.3mm per 10mm of thickness change, not enough)
  • Z height jogs (+/- 32mm of Z change moved deviation by ~2mm)
  • Multiple retract/extend cycles (each cycle actually added 4-6mm of error)

Couldn’t get a single Apply Tension to pass on v1.20. Anchors and physical setup are fine — same hardware was working pre-upgrade.

The downgrade: OTA-flashed v1.15 firmware via /updatefw. Backed up maslow.yaml, config-bak.yaml, preferences.json, and the live index.html.gz before flashing — the firmware bin only touches the app partition, so littlefs survives.

After the OTA upload, the device went into a soft-brick state for a few minutes — pinged fine but HTTP and WebSocket both hung. A single power-cycle brought it back cleanly on v1.15. If your OTA leaves it unresponsive, try power-cycling before reaching for USB.

The yaml gotcha: v1.15 booted with my v1.20-era yaml and rejected four settings it didn’t recognize:

[MSG:ERR: Invalid setting or command: /Maslow_Work_Area_X]
[MSG:ERR: Invalid setting or command: /Maslow_Work_Area_Y]
[MSG:ERR: Invalid setting or command: /Maslow_Work_Area_Center_Offset_X]
[MSG:ERR: Invalid setting or command: /Maslow_Work_Area_Center_Offset_Y]

Apply Tension on v1.15 with the v1.20 yaml also failed — different error this time (“Measurement error, measurements are not within 2.5 mm of each other”) but still no go. Restored my pre-v1.20 backup of maslow.yaml, power-cycled to load it, and that’s when things finally clicked.

Result on v1.15 with the matching yaml:

  • Retract All — clean, 11 seconds, all four belts pulled tight
  • Extend All — clean, 3 minutes, all belts extended to 2873mm
  • Apply Tension — passed first try: Center point deviation within 12.000mm, your coordinate system is accurate
  • State: Ready to Cut

Sent another Release Tension → Apply Tension cycle just to confirm it wasn’t a fluke. Passed again.

Bottom line: if your hardware was happily cutting on v1.15 and Apply Tension started failing after upgrading to v1.20, downgrading firmware and restoring the matching yaml fixed it for me. The yaml swap turned out to be load-bearing — v1.15 with a v1.20 yaml is not the same as v1.15 with a v1.15 yaml.

Anchor coordinates carry over across versions just fine. No re-calibration needed. Big thanks to @bar and @ian_ab for the help diagnosing earlier in this thread.

Sorry I did not try your separate firmware. I think I’m happy back at 1.15 again. Just completed my first perfect cut with it.

1 Like

Wes wrote:

Here’s a recap of my calibration history.

  • Calibration was running all night without converging — fitness scores stuck around 0.025-0.030, repeatedly hitting “Calculated Fitness Too Low. The process will automatically try again.”
  • I posted my CLBM measurement data from a 6-waypoint run.
  • Bar ran the numbers through his copy of the calibration and produced anchor values with fitness 1.6158 (“looks perfect”) — but they implied a frame over 5m wide, so when I pasted them in, FluidNC bombed with: “Frame side lengths are outside valid range (500-5000mm). Top=5219.14mm, Right=3101.51mm, Bottom=5429mm, Left=3129.8mm.”
  • ian_ab re-ran the same CLBM data and produced a working set:
    Maslow_tlX: -4.5, Maslow_tlY: 4040.1
    Maslow_trX: 4570.1, Maslow_trY: 4041.9
    Maslow_blX: 0.0, Maslow_blY: 0.0
    Maslow_brX: 4532.2, Maslow_brY: 0.0
    (Fitness 1.2785, frame within the 5m limit)
  • I pasted those into maslow.yaml manually via the FluidNC UI; the machine initialized and a 3x3 calibration completed successfully.

a 3x3 calibration may give you nice looking numbers, but it’s not going to give
you a good measurement of the machine.

I agree you may need to do the calibration again (I don’t know why it’s not
working with your old numbers)

if you take a tampe measure and measure between the points, are the numbers that
ian_ab sent you plausible?

David Lang

let us know when you are willing to troubleshoot futher. sticking with v1.15
forever will leave you out of a lot of future improvements.

David Lang