Category: Turning
I'm having threading issues where the machine cuts a slightly different thread each time. This has always been the case since I retrofitted a late 70's CNC lathe 8 years ago. Recently I've decided I've had enough and want it running "perfectly" which is why I'm finally digging into the issue.
Initially I thought the issue was due to noise on my encoder lines. I finally tracked down the source of the noise I had and it was EMI from my cheap chinesium servo drives. I've thoroughly isolated those now and have very clean encoder signals so I really doubt it's that.
- I'm running LinuxCNC 2.7.4
- The OS is: Debian 7.10 (Wheezy) and the kernel is 3.2.0-4-rt-686-pae
- The encoder is a US Digital HI-1024-IE-D with a differential sort of backpack that connects to the single ended encoder and drives differential signals to my mesa 7i76 breakout board.
- The 7i76 is connected to a mesa 7i92
- I keep doing test runs on a thread and every pass is slightly different. It's as if it's not getting correct the index pulse and I suspected that to be the case which is why I put so much effort into getting rid of any noise. However this does not appear to be the case.
- When I turn the spindle manually 10 turns I expect to see 4096*10 or 40960 counts in motion.spindle_revs, but it seems to undercount by about 5-10 counts per revolution. I've swapped in a different encoder and I have basically the same issue. What is strange is that if I rotate the spindle back and forth +- 45 degrees or so a few times and go back to the original position I'll have accumulated a couple hundred encoder counts. What I think I've discovered is that the system undercounts in the forward spindle direction, but seems to count properly in reverse.
Attached is my .hal file.
Any ideas?