# Closed: \[Beta\] Makerverse (previously known as "CNCjs") Support for \*\*All Maslow Editions\*\* w/ Non-Destructive Edge Calibration

**URL:** <https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348>\
**Category:** Software\
**Created:** [August 19, 2020, 11:53pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348 "2020-08-19T23:53:25Z")\
**Posts on this page:** 20\
**Page:** 26

<div class="post-metadata">

**Author:** ![zaneclaes](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/zaneclaes/32/16801_2.png) [@zaneclaes](https://forums.maslowcnc.com/u/zaneclaes)\
**Post date:** [September 10, 2020, 5:05pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348/504 "2020-09-10T17:05:55Z")

</div>

> [@madgrizzle](#):
>
> I _think_ this might go back to my original question. When the 0,0 is define, it computes a chain length based upon the current calibration values at the time you define zero. If the calibration values change, the kinematics formulas won’t calculate the same chain lengths for 0,0 and therefore, the sled will be offset from the previous 0,0. The worse the calibration was when you defined zero initially, the bigger the shift will be. I thought that’s why the iterative approach was necessary (i.e., calibrate, jog to 0,0, define home and then repeat calibrating/jog/define home process until a move to 0,0 actually gets to 0,0).

I’m having a hard time understanding how all 6 calibration points could be correct, but the center point of those 6 points would be wrong. This would imply that the machine is somehow becoming un-calibrated in the midst of the stock, yet the edges are fine.

Said differently: mathematically, shouldn’t the error distance for any point within a given rectangle be smaller than any point on the edge? This would imply that the center point could be wrong by no more than the maximum error distance during calibration.

If people are seeing errors of 6mm on the center point, but they only calibrated to 10mm accuracy, this would make sense to me.

---

<div class="post-metadata">

**Author:** ![madgrizzle](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/madgrizzle/32/1372_2.png) [@madgrizzle](https://forums.maslowcnc.com/u/madgrizzle)\
**Post date:** [September 10, 2020, 5:17pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348/505 "2020-09-10T17:17:20Z")

</div>

> [@zaneclaes](#):
>
> Said differently: mathematically, shouldn’t the error distance for any point within a given rectangle be smaller than any point on the edge? This would imply that the center point could be wrong by no more than the maximum error distance during calibration.

I think I understand your point, but (and I haven’t given it a whole lot of thought) if we had a perfect model (100% representative of Maslow’s universe) and perfect measurements then one iteration should be enough. But I don’t think we do and I believe its likely that some of the calibrated parameters are compensating for the imperfect model and imperfect measurements… this necessarily would reduce overall error (because that’s what optimization routines do), but might lead to things like an offset 0,0. Does the optimization routine use a measurement at 0,0?

I didn’t readily see how far off people’s 0,0 are… its a mighty long thread 🙂

---

<div class="post-metadata">

**Author:** ![zaneclaes](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/zaneclaes/32/16801_2.png) [@zaneclaes](https://forums.maslowcnc.com/u/zaneclaes)\
**Post date:** [September 10, 2020, 5:21pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348/506 "2020-09-10T17:21:51Z")

</div>

> [@madgrizzle](#):
>
> Does the optimization routine use a measurement at 0,0?

No. I’m not sure how much it would really help. At best, calibration would converge faster (one more measurement per round means more improvement each round). However, I don’t really trust 0,0 measurements which is why I wanted to avoid homing on this location to begin with. I have never been able to be 100% confident I have my bit placed within 2mm of 0,0. It’s simply too hard to measure on such a big piece of stock with the tools I have.

Curious if @scottfmosley and @Bob_Craig can confirm:

- What is the error distance you’re seeing from your center point?
- How confident are you in this measurement?
- What was your maximum error distance during calibration?

---

<div class="post-metadata">

**Author:** ![madgrizzle](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/madgrizzle/32/1372_2.png) [@madgrizzle](https://forums.maslowcnc.com/u/madgrizzle)\
**Post date:** [September 10, 2020, 5:30pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348/507 "2020-09-10T17:30:35Z")

</div>

> [@zaneclaes](#):
>
> However, I don’t really trust 0,0 measurements which is why I wanted to avoid homing on this location to begin with.

How do people find the center? Do they snap chalk lines across the corners? Could you install a vbit in the router to zero in on a particular spot?

Regardless, I’d be interested in seeing if people’s 0,0 error improves by doing a second (and maybe third) calibration using the method I mentioned. I tend to think the error would have to reduce if the model is fairly accurate and good measurements are being taken… but with everything in life, I could be wrong.

---

<div class="post-metadata">

**Author:** ![zaneclaes](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/zaneclaes/32/16801_2.png) [@zaneclaes](https://forums.maslowcnc.com/u/zaneclaes)\
**Post date:** [September 10, 2020, 5:41pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348/508 "2020-09-10T17:41:38Z")

</div>

> [@madgrizzle](#):
>
> How do people find the center? Do they snap chalk lines across the corners? Could you install a vbit in the router to zero in on a particular spot?

I don’t think there’s been a good process described. All of these options require additional hardware, too (I don’t have chalk lines, T-squares, V-bits, etc.)

> [@madgrizzle](#):
>
> Regardless, I’d be interested in seeing if people’s 0,0 error improves by doing a second (and maybe third) calibration using the method I mentioned.

The problem is that you cannot perform the “set chain lengths” again, like you described. We ran into this bug yesterday. Here’s what happens:

- After the first calibration round, left/right chain tolerance may often differ
- When you say “the sled is at 0,0,” Makerverse would need to re-compute the “extended chain lengths”
- However, using the calibrated settings to find chain lengths for 0,0 will result in different lengths for each chain, since chain tolerances are not even.
- If you try to set the “extended chain lengths” with an average of these two values, it ends up messing up calibration because now the chain tolerances are incorrect.

… that said, you _might_ be able to reset the chain tolerances to zero and start calibration again at this point. The extended chain lengths should now be more accurate, and the tolerances should become more even / smaller with this approach.

---

<div class="post-metadata">

**Author:** ![madgrizzle](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/madgrizzle/32/1372_2.png) [@madgrizzle](https://forums.maslowcnc.com/u/madgrizzle)\
**Post date:** [September 10, 2020, 5:45pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348/509 "2020-09-10T17:45:28Z")

</div>

Could you have separate 'extended chain lengths" for each chain?

---

<div class="post-metadata">

**Author:** ![zaneclaes](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/zaneclaes/32/16801_2.png) [@zaneclaes](https://forums.maslowcnc.com/u/zaneclaes)\
**Post date:** [September 10, 2020, 5:48pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348/510 "2020-09-10T17:48:01Z")

</div>

Yes, though this would require a firmware update for both Mega and Due.

I do worry about that, to some extent, as well. If the chain lengths differ for the 0,0 coordinate, it implies the sled is not centered between the motors when centered on the X axis. This means that the chain tolerances are doing a LOT of work to compensate for an off-center workspace. IME, when I’ve started with an off-center measurement, I end up with chain tolerances up into the `0.5` range! It’s still possible to achieve good calibration, but the tolerances are really compensating hard…

---

<div class="post-metadata">

**Author:** ![zaneclaes](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/zaneclaes/32/16801_2.png) [@zaneclaes](https://forums.maslowcnc.com/u/zaneclaes)\
**Post date:** [September 10, 2020, 5:51pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348/511 "2020-09-10T17:51:02Z")

</div>

I’m tempted to go back to using measured-out chain lengths. This removes a variable from the equation. It also gives an opportunity to show the user “here is the centered X position.” That way, they can be told to align the stock with a well known X center point.

_edit_ for the record, the reason I didn’t want to do this was that I found the measuring out of chains to be a frustrating step when I first built my Maslow.

---

<div class="post-metadata">

**Author:** ![madgrizzle](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/madgrizzle/32/1372_2.png) [@madgrizzle](https://forums.maslowcnc.com/u/madgrizzle)\
**Post date:** [September 10, 2020, 6:05pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348/512 "2020-09-10T18:05:14Z")

</div>

I am a proponent of the measured-out chain technique, but know that it won’t measure out to 0,0 unless you can figure out beforehand precisely the amount of chain needed. Typically, if the chain tolerances aren’t really bad, you will be centered (x = 0 or close to it), but the y will be off depending upon however many links you extended. With triangular or holey calibration, there was no need to be concerned about where 0,0 actually was because the way it worked.

But it is important for the edge-to-edge calibration to know physically where that spot is. So if the user installs the chains (2031 mm or 1651 mm), have the user mark that location and then measure where it is on the board. Use those measurements as the reference point for the edge-to-edge… something like that.

---

<div class="post-metadata">

**Author:** ![zaneclaes](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/zaneclaes/32/16801_2.png) [@zaneclaes](https://forums.maslowcnc.com/u/zaneclaes)\
**Post date:** [September 10, 2020, 6:16pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348/513 "2020-09-10T18:16:15Z")

</div>

Here’s a brainstorm for a hybrid method…

## **Set Chains**

1. Wrap both chains around the sprocket and pull them taut. They should just barely touch each other, and meet at the exact middle point of your top-beam.
2. When you press “Start”,"the machine executes a `$H` in order to set both chain lengths (internally) to the same length to begin.
3. You press the “Y -20mm” button until the chains are long enough to attach to the sled.
4. You attach the chains to the sled.
5. You press the “Y +/- 1mm” button until the top of the bit is exactly touching the stock.
6. It is suggested that you mark this location as the center point for mounting your stock.
7. When you press “Set Chains,” the machine knows that the chain lengths are equal. So when it converts the position (0, 24") into chain lengths, any error will be due to motor measurement error (which should be calibrated out).

**Bonus** : re-setting chains is easier. The marked point on the top edge of the stock, where the middle of the bit is touching the middle of the edge, will serve as a reset chain point.

Also, the DUE has a known problem where a fresh firmware install (un-homed) can “go crazy.” Adding the homing step in (2) before shuttling should fix that.

WDYT @madgrizzle?

---

<div class="post-metadata">

**Author:** ![madgrizzle](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/madgrizzle/32/1372_2.png) [@madgrizzle](https://forums.maslowcnc.com/u/madgrizzle)\
**Post date:** [September 10, 2020, 6:20pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348/514 "2020-09-10T18:20:49Z")

</div>

> [@zaneclaes](#):
>
> Wrap both chains around the sprocket and pull them taut. They should just barely touch each other, and meet at the exact middle point of your top-beam.

Haven’t thought about the rest of the steps, but how do you accomplish the first one? There’s always going to be sag in the chain… and then do you use some kind of ‘set sprocket’ routine to rotate the sprockets so you can make them just touch precisely in the middle? Seems all pretty difficult (not to be a negative nancy or anything)

---

<div class="post-metadata">

**Author:** ![zaneclaes](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/zaneclaes/32/16801_2.png) [@zaneclaes](https://forums.maslowcnc.com/u/zaneclaes)\
**Post date:** [September 10, 2020, 6:22pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348/515 "2020-09-10T18:22:53Z")

</div>

> [@madgrizzle](#):
>
> and then do you use some kind of ‘set sprocket’ routine to rotate the sprockets so you can make them just touch precisely in the middle? Seems all pretty difficult (not to be a negative nancy or anything)

Not at all. This is just a brainstorm. I guess it seemed to me that two chains, draped over the sprockets, could be grabbed easily by someone in the middle of the frame. I assumed that they would be able to pull the chains quite taut, using reasonable but not excessive force to make them meet in the middle. Keep in mind, the goal of this step is to ensure the chains are a same length, not to be 100% certain of the length.

_edit_ but I see your point, they would need a device in-hand to adjust the motors. I always have my phone for this, but others may not.

---

<div class="post-metadata">

**Author:** ![madgrizzle](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/madgrizzle/32/1372_2.png) [@madgrizzle](https://forums.maslowcnc.com/u/madgrizzle)\
**Post date:** [September 10, 2020, 6:27pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348/516 "2020-09-10T18:27:26Z")

</div>

I think it would be easier (and more accurate) to just extend a set amount of chain from each motor.

---

<div class="post-metadata">

**Author:** ![zaneclaes](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/zaneclaes/32/16801_2.png) [@zaneclaes](https://forums.maslowcnc.com/u/zaneclaes)\
**Post date:** [September 10, 2020, 6:28pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348/517 "2020-09-10T18:28:21Z")

</div>

Yeah, I guess I’m slowly coming to that conclusion, too. It’s a lot harder to accomplish with the Due stepper firmware. That’s why I want to use Y-axis movement to achieve the extension.

Maybe just start with chains on top of sprocket, like with extend chains, but otherwise follow the step 2 and beyond from above. Except now we know the exact chain length at the end.

---

<div class="post-metadata">

**Author:** ![madgrizzle](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/madgrizzle/32/1372_2.png) [@madgrizzle](https://forums.maslowcnc.com/u/madgrizzle)\
**Post date:** [September 10, 2020, 6:30pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348/518 "2020-09-10T18:30:35Z")

</div>

> [@zaneclaes](#):
>
> It’s a lot harder to accomplish with the Due stepper firmware

I think I understand the dilemma. You have to have the equivalent of singleAxisMove() that bypasses any kinematics to make that work. I’d give the iterative method I mentioned a shot and see if the zero point improves 🙂

---

<div class="post-metadata">

**Author:** ![zaneclaes](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/zaneclaes/32/16801_2.png) [@zaneclaes](https://forums.maslowcnc.com/u/zaneclaes)\
**Post date:** [September 10, 2020, 6:32pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348/519 "2020-09-10T18:32:58Z")

</div>

Spot on.

Sorry, by iterative approach, are you referring again to the firmware mod that would give each chain its own reset length?

---

<div class="post-metadata">

**Author:** ![madgrizzle](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/madgrizzle/32/1372_2.png) [@madgrizzle](https://forums.maslowcnc.com/u/madgrizzle)\
**Post date:** [September 10, 2020, 6:49pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348/520 "2020-09-10T18:49:18Z")

</div>

Yeah, forgot about that part. What if you only used one value for chain tolerance when calibrating? That way they are always equal. Maybe it wouldn’t be that big of a negative impact if it provides positive impacts elsewhere?

---

<div class="post-metadata">

**Author:** ![zaneclaes](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/zaneclaes/32/16801_2.png) [@zaneclaes](https://forums.maslowcnc.com/u/zaneclaes)\
**Post date:** [September 10, 2020, 6:53pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348/521 "2020-09-10T18:53:09Z")

</div>

Hmm, what about this @madgrizzle ?

![image](https://canada1.discourse-cdn.com/flex031/uploads/maslowcnc/original/3X/2/9/29a8384c3f62895766b430d16386805643217f0b.jpeg)

It was trivial to pull the chain taut with the motors.

![image](https://canada1.discourse-cdn.com/flex031/uploads/maslowcnc/original/3X/7/c/7ce67209805cff94ce8ef6aa0ff6bc65142aad97.jpeg)

---

<div class="post-metadata">

**Author:** ![madgrizzle](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/madgrizzle/32/1372_2.png) [@madgrizzle](https://forums.maslowcnc.com/u/madgrizzle)\
**Post date:** [September 10, 2020, 6:56pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348/522 "2020-09-10T18:56:43Z")

</div>

Do you need to pull them taut if all you are trying to do is to set equal lengths? If you had a line down the center of your board, you just need to make sure the cotter pin lines up with it. But, how do you get them to line up in the middle since the sprockets will not likely be identically oriented? Just using x+ and x- jog commands (would seem to work if you use small enough jogs)?

---

<div class="post-metadata">

**Author:** ![zaneclaes](https://yyz1.discourse-cdn.com/flex031/user_avatar/forums.maslowcnc.com/zaneclaes/32/16801_2.png) [@zaneclaes](https://forums.maslowcnc.com/u/zaneclaes)\
**Post date:** [September 10, 2020, 7:01pm UTC](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348/523 "2020-09-10T19:01:02Z")

</div>

> [@madgrizzle](#):
>
> Do you need to pull them taut if all you are trying to do is to set equal lengths?

I’m thinking this gives us a pretty darn good chain measurement, if they’re taut, and we trust the distBetweenMotors. Which I think is generally _relatively_ safe. 10’ and 12’ beams are the most regular (factory cut) part of the frame.

> [@madgrizzle](#):
>
> If you had a line down the center of your board,

I think you should just start by centering on the top beam (2nd picture). As long as the chains are equally extended (y-move only) from that point forward, it will remain centered (_edit_ assuming you’ve previously checked that there’s no chain tolerance setting already applied while running this step). So you could use this extension process to create that line, or at least, find the center top of the workspace (when you attach the sled and position it on the top of the stock).

> [@madgrizzle](#):
>
> But, how do you get them to line up in the middle since the sprockets will not likely be identically oriented? Just using x+ and x- jog commands (would seem to work if you use small enough jogs)?

Good point. Let me go give that a shot and see.

[Previous page](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348.md?page=25)

[Next page](https://forums.maslowcnc.com/t/closed-beta-makerverse-previously-known-as-cncjs-support-for-all-maslow-editions-w-non-destructive-edge-calibration/14348.md?page=27)
