M4 Calibration seems good, but jogging fails, belts slack

If you want to see how I got to where I am, here’s another thread about my calibration issues: Initial calibration on .70 firmware, horizontal frame. Failed?

After my last calibration and attempt to move, one of the belts was so tangled that I could not get it back on the spool, so I decided to just take all of the arms apart since I needed to check the fit between the motor gear and idler gear anyway. When I took the tangled spool apart I could see that at some point the belt had doubled over itself:

I’m not sure how/when that happened.

After getting everything back together last night, I upgraded to .71.1 this morning and tried again. When I did the retract/extend/apply tension, it said my coordinate system was accurate, but since I basically rebuilt the machine I decided to do another calibration. The calibration seemed to work fine, but once it was finished I immediately ran into problems trying to jog around the work area. I don’t know what’s wrong, but I will say it’s consistent, my results this morning match almost exactly the results I got on my last test a couple of days ago.

Here’s a video showing the last two measurement points followed by my attempts to jog around:

You can see it seems to move pretty well during the calibration moves. After the calibration, I tried to jog 100mm to the right. It moved to the right, but with a lot of slack on the left two belts. Sorry about the delay after the jog right, I was taking some still pictures. Next I jogged 50mm to the left, which seemed better, then another 50mm left seemed to put it back to home. I tried another 50mm to the left, and ended up with slack on the right two belts. I then hit Home, and it went down and to the right, leaving slack on all but the bottom left belt.

I’m attaching the serial messages from today’s test, along with the info from the FluidNC Controls page, including the Commands window in case that helps. Also my maslow.yaml file after this morning’s calibration. I started on Thursday with the version from the .70 firmware, set my rough frame dimensions to 1905mmx1420mm, and my calibration area to 800mmx400mm 9x9, then did a calibration on Thursday evening with .70 and another this morning with .71.

I really don’t know what to try next, any assistance will be greatly appreciated. Let me know if there’s any other information I can provide.


maslow.yaml (5.2 KB)
050424-Cal1-SerialMessages.txt (24.9 KB)
050424-Cal1-Commands.txt (11.2 KB)

1 Like

It for sure seems like something funky is going on there. Thanks for the logs, let me see what I can figure out.

Thanks. Let me know if there’s any more info I can provide, or if I need to do additional testing. I should have video of the entire calibration procedure if you want to see more.

I repurposed one of my security cams for the video, and apparently there’s a length per recording limitation, so I ended up with a bunch of fairly short videos, that’s why I only included the last one.

1 Like

Everything in the logs looks good, but I’m pretty sure that the issue is that the calibration is not accurate…ie the anchor points aren’t where the machine thinks that they are.

That frame is quite a bit smaller than I have had practice with, but it should still work.

How big was the grid when you ran it?

My grid was 9x9, 800mm X axis x 400mm Y axis. I chose that based on the calculator that dlang shared a link to, I think I figured my usable area should be about 1000 mm x 700 mm, so that seemed reasonable to me.

Based on my measurements with a tape measure, my X width was 75" or 1905 mm, and my Y height was 56" or 1422 mm. Looking at the maslow.yaml, it looks like the calibration came up with an X width of 1893.7 on the top and 1888.8 on the bottom, and a Y height of 1450.7 on the left and 1446.5 on the right (rounded). That’s pretty close to what I got with the tape measure, I do need to check the Y measurement again. I’ll try to re-measure with my laser distance measure when I get home in a few hours.

1 Like

Ok, a little delayed, but I got the laser distance measure out and checked the distance between my anchor points. My anchors are 3/8", roughly 9.5mm, and I was measuring the distance between them. So, here’s what I got:

BL to BR, 1898mm between the posts, so 1907.5 on center.
TL to TR, 1898mm between the posts, so 1907.5 on center.
BL to TL, 1419mm between the posts, so 1428.5 on center.
BR to TR, 1420mm between the posts, so 1429.5 on center.
BL to TR, 2375 between the posts
TL to BR, 2372 between the posts

So my anchor points are pretty close to square, and within 10-25mm on X-Y measurements the calibration came up with. Is this enough of an error to account for the extra belt I saw spooled out when trying to move?

Weather is sketchy here, but I can try running a calibration with a smaller area if you think that will help, but it may be a few days.

Not at all, your frame seems great :+1: :+1:

I think that making the grid a little smaller and running it again is the way to go. It should improve on the numbers from last time when you run it again

I was able to do some more testing after work this afternoon. I kept the grid at 9x9, but reduced the size to 600x300mm. I’ll attach my maslow.yaml and serial monitor files at the end. Here are my observations.

I set everything up, did a retract/extend/apply tension, and got the [MSG:ERR: Center point deviation over 15.000mmm, your coordinate system is not accurate, maybe try running calibration again?] error. Clicked Calibrate, immediately got the [MSG:ERR: Unable to move safely, stopping calibration] error. This was kind of unexpected, since my last calibration was run with the same anchor points.

Powered off, powered back on, removed belts from anchor points, did retract/extend/apply tension, again got the [MSG:ERR: Center point deviation over 15.000mmm, your coordinate system is not accurate, maybe try running calibration again?] message. Hit calibrate, and the calibration ran and appeared to be successful.

Unfortunately, the results were essentially the same as before. Immediately after calibration, I jogged right 50mm, it spooled out too much belt on the left belts. Jogged back right 50 mm, it went almost back to where it started but there was still some slack in the left hand belts. I didn’t want to do a lot of jogging around, it doesn’t take much to get to the point where I have to disassemble the arms to re-spool the belt, so I just applied tension to take up the slack, then released tension, disconnected the belts and did a retract all.

