I came across this issue in QtPyVCP/Probe Basic because they share the same spindle_sim.hal as Gmoccapy.
It's really not ideal to have a simulated config be non-functional for spindle speeds ≥12500rpm at the default base period of 100000ns, I know it can be 'fixed', but ideally it should work by default, high speed spindles are not rare now.
Is there a reason why instead of modifying the base period, the value of sim_encoder_0.ppr (and therefore also encoder_0.position.scale) can't be decreased?
Is there actually a reason to sample this frequently in a simulated config?
I'm naively assuming that it is because this logic predates high speed spindles being easy to get hold of, so it wasn't seen as an issue at the time?