Inaccurate Cuts

After 2 failed attempts, I succeeded at completing a test cut today. But the accuracy was not good. I made (4) 152.4 mm circles out of 1/2" plywood. They came out oval. They were 153mm in the X direction and 147mm in the Y direction. I stacked them on top of each other and they were all within .5mm of being identical to each other. So, I assume that my Y calibration is off. They were also oval on the 2 failed attempts and were off by about the same 6mm.

Each time, I ran a calibration immediately prior to doing the cut (because I had other issues that I was hoping to fix). So there is consistency in the calibration. The only visible issue that I noticed was that when the cutting finished, the belt has risen up almost 2" on the bolt at the bottom right anchor, the top left rose 3/8" and the other 2 did not rise. These are 3/8" bolts screwed into concrete expansion anchors with a plastic spacer to raise it up 2" to match my spoil board.

I am using horizontal orientation and my anchors are 9’-10" x 12’-2". My calibration settings were 500mm x 500mm with 3X3 and 1300 retraction and calibration tension. This Maslow runs a calibration quickly and consistently with firmware 1.13 but it does not remember the belt length when I detach it from the anchors and it gets stuck in the “extend” then “retract” loop a lot before it will finally calibrate. And I can never get the belts to extend when the machine is anchored no matter how hard I pull and rock, even with the retraction tension set to 100. It needs to have all the tension relieved and then the belts extend easily. Is that the way it is supposed to be? I’m new here.

What should I try next to get these ovals to be circles? A bigger calibration size? Here is my Serial File:Serial Messages
Index.html Version: v1.13
[MSG:INFO: Channel auto report interval set to 50 ms]
[MSG:INFO: FluidNC v1.13 (Maslow-Main-13c33c4c)]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.7-dirty]
[MSG:INFO: Local filesystem type is littlefs]
[MSG:INFO: Configuration file:maslow.yaml]
[MSG:INFO: Machine Maslow S3 Board]
[MSG:INFO: Board Maslow]
[MSG:INFO: UART1 Tx:gpio.1 Rx:gpio.2 RTS:NO_PIN Baud:115200]
[MSG:INFO: SPI SCK:gpio.12 MOSI:gpio.11 MISO:gpio.13]
[MSG:INFO: SD Card cs_pin:gpio.10 detect:NO_PIN freq:8000000]
[MSG:INFO: Stepping:Timed Pulse:4us Dsbl Delay:0us Dir Delay:0us Idle Delay:240ms]
[MSG:INFO: Axis count 5]
[MSG:INFO: Axis A (-5000.000,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: Axis B (-5000.000,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: Axis C (-5000.000,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: Axis D (-5000.000,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: Axis Z (-100.000,0.000)]
[MSG:INFO: Motor0]
[MSG:INFO: tmc_2209 UART1 Addr:0 Step:gpio.15 Dir:gpio.16 Disable:NO_PIN R:0.110]
[MSG:INFO: Motor1]
[MSG:INFO: tmc_2209 UART1 Addr:1 Step:gpio.46 Dir:gpio.38 Disable:NO_PIN R:0.110]
[MSG:INFO: Z Axis driver test passed]
[MSG:INFO: Z2 Axis driver test passed]
[MSG:INFO: Using spindle NoSpindle]
[MSG:INFO: Connecting to STA SSID:EPBNetwork2]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting..]
[MSG:INFO: No SSID]
[MSG:INFO: AP SSID maslow IP 192.168.0.1 mask 255.255.255.0 channel 1]
[MSG:INFO: AP started]
[MSG:INFO: WiFi on]
[MSG:INFO: Captive Portal Started]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
Grbl 1.13 [FluidNC v1.13 (Maslow-Main-13c33c4c) (wifi) ‘$’ for help]
Grbl 1.13 [FluidNC v1.13 (Maslow-Main-13c33c4c) (wifi) ‘$’ for help]
[MSG:INFO: ‘$H’|‘$X’ to unlock]
[MSG:INFO: Encoder connected on Top Left]
[MSG:INFO: Motor detected on Top Left]
[MSG:INFO: Encoder connected on Top Right]
[MSG:INFO: Motor detected on Top Right]
[MSG:INFO: Encoder connected on Bottom Left]
[MSG:INFO: Motor detected on Bottom Left]
[MSG:INFO: Encoder connected on Bottom Right]
[MSG:INFO: Motor detected on Bottom Right]
[MSG:INFO: Center coordinates updated in MaslowKinematics: X=1869.110]
[MSG:INFO: Motor1]
[MSG:INFO: tmc_2209 UART1 Addr:1 Step:gpio.46 Dir:gpio.38 Disable:NO_PIN R:0.110]
[MSG:INFO: Z Axis driver test passed]
[MSG:INFO: Z2 Axis driver test passed]
[MSG:INFO: Using spindle NoSpindle]
[MSG:INFO: Connecting to STA SSID:EPBNetwork2]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting..]
[MSG:INFO: No SSID]
[MSG:INFO: AP SSID maslow IP 192.168.0.1 mask 255.255.255.0 channel 1]
[MSG:INFO: AP started]
[MSG:INFO: WiFi on]
[MSG:INFO: Captive Portal Started]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
Grbl 1.13 [FluidNC v1.13 (Maslow-Main-13c33c4c) (wifi) ‘$’ for help]
Grbl 1.13 [FluidNC v1.13 (Maslow-Main-13c33c4c) (wifi) ‘$’ for help]
[MSG:INFO: ‘$H’|‘$X’ to unlock]
[MSG:INFO: Encoder connected on Top Left]
[MSG:INFO: Motor detected on Top Left]
[MSG:INFO: Encoder connected on Top Right]
[MSG:INFO: Motor detected on Top Right]
[MSG:INFO: Encoder connected on Bottom Left]
[MSG:INFO: Motor detected on Bottom Left]
[MSG:INFO: Encoder connected on Bottom Right]
[MSG:INFO: Motor detected on Bottom Right]
[MSG:INFO: Center coordinates updated in MaslowKinematics: X=1869.[MSG:INFO: loadBeltPositions() called]
[MSG:INFO: Validity check: ret=0 validityMarker=0]
[MSG:INFO: Saved belt positions in NVS are marked as stale/invalid (value=0) - machine will remain in UNKNOWN state until belts are calibrated/extended]
[MSG:INFO: Starting Maslow Version v1.13-6-g13c33c4c]
[MSG:INFO: Channel auto report interval set to 50 ms]
[MSG:INFO: Caution: Unlocked]
Test
Index.html Version: v1.13
[MSG:INFO: Firmware Version: v1.13-6-g13c33c4c]
[MSG:INFO: I2C Timeout: ]
[MSG:INFO: 10]
[MSG:INFO: All tests passed on Top Left]
[MSG:INFO: All tests passed on Top Right]
[MSG:INFO: All tests passed on Bottom Left]
[MSG:INFO: All tests passed on Bottom Right]
Extend All
[MSG:INFO: Extending all belts]
[MSG:INFO: Requesting state change from Unknown to Extending Belts]
[MSG:INFO: Cannot extend the belts until they have been retracted]
Retract All
[MSG:INFO: Retracting all belts]
[MSG:INFO: Requesting state change from Unknown to Retracting Belts]
[MSG:INFO: Succeeded]
[MSG:INFO: Bottom Left pulled tight with offset -1861.701]
[MSG:INFO: Top Right pulled tight with offset -1885.954]
[MSG:INFO: Bottom Right pulled tight with offset -1955.342]
[MSG:INFO: Top Left pulled tight with offset -1842.720]
[MSG:INFO: Requesting state change from Retracting Belts to Belts Retracted]
[MSG:INFO: Succeeded]
Calibrate
[MSG:INFO: Requesting state change from Belts Retracted to Calibrating]
[MSG:INFO: Cannot start calibration until the belts have been extended]
Extend All
[MSG:INFO: Extending all belts]
[MSG:INFO: Requesting state change from Belts Retracted to Extending Belts]
[MSG:INFO: Center coordinates updated in MaslowKinematics: X=1869.590 Y=1463.819]
[MSG:INFO: Succeeded]
Extend All
[MSG:INFO: Extending all belts]
[MSG:INFO: Requesting state change from Extending Belts to Extending Belts]
[MSG:INFO: Cannot extend the belts until they have been retracted]
Extend All
[MSG:INFO: Extending all belts]
[MSG:INFO: Requesting state change from Extending Belts to Extending Belts]
[MSG:INFO: Cannot extend the belts until they have been retracted]
Apply Tension
[MSG:INFO: Requesting state change from Extending Belts to Taking Slack]
[MSG:INFO: Cannot take slack until the belts have been extended]
Extend All
[MSG:INFO: Extending all belts]
[MSG:INFO: Requesting state change from Extending Belts to Extending Belts]
[MSG:INFO: Cannot extend the belts until they have been retracted]
Retract All
[MSG:INFO: Retracting all belts]
[MSG:INFO: Requesting state change from Extending Belts to Retracting Belts]
[MSG:INFO: Succeeded]
[MSG:INFO: Bottom Left pulled tight with offset -528.001]
[MSG:INFO: Top Left pulled tight with offset -496.662]
[MSG:INFO: Bottom Right pulled tight with offset -2004.545]
[MSG:INFO: Top Right pulled tight with offset -2038.825]
[MSG:INFO: Requesting state change from Retracting Belts to Belts Retracted]
[MSG:INFO: Succeeded]
Retract All
[MSG:INFO: Retracting all belts]
[MSG:INFO: Requesting state change from Belts Retracted to Retracting Belts]
[MSG:INFO: Succeeded]
[MSG:INFO: Bottom Right pulled tight with offset 0.032]
[MSG:INFO: Top Right pulled tight with offset 0.000]
[MSG:INFO: Bottom Left pulled tight with offset -1892.782]
[MSG:INFO: Top Left pulled tight with offset -1943.918]
[MSG:INFO: Requesting state change from Retracting Belts to Belts Retracted]
[MSG:INFO: Succeeded]
Extend All
[MSG:INFO: Extending all belts]
[MSG:INFO: Requesting state change from Belts Retracted to Extending Belts]
[MSG:INFO: Center coordinates updated in MaslowKinematics: X=1869.590 Y=1463.819]
[MSG:INFO: Succeeded]
[MSG:INFO: All belts extended to 2400.000mm]
[MSG:INFO: Requesting state change from Extending Belts to Belts Extended]
[MSG:INFO: Succeeded]
Extend All
[MSG:INFO: Extending all belts]
[MSG:INFO: Requesting state change from Belts Extended to Extending Belts]
[MSG:INFO: Center coordinates updated in MaslowKinematics: X=1869.590 Y=1463.819]
[MSG:INFO: Succeeded]
[MSG:INFO: All belts extended to 2450.000mm]
[MSG:INFO: Requesting state change from Extending Belts to Belts Extended]
[MSG:INFO: Succeeded]
Calibrate
[MSG:INFO: Requesting state change from Belts Extended to Calibrating]
[MSG:INFO: Calibration starting in HORIZONTAL orientation mode]
[MSG:INFO: Setting z-stop position]
[MSG:INFO: Center coordinates updated in MaslowKinematics: X=1869.590 Y=1463.819]
[MSG:INFO: Machine Position found as X: 18.976 Y: -374.169]
[MSG:INFO: Setting motor positions from hardware readings:]
[MSG:INFO: TL: 2464.887 TR: 2463.963 BL: 2463.985 BR: 2466.143]
[MSG:INFO: Succeeded]
[MSG:INFO: Measured waypoint 0]
[MSG:INFO: Center point off by: TL: 0.000 TR: 0.000 BL: -5.276 BR: -9.235]
[MSG:INFO: Machine Position computed as X: 7.249 Y: -8.356]
[MSG:INFO: Measured waypoint 1]
[MSG:INFO: Measured waypoint 2]
[MSG:INFO: Measured waypoint 3]
[MSG:INFO: Measured waypoint 4]
[MSG:INFO: Measured waypoint 5]
[MSG:INFO: Requesting state change from Calibrating to Calibration Computing]
[MSG:INFO: Succeeded]
CLBM:[{bl:2369.82, br:2368.80, tr:2382.48, tl:2367.34},{bl:2485.60, br:2266.37, tr:2272.19, tl:2474.81},{bl:2577.30, br:2349.08, tr:2176.42, tl:2407.05},{bl:2475.25, br:2459.38, tr:2283.16, tl:2284.37},{bl:2362.99, br:2574.96, tr:2406.22, tl:2162.61},{bl:2262.97, br:2502.24, tr:2492.49, tl:2241.55},]
Computing… This may take several minutesInitial guess fitness: 0.2226311
Frame dimensions: 3738.4mm x 2908.0mm (aspect ratio: 1.29:1)
Initial fitness >= 0.1 and frame is not square, skipping rectangular optimization and using initial guess directly.
Fitness: 1.1740033 in 100
Fitness: 1.1828775 in 200
Fitness: 1.2034412 in 300
Fitness: 1.2034412 in 400
Fitness: 1.2034412 in 500
Fitness: 1.2034412 in 600
Fitness: 1.2034412 in 700
Fitness: 1.2034412 in 800
Fitness: 1.2034412 in 900
Fitness: 1.2034412 in 1000
Fitness: 1.2034412 in 1100
Fitness: 1.2034412 in 1200

Calibration values:
Fitness: 1.203441264364275
Maslow_tlX: 11.7
Maslow_tlY: 2912.9
Maslow_trX: 3741.2
Maslow_trY: 2932.3
Maslow_blX: 0.0
Maslow_blY: 0.0
Maslow_brX: 3748.9
Maslow_brY: 0.0
A command to save these values has been successfully sent for you. Please check for any error messages.
Calibrate
[MSG:INFO: Requesting state change from Calibration Computing to Calibrating]
[MSG:INFO: Calibration starting in HORIZONTAL orientation mode]
[MSG:INFO: Setting z-stop position]
[MSG:INFO: Center coordinates updated in MaslowKinematics: X=1869.590 Y=1463.819]
[MSG:INFO: Machine Position found as X: -146.291 Y: 1.665]
[MSG:INFO: Setting motor positions from hardware readings:]
[MSG:INFO: TL: 2090.552 TR: 2341.959 BL: 2110.660 BR: 2350.161]
[MSG:INFO: Succeeded]
[MSG:INFO: Measured waypoint 6]
[MSG:INFO: Measured waypoint 7]
[MSG:INFO: Measured waypoint 8]
[MSG:INFO: Measured waypoint 9]
[MSG:INFO: Measured waypoint 10]
[MSG:INFO: Measured waypoint 11]
[MSG:INFO: Measured waypoint 12]
[MSG:INFO: Measured waypoint 13]
[MSG:INFO: Measured waypoint 14]
[MSG:INFO: Requesting state change from Calibrating to Calibration Computing]
[MSG:INFO: Succeeded]
CLBM:[{bl:2369.82, br:2368.80, tr:2382.48, tl:2367.34},{bl:2485.60, br:2266.37, tr:2272.19, tl:2474.81},{bl:2577.30, br:2349.08, tr:2176.42, tl:2407.05},{bl:2475.25, br:2459.38, tr:2283.16, tl:2284.37},{bl:2362.99, br:2574.96, tr:2406.22, tl:2162.61},{bl:2262.97, br:2502.24, tr:2492.49, tl:2241.55},{bl:2370.08, br:2388.10, tr:2384.84, tl:2351.46},{bl:2233.02, br:2241.23, tr:2534.07, tl:2513.52},{bl:2029.83, br:2445.36, tr:2721.15, tl:2344.37},{bl:2179.56, br:2580.95, tr:2584.70, tl:2169.71},{bl:2352.74, br:2729.18, tr:2450.44, tl:2010.41},{bl:2530.27, br:2549.05, tr:2239.67, tl:2206.02},{bl:2720.88, br:2370.05, tr:2034.58, tl:2419.51},{bl:2580.16, br:2195.37, tr:2183.98, tl:2554.64},{bl:2446.36, br:2036.37, tr:2355.54, tl:2703.47},]
Computing… This may take several minutesInitial guess fitness: 1.0456351
Frame dimensions: 3729.5mm x 2912.9mm (aspect ratio: 1.28:1)
Initial fitness >= 0.1 and frame is not square, skipping rectangular optimization and using initial guess directly.
Fitness: 1.1540774 in 100
Fitness: 1.1833064 in 200
Fitness: 1.1836694 in 300
Fitness: 1.1836694 in 400
Fitness: 1.1836694 in 500
Fitness: 1.1836694 in 600
Fitness: 1.1836694 in 700
Fitness: 1.1836694 in 800
Fitness: 1.1836694 in 900
Fitness: 1.1836694 in 1000
Fitness: 1.1836694 in 1100
Fitness: 1.1836694 in 1200

Calibration values:
Fitness: 1.183669386936196
Maslow_tlX: 12.6
Maslow_tlY: 2914.1
Maslow_trX: 3744.1
Maslow_trY: 2928.1
Maslow_blX: 0.0
Maslow_blY: 0.0
Maslow_brX: 3749.7
Maslow_brY: 0.0
A command to save these values has been successfully sent for you. Please check for any error messages.
Calibrate
[MSG:INFO: Requesting state change from Calibration Computing to Calibrating]
[MSG:INFO: Calibration starting in HORIZONTAL orientation mode]
[MSG:INFO: Setting z-stop position]
[MSG:INFO: Center coordinates updated in MaslowKinematics: X=1869.590 Y=1463.819]
[MSG:INFO: Machine Position found as X: 250.892 Y: -242.525]
[MSG:INFO: Setting motor positions from hardware readings:]
[MSG:INFO: TL: 2552.031 TR: 2203.012 BL: 2293.271 BR: 1884.741]
[MSG:INFO: Succeeded]
[MSG:INFO: Measured waypoint 15]
[MSG:INFO: Measured waypoint 16]
[MSG:INFO: Requesting state change from Calibrating to Calibration Computing]
[MSG:INFO: Succeeded]
CLBM:[{bl:2369.82, br:2368.80, tr:2382.48, tl:2367.34},{bl:2485.60, br:2266.37, tr:2272.19, tl:2474.81},{bl:2577.30, br:2349.08, tr:2176.42, tl:2407.05},{bl:2475.25, br:2459.38, tr:2283.16, tl:2284.37},{bl:2362.99, br:2574.96, tr:2406.22, tl:2162.61},{bl:2262.97, br:2502.24, tr:2492.49, tl:2241.55},{bl:2370.08, br:2388.10, tr:2384.84, tl:2351.46},{bl:2233.02, br:2241.23, tr:2534.07, tl:2513.52},{bl:2029.83, br:2445.36, tr:2721.15, tl:2344.37},{bl:2179.56, br:2580.95, tr:2584.70, tl:2169.71},{bl:2352.74, br:2729.18, tr:2450.44, tl:2010.41},{bl:2530.27, br:2549.05, tr:2239.67, tl:2206.02},{bl:2720.88, br:2370.05, tr:2034.58, tl:2419.51},{bl:2580.16, br:2195.37, tr:2183.98, tl:2554.64},{bl:2446.36, br:2036.37, tr:2355.54, tl:2703.47},{bl:2235.24, br:2231.97, tr:2532.66, tl:2523.08},{bl:2370.91, br:2379.19, tr:2383.42, tl:2360.96},]
Computing… This may take several minutesInitial guess fitness: 1.1572267
Frame dimensions: 3731.5mm x 2914.1mm (aspect ratio: 1.28:1)
Initial fitness >= 0.1 and frame is not square, skipping rectangular optimization and using initial guess directly.
Fitness: 1.1746440 in 100
Fitness: 1.1746440 in 200
Fitness: 1.1746440 in 300
Fitness: 1.1746440 in 400
Fitness: 1.1746440 in 500
Fitness: 1.1746440 in 600
Fitness: 1.1746440 in 700
Fitness: 1.1746440 in 800
Fitness: 1.1746440 in 900
Fitness: 1.1746440 in 1000

Calibration values:
Fitness: 1.1746439477997626
Maslow_tlX: 12.7
Maslow_tlY: 2914.1
Maslow_trX: 3744.9
Maslow_trY: 2927.1
Maslow_blX: 0.0
Maslow_blY: 0.0
Maslow_brX: 3749.9
Maslow_brY: 0.0
A command to save these values has been successfully sent for you. Please check for any error messages.
Calibrate
[MSG:INFO: Requesting state change from Calibration Computing to Calibrating]
[MSG:INFO: Calibration starting in HORIZONTAL orientation mode]
[MSG:INFO: Setting z-stop position]
[MSG:INFO: Center coordinates updated in MaslowKinematics: X=1869.590 Y=1463.819]
[MSG:INFO: Machine Position found as X: -0.008 Y: -7.851]
[MSG:INFO: Setting motor positions from hardware readings:]
[MSG:INFO: TL: 2209.830 TR: 2230.797 BL: 2217.774 BR: 2227.190]
[MSG:INFO: Succeeded]
[MSG:INFO: Calibration state reset]
[MSG:INFO: Requesting state change from Calibrating to Ready To Cut]
[MSG:INFO: Succeeded]

I think that this is a great next step. It looks like your frame is plenty big to allow for a bigger grid.

What is the grid size that you have been using?

Andy Darragh wrote:

Each time, I ran a calibration immediately prior to doing the cut (because I
had other issues that I was hoping to fix). So there is consistency in the
calibration.

once you get a good calibration, you should not need to run it again. The
calibration is finding where the anchors are.

The only visible issue that I noticed was that when the cutting
finished, the belt has risen up almost 2" on the bolt at the bottom right
anchor, the top left rose 3/8" and the other 2 did not rise. These are 3/8"
bolts screwed into concrete expansion anchors with a plastic spacer to raise
it up 2" to match my spoil board.

you need to put spacers/nuts so that the anchors don’t raise up. That will throw
off the calibrations.

I am using horizontal orientation and my anchors are 9’-10" x 12’-2". My
calibration settings were 500mm x 500mm with 3X3 and 1300 retraction and
calibration tension.

you should be able to go to 2000x1000 (bigger area while staying ‘in the green’
and more points are better, and can be even if the reported fitness score is
lower)

http://lang.hm/maslow/maslow4_frame.html

This Maslow runs a calibration quickly and consistently with firmware 1.13 but
it does not remember the belt length when I detach it from the anchors and it
gets stuck in the “extend” then “retract” loop a lot before it will finally
calibrate.

it will only remember your belt lengths if it is in the state ‘ready to cut’
when you shut it down, and when you start it up, you need to do ‘apply tension’

based on this log message, this was not the case when you shutdown

[MSG:INFO: Saved belt positions in NVS are marked as stale/invalid (value=0) - machine will remain in UNKNOWN state until belts are calibrated/extended]

And I can never get the belts to extend when the machine is anchored no matter
how hard I pull and rock, even with the retraction tension set to 100. It
needs to have all the tension relieved and then the belts extend easily. Is
that the way it is supposed to be? I’m new here.

you should only be extending after you are fully retracted

David Lang

Thank you both. I see some of the things I was doing wrong especially with the sequence of operations and how to shut down.

Got it. If it’s in a ready to cut state and you retract all, does it still remember your belt lengths? I assume you can store it with belts retracted?

Andy Darragh wrote:

Got it. If it¢s in a ready to cut state and you retract all, does it still
remember your belt lengths? I assume you can store it with belts retracted?

when you retract the belts, it is setting them to length 0.

when you then power on, it should recognize that they are length 0 and set the
state to ‘retracted’, if it doesn’t, then you need to retract again before you
extend.

David Lang

1 Like

No you need to extend all then apply tension. It should then go to ready to Cut state

2 Likes

Thank you all very much! The 2000 x 1000 calibration helped a lot and I was able to make 4x 150mm circles that mated up with only about 0.8mm of variation. Then I made 2 ribs of my 16 rib egg-shaped breakfast nook. They came out very accurate with smooth curves and not much variation. So they should be a good nailing surface for the Flexboard that will go over them. On the next set of ribs, I had a problem, which I will post separately. But glad to have made something useful and I am excited about the potential.

6 Likes