I know TCNC is kind of crappy when it comes to handling jog wheels (MPGs) because it ignores the input from the wheel while moving an axis. What happens is that you turn the jog wheel, TCNC moves the axis, and ignores further input until move is done. If you turn it fast enough, TCNC will see the bits that come before the ones it last read.... hmm.. will clear that one up.
It starts of at 0 0, and when you turn the wheel, it goes to 1 0. TCNC moves the axis, and meanwhile you turn the wheel, and go by 1 1, 0 1, and come back to 0 0 (if TCNC is done making its move it will register this), so TCNC thinks you are going backwards.
I have a high pulsecount encoder (400ppr), and TCNC counts every single bit changed. When one bit changes, it makes one step (or as many steps as you set it). This I dont really like, so I have made a simple program for a PIC which waits for a full sequence before it sends the signal on to TCNC. So after a full sequence, the PIC sends a 1 0 to TCNC. After the next sequence it sends 1 1 to TCNC..etc. I might also put in a timer into the program so that the PIC wont send out signals faster then what TCNC can handle (this will have to be adjusted out from how big steps you are taking).
So if this actually works, I will be able to make 100 steps with my 400ppr encoder (as it is intended for). This way it will be a bit harder to turn it too fast. Right now I cant even exceed 60rpm. So if I can get up to 3rps I'm happy. Dave has talked about fixing the code so that TCNC checks the input all the time.
If anyone is interested in this, or have any suggestions or experience with jog wheels in TCNC, please comment.
PS. I will have to wait until next week to test the thing. I need a better powersupply and I have to get my breakout board back from work.