Apologies,
Think I had my head on backwards yesterday, I just followed your use of components regards displayed speed without actually looking at whether they were doing what you wanted.
If you have a spindle encoder index pulse of some sort, the RPS will always be correct, so you need to scale it to get RPM, remove the sign and put though a lowpass filter to stabilise it, then use it in your pyvcp speed display.
What is displayed will be the actual RPM, irrespective of what gear you are in.
When you use gearing, the speed figure to the motor needs scaling to reflect the effect of gearing upon the output spindle speed.
A commanded speed of S600 gives 600 RPM on a 1:1 drive but only 300 on a 1:2 drive
This link shows my solution to spindle gearing.
I have a user M code routine which changes the scale for each pulley position.
This is a second scale component, is linked to the stepgen which controls the spindle velocity.
www.linuxcnc.org/index.php/english/compo...id=10&id=15717#15762
The exact scale was determined by using a optical tachometer and incrementing the scale value,
to get the exact rpm required for the most commonly used speed in each pulley range
regards