What is correct chain pitch?

I’m recalibrating due to a chain skip and I went ahead and measured the distance betwen motors with measuring tape while maslow measured using the chain length (so the chain was under tension). I measured 2905 mm using my tape measurer and maslow measured 2888.6 mm. This seems like a huge difference (I did this step twice and got the same difference. In order for maslow to measure the same as I did with my tape measurer, the chain pitch needs to be 6.386 mm, not 6.35 mm.

So, are we really confident the chain pitch is really 6.35 mm?


The chain is ANSI #25 roller chain, the pitch is 0.25" or 6.25mm.

So the default is wrong? 6.35 is hardcoded in measureMachinePopup.py. It’s hard to imagine that everyone’s autocal measurements have been off by this… am I missing something?

And then, wouldn’t setting it to 6.25mm result in even a smaller distance of ~2843mm? That’s even further off from 2905mm

1 Like

Please forgive me, I’ve got it backwards :blush: . PR#469 corrected that value from 6.25 to 6.35. 6.35mm is the correct conversion from 0.25inches. The current version of measureMachinePopup.py is correct.

1 Like

Hmmm… then why am I getting such a big difference? The only thing left is the number of gear teeth and that’s clearly 10.

1 Like

I’m wondering if I need to wipe the eeprom.

This seems like a recurring thing that pops up often. I don’t have a good answer, but I think it’s important that we find out what is going on. It weirds me out not knowing the answer.


I’ve been trying to follow the code on how the measurement is done and it’s not really simple… Looks to me that there is a B10 command that’s issued and the firmware does something with that… and that’s where I get a bit lost… still chugging along at it :slight_smile:

And I’m using the latest software (GC 0.99 but firmware 1.00) Is that a problem?

This could be related to the interrupt-dependant code in Encoder.h - ‘there be dragons…

Could it possibly be that feeding out 1000mm of chain doesn’t really feed out 1000mm because of rounding issues. If I read the code right, the stepSizeMM is 1.33333333… if this gets rounded out or something and its magnified by 750 or so steps, perhaps it can lead to accuracy issues?

If I measure out 1000mm… I should have 157.4803 links … which would put one end of a link pretty much at 12 o’clock because the zero link is attached straddling the zero tooth. Will try I guess…

Take a look at “B09” in CNC_Functions.h. It is a code that GC can send to move the chain.
‘B09 L100.0’ would move the left chain 100mm. You could set one of your macros to ‘B09 L100.0’ and then measure the amount of chain that payed out.
Also interesting is the “B10” which should return the value of chain position that the firmware has recorded. Combining these, perhaps “B10\nB09 L100.0\nB10” would be interesting. Then trying with various values of Lxxx.yy and Rxxx.yy…

If I can send a command to move 635 mm, then I should have 100 links fed off and the zero sprocket should return to 12 oclock… correct?

6.35 CM that should be if we don’t want to make the same mistake as NASA. :smiley:

That sounds right to me. Note, you may need to do a chain calibration after you’re done shifting the chain like that. I don’t think you will, but thought I should mention it :wink: that will be 25" of chain (I’m too impatient to count links :smile:)

Don’t bothefr with “B10”, you get a measurement back but groundcontrol crashes - it’s ot designed for this use of B10…

It didn’t return to 12 o’clock. Its half a link past tdc.

If fed out about 640 mm…

That’s interesting. Sending a negative number should wind the chain back in - is the error symmetrical?

Well, the command to unfeed isn’t “B09 L-635”… it just kept on spinning and I had to issue a stop.

Me too. Puzzling, diggin into it.

Maybe it was trying to go to -635mm chain length (absolute versus relative). So I redid it but with L0 and all it did was extend the chain a few links and stopped… I’m getting error messages about not being able to find position… so it could be so far out of cal that its having issues.