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.