MaslowCNC/GroundControl

SetSprocketVertical Needs To Compensate for Chain Tolerance Additions

madgrizzle opened this issue · 4 comments

From forum:
[quote="Dustcloud, post:38, topic:3162"]
So I go to set the 12 o’clocks, and no problem with the Left, but the Right turns the opposite of the commands, and moves further than normal
[/quote]

If you are saying the right sprocket turns CW when you press CCW, I don't know why that happens. As for "moves further than normal", I suspect this is caused because the routines to set the tooth at 12 o'clock tell the motors to move a certain distance of chain. This is calculated based upon the number of teeth in the sprocket and the chain pitch. It appears that when the chain tolerance was added, this wasn't taken into account. Since setting the sprocket is independent of the length of chain, it appears that we need to back-out the chain tolerance from the set-teeth-vertical routine so that when the controller adds it back in, then it gets to where it needs to be.

I think this is a straightforward solution, but need to think about it.

While we're looking at places affected by the chain pitch, the calibrateChainLengths() in System.cpp routine needs to ignore the chain pitch as well. It must extend 1650mm of chain and finish with a tooth at 12 o'clock.

and finish with a tooth at 12 o'clock.

Is this possible? 1650mm/6.35mm = 259.84252

What's far more important is to move an integer number of teeth.

That's the right idea. Having that number be proportional to any measurement of the frame defeats the benefit of using a universal value which allows using the 'manual chain' calibration regardless of changes to the frame. Once the king link is identified and marked, it should never change. That way, making changes to the frame like top/bottom feed or wider top bar won't invalidate the marked link.