Cool, what kind of tweeking did you have to do with hal? John
nothing special, just set up the spindle encoder so that motion.spindle-revs increases by 1 when the spindle turns one revolution, and connect the index-enable to the encoder counter.
setp m5i20.0.enc-03-scale 2000 net spindle-pos m5i20.0.enc-03-position net spindle-pos motion.spindle-revs net spindle-index-en motion.spindle-index-enable net spindle-index-en m5i20.0.enc-03-index-enable
Rigid tapping worked fine at 500 RPM, but gave following errors at higher spindle speeds.
Now I did it by first starting the spindle and then issuing the G33.1 command.
I suspect the following errors are related to the Z-axis not keeping up with the spindle if the spindle is already turning at 2000rpm.
So perhaps start the spindle and have the G33.1 command on the same line of g-code so that the spindle accelerates from 0rpm to commanded rpm and the z-axis has time to respond?
Now I have no accel/decel on spindle-speed-out, so the accel/decel is only set in the VFD. But that should be ok as EMC2 does the gearing on the actual encoder signal and not commanded rpm.
It is mandatory to have quadrature encoder and index signal for rigid tapping.