Damon, Thanks for the detailed reply. I have done some work with 4th axis with same goals as you are working toward. Obviously you have the knowledge and creativity to make the cat pretty nervous, so I was just curious about how you approached the problem.
It occurred to me in reading your posts that you had no way to run the 4th axis as a spindle and also run the main spindle simultaneously, but now I see that you have that on the list as well. My only comment on your method is to mention that if you are using a servo motor on an axis (S, A, whatever), there is no need for an index pulse to control speed. A single index pulse per rev, in my view, is pretty crude and also problematic in any case.
This is what I ended up doing . . . again not saying this is *best*, just what I am running at the moment, and how I set up customer systems: Both the S and the A axis are dedicated to the 4th axis and I run the main spindle separately. M3,4, and 5 are editable macros 'out-of-thr-box' so relay on and off is no problem which only leaves speed. In my case, I have had speed under G-code control, and also manual and I much prefer manual, so my solution was an easy one. However, were I inclined to put the spindle speed back under Mach's control, I might spend some time noodling over the possibility of using the C or D axis somehow, but my thinking at this moment is that I would use one of the tiny 'PLC' like Arduino or PIC to generate the speed control for the spindle. Al ll you would need is to read the commanded speed out of Mach and send a command (pulse count would be easy) to the Arduino which in turn would adjust the spindle speed. Arduino/PIC could easily read an index pulse and provide a stable speed.
More comments in next post: