Estou em duvida quanto ao GRBL. Ele nao e um controlador que faz a mesma funcao do LinuxCNC? Entao o LinuxCNC instalado no PC envia sinais para o GRBL instalado no Arduino, via USB e ddo Arduino o GRBL envia os sinais para os drives? E isso?
O GRBL é basicamente um interpretador de comandos em código G e gerador dos sinais correspondentes (basicamente de pulso e direção), para os drivers. Contudo, não possui uma interface gráfica "com janelas" (windows) como num PC, no máximo, um display LCD.
Quando é utilizado o GRBL (no Arduino) é utilizado um programa no PC (Gcode Sender, em Linux) que implementa as funcionalidades de interface com o usuário e o envio dos comando em código G, ao Arduino. Desse modo, as funcionalidades do LinuxCNC (interface com usuário, abrir arquivo de código G, executar os comandos G, geração de sinais para os drivers, ...) são substituídas pelo Gcode Sender e o GRBL.
Sendo um programa mais sofisticado, o LinuxCNC ainda possui outras funcionalidades, como um interpretador de comandos Modbus, compatibilidade com drivers com interface PCI, controle PID, ... Dispensáveis em seu caso.
Eu ainda acrescentaria um novo ator nesse cenário, a TinyG, que é uma placa controladora para CNC OpenSource com interface USB, drivers incorporados, de baixo custo (pode ser montada ou comprada por US$ 120,00) e desempenho bem superior ao GRBL/Arduino. Ver:
https://github.com/synthetos/TinyG/wiki/What-is-TinyG, https://synthetos.myshopify.com/products/tinyg https://www.adafruit.com/product/1749