Hardware para ejecutar el software LinuxCNC

Se requiere una computadora para ejecutar LinuxCNC. Ver Requerimientos de sistema de la computadora

Lo más común es usar una computadora x86 (una computadora Intel / AMD estándar)

Se pueden usar computadoras ARM como Raspberry Pi u Orange Pi

Interfaz de hardware a la máquina CNC

Se necesita una interfaz para transmitir (y convertir) señales e información entre LinuxCNC (el software en la computadora) y el hardware CNC (como motores a paso / servos, interruptores de límite, entradas y salidas, etc.). Hay múltiples maneras de interconectar.

Las interfaces incluyen: - Parallel Port - Ethernet - EtherCAT - PCI / PCIe - SPI (cuando la computadora tenga una interfaz SPI nativa, como Raspberry Pi) - USB (no es una interfaz en tiempo real)

Se puede usar una mezcla de distintas interfaces. Por ejemplo, una combinación de ethercat para servocontrolador y puerto paralelo para entradas / salidas de propósito general (GPIO) adicionales

Algunas de esas soluciones son usables para todos los aspectos de interconexión de hardware, y algunas tienen roles específicos (p. ej. GPIO en tiempo no-real para una interfaz de operador con interruptores).

Las opciones de interfaz de hardware cambian con el tiempo. Esta no es una lista 100% completa de todas las interfaces de hardware que pueden usarse con LinuxCNC.

1. Parallel Port

Usando el puerto paralelo integrado en la placa madre, o una tarjeta PCI/PCIe de puerto paralelo.

2. Interfaz de puerto paralelo por software

Tareas en tiempo real (tiempo crítico) como la generación de pasos se hacen con software en el anfitrión de LinuxCNC; esto significa que la interfaz de puerto paralelo es mucho mas sensible a la latencia de la computadora LinuxCNC.

Ventajas: - Bajo costo - Configuración simple

Desventajas: - Sensible a la latencia de la computadora LinuxCNC - Entradas/salidas limitadas - Algunas tarjetas de puerto paralelo PCI/PCIe no funcionan bien o no soportan adecuadamente el modo EPP (se requiere el modo EPP para tarjetas de puerto paralelo Mesa / PICO).

3. Comunicación del puerto paralelo FPGA

Las tareas en tiempo real (tiempo crítico) como la generación de pasos se hacen con hardware (no en la computadora)

3.1. Mesa por puerto paralelo

Mesa usa matriz de puerta programable en campo (FPGA) interconectada por puerto paralelo, p. ej. 7i43

3.2. Pico Systems por puerto paralelo

4. Ethernet

4.1. Mesa por ethernet

Tarjetas Mesa con matriz de puerta programable en campo (FPGA) conectadas a la computadora LinuxCNC por ethernet. Las tareas de tiempo crítico (tiempo real) se realizan en la tarjeta FPGA.

Hay múltiples tarjetas FPGA con interfaz ethernet disponibles, con muchas tarjetas de expansión

4.2. Remora por ethernet

Los requerimientos de tiempo real se descargan en una placa controladora. Se soportan diferentes placas controladoras. Ver documentos de Remora.

Nótese que algunas de esas placas controladoras (p. ej. NVEM, EC300, EC500) están diseñadas (y se venden) para usarse con Mach3. Para usarse con LinuxCNC se requiere grabarles un nuevo firmware, el cual ha sido desarrollado por la comunidad de LinuxCNC. El fabricante no soporta LinuxCNC.

La PicoBOB-DLX de Expatria Technologies fue diseñada para LinuxCNC Remora.

Documentación de Remora: https://remora-docs.readthedocs.io

Desde Marzo de 2024: ``` Placas controladoras basadas en STM32

NVEM - Una placa basada en STM32F207 con chip Ethernet PHY, originalmente destinada a Mach3. [Ya no esta en producción, Soporte legado - sin nuevas características]
EC500 - Una placa basada en STM32F407 con chip ethernet PHY, originalmente destinada a Mach3. [Ya no esta en producción, Soporte legado - sin nuevas características]
Flexi-HAL de Expatria Technologies con adaptador ethernet uFlexiNET - Una placa basada en STM32F446 con adaptador SPI ethernet W5500 diseñada para Remora

Placas controladoras basadas en iMX RT1052

NVEM, EC300 y EC500 - Placas controladoras basadas en iMXRT1052 con chip ethernet PHY, originalmente destinadas para Mach3. [En desarrollo activo]

Placas controladoras basadas en RP2040

W5500-EVB-Pico de WIZnet - Placa de desarrollo basada en Raspberry Pi RP2040 con adaptador integrado SPI ethernet W5500
    PicoBOB-DLX de Expatria Technologies - Placa basada en Raspberry Pi RP2040 con adaptador integrado SPI ethernet W5500 diseñada para Remora
```

4.3. Litex-CNC

Este proyecto pretende crear un firmware de CNC genérico y controlador para tarjetas FPGA que sean soportadas por LiteX. Las configuraciones de la placa y el controlador se hacen con archivos json. Las placas soportadas son la 5A-75B y la 5A-75E de Colorlight, ya que son completamente soportadas con la cadena de herramientas de código abierto.

Las tarjetas 5A-75B y 5A-75E de Colorlight están diseñadas como una tarjeta receptora LED - dan salida a paneles de matriz de LEDs. Esas tarjetas sólo tienen salidas - requieren modificación de hardware para habilitar entradas. Es necesario soldar. Los búfers de salida pueden ser reemplazados con un búfer de entrada.

4.4. LinuxCNC-RIO

RealtimeIO para LinuxCNC basado en un FPGA

Se puede usar interfaz ethernet con una interfaz ethernet a SPI.

5. EtherCAT

EtherCAT™ de Beckhoff y sistemas compatibles hechos se pueden hacer funcionar con LinuxCNC usando el software de código abierto etherlab.

EtherCAT es la red ethernet en tiempo real abierta desarrollada originalmente por Beckhoff. El EtherCAT maestro (la computadora LinuxCNC) usa una interfaz (red) ethernet estándar - no se necesita hardware especial en el maestro. Los esclavos usan hardware especial. Hay varios dispositivos EtherCAT esclavos disponibles incluyendo servocontroladores, controladores de pasos, interfaces de entrada, salida, VFDs, y otros.

6. PCI / PCIe

6.1. Mesa

Tarjetas Mesa PCI / PCIe con una matriz de puerta programable de campo (FPGA). Las tareas de tiempo crítico (tiempo real) se realizan en la tarjeta FPGA.

Hay diversas tarjetas hija / de expansión disponibles

7. SPI

SPI = Interfaz periférica serie. Las interfaces SPI se pueden encontrar en computadoras de placa simple como Raspberry Pi u Orange Pi. La interfaz SPI generalmente no esta presente en computadoras estándar (AMD/Intel).

7.1. Remora SPI

Los requerimientos de tiempo real se descargan en una placa controladora. https://remora-docs.readthedocs.io

7.2. LinuxCNC-RIO

RealtimeIO para LinuxCNC basado en un FPGA

7.3. Mesa

Tarjetas Mesa con una matriz de puerta programable de campo (FPGA) interconectadas con una computadora LinuxCNC mediante SPI. Las tareas de tiempo crítico (tiempo real) se realizan en la tarjeta FPGA.

Ejemplo: 7C80 para Raspberry Pi

8. USB

Los dispositivos USB no pueden usarse para controlar motores o para realizar otras tareas en "tiempo real".

Los convertidores de USB a puerto paralelo NO son usables ni adecuados para CNC.

8.1. LinuxCNC_ArduinoConnector

Este proyecto te permite conectar un Arduino a LinuxCNC y proporciona tantas Entradas/Salidas como podrías desear. Este software se usa como una expansión de E/S para LinuxCNC. NO esta destinado para E/S de tiempo y seguridad relevantes. ¡No lo uses para interruptores de parada de emergencia o Endstop!

8.2. USB a RS485 / Modbus

Se pueden usar adaptadores de USB a serial (RS485 / Modbus) para controlar hardware en tiempo no-real como controladores de frecuencia variable (VFD) para control de husillo. No son adecuados para tareas de tiempo crítico.