Out of curiosity, I then power cycled the M4, did a retract/extend/apply tension, and this time I got the [MSG:INFO: Center point deviation within 15.000mm, your coordinate system is accurate] message, so again I tried jogging around and got the same result, too much slack in the trailing belts.

One thing I noticed, it is possible that my anchor points are flexing when the belts pull tight, but it can’t be more than 2-3 mm, so I wouldn’t expect that to account for the issues I’m seeing. I can fabricate more secure anchors if need be.

Comparing the results in the maslow.yaml file from Saturday and the one from today, the measurements are pretty close, but not the same. From Saturday:

Maslow_vertical: false
maslow_calibration_grid_width_mm_X: 800.000000
maslow_calibration_grid_height_mm_Y: 400.000000
maslow_calibration_grid_size: 9
Maslow_brX: 1888.800049
Maslow_brY: 0.000000
Maslow_brZ: 117.000000
Maslow_tlX: 1.600000
Maslow_tlY: 1450.699951
Maslow_tlZ: 144.000000
Maslow_trX: 1895.300049
Maslow_trY: 1446.599976
Maslow_trZ: 97.000000
Maslow_blX: 0.000000
Maslow_blY: 0.000000
Maslow_blZ: 75.000000

and from today:

Maslow_vertical: false
maslow_calibration_grid_width_mm_X: 600.000000
maslow_calibration_grid_height_mm_Y: 300.000000
maslow_calibration_grid_size: 9
Maslow_brX: 1893.900024
Maslow_brY: 0.000000
Maslow_brZ: 117.000000
Maslow_tlX: 1.800000
Maslow_tlY: 1440.099976
Maslow_tlZ: 144.000000
Maslow_trX: 1897.599976
Maslow_trY: 1440.800049
Maslow_trZ: 97.000000
Maslow_blX: 0.000000
Maslow_blY: 0.000000
Maslow_blZ: 75.000000

So anywhere from .1 to 10mm different in the calculated anchor points.

Any suggestions are appreciated, and I’m willing to do any additional testing as time permits. I do have some video of the testing this afternoon, but it’s not the greatest. Once I go through it and see if there’s anything that might be helpful I’ll upload and add here.
maslow_050724.yaml (5.2 KB)
050724_CalNoJog.txt (24.7 KB)


1 Like

Just information: I took your latest calibration CLBM line to https://m4cal.etskinner.com (experimental calibration simulation) and it seems to be coming pretty close to the same numbers you measured. It took a very long time to compute.

In theory this is the same code that is in the current UI, so I’d expect it to be the same. I also didn’t see any points that ended up in a cluster like some other calibrations so didn’t have any to exclude to try again…

I’ll let the people smarter than me chime in on if ~2-3mm flex is too much. I’d also think not. Mine certainly flex around that much probably.

Calibration complete 
Calibration values:
Fitness: 1.378057168150398
Maslow_tlX: 1.7
Maslow_tlY: 1440.3
Maslow_trX: 1897.4
Maslow_trY: 1441.1
Maslow_blX: 0.0
Maslow_blY: 0.0
Maslow_brX: 1893.7
Maslow_brY: 0.0
1 Like

I think that this could be an issue, especially on a smaller frame where it is a larger percentage of the total length.

I’ve been thinking about adding a test to the beginning of the calibration where we pull tight with force 1300 and then again with force 2000 and compare the measurements. That would let us get a quantifiable measurement of how flexible the frame is which could be useful for comparison


Bar wrote:

I¢ve been thinking about adding a test to the beginning of the calibration
where we pull tight with force 1300 and then again with force 2000 and compare
the measurements. That would let us get a quantifiable measurement of how
flexible the frame is which could be useful for comparison

even if this isn’t something that we can directly feed into our calibration
calculations, it will result in a measurement that we can report and say ‘this
is a good solid frame’ or ‘this frame flexes enought that it may be an issue’

David Lang

1 Like

If you started with a little slack in each belt, and ranped up the motor current in steps of 100mA, from 0 to the max, by monitoring the encoder movement you will find the point at which you overcome the static friction in the whole geartrain and belt drive system, which would be a great metric and measure of health. Think of all the problems that might happen because someone has a mechanical issue that could be quickly diagnosed this way.

1 Like

You could also measure the diagonals and determine squareness too. I know it does not matter in general if its square, but this could put some context to the final numbers for the points given we can check the diagonals on the final number vs the measured ones.

1 Like

Success at last! Last night I upgraded to 0.72.1, copied the results of my previous calibration over for the X and Y, and I adjusted the default Z values to account for my anchor points being ~13mm above the work surface. Retract/extend/attach to frame/apply tension, and it reported that my coordinate system was accurate.

I decided not to do another calibration, and I was able to use the jog controls to move the M4 all over the 4’x4’ sheet of plywood. I grabbed a simple .nc file from the Community Garden and ran it with the router off and no bit, it looked correct. Gave myself a crash course in MakerCam, made a toolpath from a 4" rounded square .25" deep and cut it into a scrap of 7/16" OSB, and it came out looking like this:

Just ignore that hole in the middle, I used the Z control to raise Z so that the bit was just touching the surface, then forgot to hit the Define Home button, so as soon as I started the cut, it plunged right through the OSB, right through the foam insuation board, and probably right into the bed of the utility trailer. Then dragged the OSB about 4 inches before I could get to the power strip to turn it off. Fun times.

Over all, I’m very satisfied. I haven’t made any precision measurements yet, but checking with a steel ruler the outside dimensions of the square were dead on 4.25". That threw me for a while until I realized the center of the bit was following the path, so the 1/4" bit added 1/8" on each side.

Now to continue learning MakerCam, and eventually move on to FreeCad, since that’s what I use to model for my 3d Printers.


Excellent work!

Thanks for testing out 0.72.1, that is super helpful feedback :grinning: