# X & Y Accuracy Analysis

**URL:** <https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816>\
**Category:** Troubleshooting\
**Tags:** accuracy, calibration, frame\
**Created:** [April 18, 2025, 5:58pm UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816 "2025-04-18T17:58:34Z")\
**Posts on this page:** 20\
**Page:** 4

<div class="post-metadata">

**Author:** ![dlang](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/dlang/32/859_2.png) [@dlang](https://forums.maslowcnc.com/u/dlang)\
**Post date:** [April 26, 2025, 10:22am UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816/61 "2025-04-26T10:22:36Z")

</div>

[justusrijke@gmail.com](mailto:justusrijke@gmail.com) wrote:

> 1. Belt stretch & sag. Maslow’s model treats the belts as perfectly stiff, but  
> IRL they’re springs. On a vertical rig gravity exaggerates the mismatch: TL/TR  
> belts have to fight sag, BL/BR get a free assist. Net result is a “bow-tie”  
> pull toward center. Should be doable to compensate for this in the software  
> (needs a spring constant variable).

perfectly stiff (no stretch) and 0 weight (no sag)

> 1. Result of Maslow’s calibration routine is the width/height of the frame, but it hides the fact that all frames are slightly trapezoidal/skewed. @kyleschoen, if you could share anchor-to-anchor distances (all 6, including diagonals), that could help diagnose this. Software could compensate using 5 of these measurements, bypassing the current calibration routine.

no, the result of calibration is the coordinates of the 4 anchors, one at 0,0  
one at 0,y1, one at x2,y2 and one at x3,y3

> 1. Frame flex. Not something that software can compensate easily (I think it’ll become complicated & hard to grasp the effects).

If we can know the belt elongation factor, we can test the frame under different  
tensions and figure the difference from what the belts account for is due to the  
frame flex

> 1. Direction-dependent error. The left-to-right vs right-to-left discrepancy  
> feels like a belt-stretch artefact. Possible to correct in code, but  
> complexity ramps fast (depends on friction, bit size etc), so I’d leave it  
> until 1-3 are nailed.
> 
> My proposal would be to tackle the list in order, leaving #4 for dessert.  
> Instead of hacking firmware every round, maybe there exists some “g-code  
> deformer” tool that pre-warps toolpaths to cancel the bow-tie and compensates  
> for skew? It’ll be easier to iterate, and we could use the results as  
> inspiration for a future firmware update.

we need to get a better model of the error before we can program in correction  
(either in the firmware or in an external tool)

David Lang

---

<div class="post-metadata">

**Author:** ![Justus](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/justus/32/27305_2.png) [@Justus](https://forums.maslowcnc.com/u/Justus)\
**Post date:** [April 26, 2025, 11:18am UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816/62 "2025-04-26T11:18:39Z")

</div>

> [@dlang](#):
>
> perfectly stiff (no stretch) and 0 weight (no sag)

> [@dlang](#):
>
> we need to get a better model of the error before we can program in correction  
> (either in the firmware or in an external tool)

Didn’t do the math but - assuming the deformation is symmetrical (all belts having a nearly identical stretch), taking the belt elongation factor + belt angles should be enough to model the bow tie effect, right? At least for a horizontal setup. But I don’t know how much of a problem this really is. It seems to be pretty visible in the top y deviations in the table.

> [@dlang](#):
>
> no, the result of calibration is the coordinates of the 4 anchors, one at 0,0  
> one at 0,y1, one at x2,y2 and one at x3,y3

Ah ok, nice! @kyleschoen I think you said that you entered the frame measurements manually (not using the calibration tool), did you take skew into account?

> [@dlang](#):
>
> If we can know the belt elongation factor, we can test the frame under different  
> tensions and figure the difference from what the belts account for is due to the  
> frame flex

Do you think measuring belt force is going to be repeatable enough (motor variance, ADC drift, temp, dust, spool lenght, arm friction, …)?

---

<div class="post-metadata">

**Author:** ![dlang](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/dlang/32/859_2.png) [@dlang](https://forums.maslowcnc.com/u/dlang)\
**Post date:** [April 26, 2025, 6:09pm UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816/63 "2025-04-26T18:09:16Z")

</div>

[justusrijke@gmail.com](mailto:justusrijke@gmail.com) wrote:

> Didn’t do the math but - assuming the deformation is symmetrical (all belts  
> having a nearly identical stretch)

This will not be the case, the forces will balance out, but each belt will have  
different force (depending on the angle) and different stretch (depending on the  
force and length)

> Ah ok, nice! @kyleschoen I think you said that you entered the frame measurements manually (not using the calibration tool), did you take skew into account?

we have several calculators/spreadsheets that take the 6 measurements between  
anchors and calculates the positions)

> > [@dlang](#):
> >
> > If we can know the belt elongation factor, we can test the frame under different  
> > tensions and figure the difference from what the belts account for is due to the  
> > frame flex

> Do you think measuring belt force is going to be repeatable enough (motor variance, ADC drift, temp, dust, spool lenght, arm friction, …)?

I don’t think we cam measure the force with the current hardware, but I think we  
can make a good stab at calculating it.

David Lang

---

<div class="post-metadata">

**Author:** ![Justus](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/justus/32/27305_2.png) [@Justus](https://forums.maslowcnc.com/u/Justus)\
**Post date:** [April 26, 2025, 6:34pm UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816/64 "2025-04-26T18:34:00Z")

</div>

> [@dlang](#):
>
> This will not be the case, the forces will balance out, but each belt will have  
> different force (depending on the angle) and different stretch (depending on the  
> force and length)

That’s what I meant with “the math” - calculating stretch by means of angle/elongation factor/gravity, I think we’re on the same page.

> [@dlang](#):
>
> we have several calculators/spreadsheets that take the 6 measurements between  
> anchors and calculates the positions)

👍 question remains if Kyle used that. I don’t mean to pry, just curious.

---

<div class="post-metadata">

**Author:** ![kyleschoen](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/kyleschoen/32/26163_2.png) [@kyleschoen](https://forums.maslowcnc.com/u/kyleschoen)\
**Post date:** [April 26, 2025, 10:01pm UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816/65 "2025-04-26T22:01:37Z")

</div>

> [@Justus](#):
>
> Ah ok, nice! @kyleschoen I think you said that you entered the frame measurements manually (not using the calibration tool), did you take skew into account?

Yes, I put the dimensions and diagonal measurements into CAD to get the skew. My frame is surprisingly square the calibration numbers were fairly far off from the manual measurements.

I’m out of town this weekend, but will pick the project back up when I’m home. I was going to try loading a belt and measuring the stretch, but that will need some setup.

---

<div class="post-metadata">

**Author:** ![Justus](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/justus/32/27305_2.png) [@Justus](https://forums.maslowcnc.com/u/Justus)\
**Post date:** [April 27, 2025, 8:42am UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816/66 "2025-04-27T08:42:44Z")

</div>

> [@Deadset](#):
>
> For what its worth, im achieveing some pretty solid accuracy at the moment after performing a calibration with the calibration force cranked up to 2000

@kyleschoen Maybe the calibration routine does inadvertently (by detecting somewhat off anchor positions) compensate for belt stretch. Did you have similar X position deviations before (i.e., when using automatic calibration instead of manual measurements)?

---

<div class="post-metadata">

**Author:** ![kyleschoen](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/kyleschoen/32/26163_2.png) [@kyleschoen](https://forums.maslowcnc.com/u/kyleschoen)\
**Post date:** [April 28, 2025, 3:28pm UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816/67 "2025-04-28T15:28:24Z")

</div>

Previously I didn’t test it as throughly as I have in this post, but it was pretty consistently -6mm off at 1200 from the origin on the X axis with the machine calibration settings. I tried entering in the manual measurements since @hendrik 's research in his post seemed to show that was more accurate.

---

<div class="post-metadata">

**Author:** ![MrN808](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/mrn808/32/22275_2.png) [@MrN808](https://forums.maslowcnc.com/u/MrN808)\
**Post date:** [April 28, 2025, 8:07pm UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816/68 "2025-04-28T20:07:07Z")

</div>

> [@dlang](#):
>
> no, you are remembering correctly, the force for a given current varies  
> depending on lots of things, including how much belt is on the spool

If the drive motor was turning the spool directly, this would make sense to me; because the drive motor is driving a fixed-diameter cog, there must be other factors at play. Can you explain how the amount of belt on the spool affects force/current?

---

<div class="post-metadata">

**Author:** ![Deadset](https://avatars.discourse-cdn.com/v4/letter/d/94ad74/32.png) [@Deadset](https://forums.maslowcnc.com/u/Deadset)\
**Post date:** [April 28, 2025, 8:11pm UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816/69 "2025-04-28T20:11:29Z")

</div>

> [@Justus](#):
>
> Maybe the calibration routine does inadvertently (by detecting somewhat off anchor positions) compensate for belt stretch.

Im leaning towards something like this. After calibrating with the calibration force up high, the anchor positions were off, some by up to 20mm from my manual measurement but my machine has been performing well. I wonder if having the calibration force up high compensates for belt stretch by pulling them very tight. Would be curious for someone to try this on a vertical setup

---

<div class="post-metadata">

**Author:** ![dlang](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/dlang/32/859_2.png) [@dlang](https://forums.maslowcnc.com/u/dlang)\
**Post date:** [April 28, 2025, 9:29pm UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816/70 "2025-04-28T21:29:54Z")

</div>

David Negaard wrote:

> If the drive motor was turning the spool directly, this would make sense to  
> me; because the drive motor is driving a fixed-diameter cog, there must be  
> other factors at play. Can you explain how the amount of belt on the spool  
> affects force/current?

when the belt wraps more than once around the spool, the 2nd layer is the  
thickness of the belt further out from the center. when winding up the full  
spool, this is over an inch of change between the beginning and end.

David Lang

---

<div class="post-metadata">

**Author:** ![kyleschoen](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/kyleschoen/32/26163_2.png) [@kyleschoen](https://forums.maslowcnc.com/u/kyleschoen)\
**Post date:** [April 28, 2025, 10:17pm UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816/71 "2025-04-28T22:17:26Z")

</div>

Seems to me like belt stretch is a product of force and higher force would only make the problem worse, unless there’s a different amount of force while running than with calibration.

Stretching is going to elongate the belts so if it stretches 1%, and the machine pulls 1000mm of belt in, that means it’s going to be 10mm short of what it thinks it’s done. This could be why the machine is always behind where it’s suppose to be since the direction of movement is where the most force is being applied and causing stretch.

Again, belt stretch seems like a pretty simple thing to measure, not sure why it hasn’t been done yet (right?) considering all the talk about it. Hopefully this week I’ll be able to mount a belt to something very rigid, put a load on it, and measure the stretch.

---

<div class="post-metadata">

**Author:** ![Dano](https://avatars.discourse-cdn.com/v4/letter/d/e0b2c6/32.png) [@Dano](https://forums.maslowcnc.com/u/Dano)\
**Post date:** [April 28, 2025, 10:20pm UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816/72 "2025-04-28T22:20:39Z")

</div>

Recall Will did try and measure stretch in this post

> [@Ongoing Dimensional Accuracy (DA)/Measuring Belt Stretch](https://forums.maslowcnc.com/t/ongoing-dimensional-accuracy-da-measuring-belt-stretch/23337):
>
> This is somewhat of a continuation of [x and y off by 1%](https://forums.maslowcnc.com/t/x-and-y-off-by-1/23002/111). There, I realized I was cutting parallelograms–say I programmed two adjacent 100mm squares. When I cut them and hold them on top of each other, they line up well, but when I rotate 1 90°, the lack of orthagonality becomes apparent. I happened upon these realities when I began attempting to cut a peg board. I made holes in a cross shape so the board could be used both horizontally or vertically, but the widths of the two cuts across the bo…

Dano

---

<div class="post-metadata">

**Author:** ![kyleschoen](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/kyleschoen/32/26163_2.png) [@kyleschoen](https://forums.maslowcnc.com/u/kyleschoen)\
**Post date:** [April 28, 2025, 10:29pm UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816/73 "2025-04-28T22:29:57Z")

</div>

Thanks for the reminder, I do remember that now but was interested in his design mostly 😛

Seems like it would be worthwhile to run some more experiments on this.

---

<div class="post-metadata">

**Author:** ![Dano](https://avatars.discourse-cdn.com/v4/letter/d/e0b2c6/32.png) [@Dano](https://forums.maslowcnc.com/u/Dano)\
**Post date:** [April 28, 2025, 10:58pm UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816/74 "2025-04-28T22:58:49Z")

</div>

Agreed. Im interested to see what you come up with.

Dano

---

<div class="post-metadata">

**Author:** ![willpuckett](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/willpuckett/32/22652_2.png) [@willpuckett](https://forums.maslowcnc.com/u/willpuckett)\
**Post date:** [April 28, 2025, 11:42pm UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816/75 "2025-04-28T23:42:31Z")

</div>

Interested as well… I’m in my travel season now shold be back in the studio in July

---

<div class="post-metadata">

**Author:** ![willpuckett](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/willpuckett/32/22652_2.png) [@willpuckett](https://forums.maslowcnc.com/u/willpuckett)\
**Post date:** [April 28, 2025, 11:43pm UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816/76 "2025-04-28T23:43:51Z")

</div>

Laying at down flat made the biggest difference for me, which seems like a pretty good indiator that gravity is in play with the vertical accucracy issues…

---

<div class="post-metadata">

**Author:** ![bar](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/bar/32/10_2.png) [@bar](https://forums.maslowcnc.com/u/bar)\
**Post date:** [April 30, 2025, 10:32pm UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816/77 "2025-04-30T22:32:29Z")

</div>

I’m about to publish 1.05 and I added two scale factors which can be used to compensate for distortion in the calibration.

They’re not a perfect solution, but they could be worth playing around with in the short term

 ![image](https://canada1.discourse-cdn.com/flex031/uploads/maslowcnc/original/3X/6/3/63fbd0aaf0d3632d0d8fad2c7cf64bacd9b96ed8.png)

The input shape is just stretched by the scale factor in X and Y.

---

<div class="post-metadata">

**Author:** ![kyleschoen](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/kyleschoen/32/26163_2.png) [@kyleschoen](https://forums.maslowcnc.com/u/kyleschoen)\
**Post date:** [April 30, 2025, 10:38pm UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816/78 "2025-04-30T22:38:21Z")

</div>

Very cool! Seems almost like playing with the esteps on a 3D printer?

---

<div class="post-metadata">

**Author:** ![bar](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/bar/32/10_2.png) [@bar](https://forums.maslowcnc.com/u/bar)\
**Post date:** [April 30, 2025, 10:39pm UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816/79 "2025-04-30T22:39:50Z")

</div>

It should be exactly the same.

Ideally I want to find the true source of the error, but this should help compensate for it until we do

---

<div class="post-metadata">

**Author:** ![kyleschoen](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/kyleschoen/32/26163_2.png) [@kyleschoen](https://forums.maslowcnc.com/u/kyleschoen)\
**Post date:** [April 30, 2025, 10:50pm UTC](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816/80 "2025-04-30T22:50:49Z")

</div>

Yeah this could definitely help. The issue seems more logarithmic than linear, but it’s definitely a start.

BTW I bought 4 “Crane” scales and am doing some load testing right now and belt stretch testing soon.

[Previous page](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816.md?page=3)

[Next page](https://forums.maslowcnc.com/t/x-y-accuracy-analysis/23816.md?page=5)
