El otro día me enseñaba Gil dos husillos -de BF20?- que los ponías diente contra diente de uno y otro ¡¡y no engranaban a todo el largo!!!!
Con un doble PID (PID=lazo) este tipo de errores mecánicos se "absorven" y la regla es la que indica la posición real y absoluta sin desviaciones mecánicas y el encoder motor se asegura que las velocidades sean las adecuadas independientemente de la carga, lo cual es fundamental para movimientos coordinados (círculos, ángulos, etc.)
En Mach3 también se puede, pero no parece tan fácil. El otro día "arrebuscando" encontré que publican las interfaces con sus diferentes módulos internos, de forma que puedes "enganchar" al planificador de trayectoria tu propio programa y delegar en el hardware que se asegure de generar y mantener las posiciones teóricas. El "pero" es que está muy pobremente documentado, pocos drivers parecen hacerlo y aunque sepas programar lo suficiente no parece haber buen soporte con esas interfaces (incluso Smoothsteeper comentan problemas con algunas versiones, antíguas/free fundamentalmente).
Siguientes pasos: elegir una tarjeta hardware que soporte suficientes:
- contadores para los encoders de las reglas (A/B/I x 4? ejes... ¿señal diferencial o TTL?)
- suficientes I/O para los motores --> PWM / +-10V / Pulse-Dir (enable? error?)
- suficientes I/O para finales de carrera, etc. (deseable protegidos y que permitan sensores inductivos)
- relés para refrigerante?
- velocidad del cabezal? --> PWM/+-10V
==================================================================
TOTAL:

??
Continuación: aprender a configurar HAL para "conectar" todo eso. (HAL es como un cableado de señales "físicas" a datos lógicos pero en un fichero de configuración)
Salu2
PD1. Borondes, te toca revisar especificaciones de tus drivers, reglas, etc. y rellenar la tabla