Compatibilidad de Firmware
Esta página documenta la compatibilidad de firmware para controladores láser usados con Rayforge.
Resumen
Rayforge está diseñado principalmente para controladores basados en GRBL pero también es compatible con Marlin, Smoothieware y otros tipos de firmware.
Matriz de Compatibilidad
| Firmware | Version | Estado | Controlador | Notas |
|---|---|---|---|---|
| GRBL | 1.1+ | Completamente soportado | GRBL Serial / GRBL Serial Simple | Recomendado |
| grblHAL | 2023+ | Compatible | GRBL Serial / GRBL Telnet | Fork moderno de GRBL |
| GRBL | 0.9 | Limitado | GRBL Serial | Antiguo, puede tener problemas |
| Smoothieware | Todos | Compatible | SmoothieDriver (Telnet) | Basado en red |
| Marlin | 2.0+ | Compatible | Marlin Serial | Requiere modo láser |
| ESP3D | Todos | Compatible | GRBL Telnet | Basado en red |
| OctoPrint | Todos | Experimental | OctoPrint | Ver notas abajo |
| Otros | - | No soportado | - | Solicitar soporte |
Firmware GRBL
Estado: ✓ Completamente Soportado Versiones: 1.1+ Controlador: GRBL Serial, GRBL Serial Simple
GRBL 1.1 (Recomendado)
¿Qué es GRBL 1.1?
GRBL 1.1 es el firmware más común para máquinas CNC y láser de aficionado. Lanzado en 2017, es estable, bien documentado y ampliamente soportado.
Funciones soportadas por Rayforge:
- Comunicación serie (USB)
- Reportes de estado en tiempo real
- Modo láser (M4 potencia constante)
- Lectura/escritura de ajustes ($$, $X=valor)
- Ciclos de homing ($H)
- Sistemas de coordenadas de trabajo (G54)
- Comandos de desplazamiento ($J=)
- Anulación de velocidad de avance
- Límites suaves
- Límites físicos (finales de carrera)
Limitaciones conocidas:
- Rango de potencia: 0-1000 (parámetro S)
- Sin conectividad de red (solo USB)
- Memoria a bordo limitada (búfer de código G pequeño)
Verificando Versión de GRBL
Consultar versión:
Conéctate a tu controlador y envía:
$I
Ejemplos de respuesta:
[VER:1.1h.20190825:]
[OPT:V,15,128]
1.1h= versión de GRBL 1.1h- La fecha indica compilación
GRBL 0.9 (Antiguo)
Estado: Soporte Limitado
GRBL 0.9 es una versión antigua con algunos problemas de compatibilidad:
Diferencias:
- Formato de reporte de estado diferente
- Sin modo láser (M4) - solo usa M3
- Menos ajustes
- Sintaxis de desplazamiento diferente
Si tienes GRBL 0.9:
- Actualiza a GRBL 1.1 si es posible (recomendado)
- Usa M3 en lugar de M4 (potencia menos predecible)
- Prueba exhaustivamente - algunas funciones pueden no funcionar
Instrucciones de actualización: Ver GRBL Wiki
Controlador GRBL Serial Simple
Rayforge incluye un segundo controlador serie GRBL para dispositivos donde el controlador estándar con contador de búfer causa falsas alarmas o errores de comunicación.
Cómo funciona:
- Usa un protocolo ping-pong: envía una línea, espera "ok", envía la siguiente
- Sin gestión de búfer por conteo de caracteres
- Sin detección de bloqueos ni recuperación de paradas
- Más simple y predecible en algunos dispositivos
Cuándo usarlo:
- Tu dispositivo recibe falsas alarmas de búfer con el controlador estándar
- Ocurren errores de comunicación intermitentes con el controlador estándar
- Tienes un dispositivo con comportamiento de búfer inusual
Cuándo NO usarlo:
- El controlador GRBL Serial estándar funciona de manera fiable en la mayoría de dispositivos
- El controlador simple carece de recuperación de bloqueos, por lo que los trabajos pueden detenerse ante una respuesta "ok" perdida sin recuperación automática
grblHAL
Estado: Compatible Versiones: 2023+ Controlador: GRBL Serial
¿Qué es grblHAL?
grblHAL es un fork moderno de GRBL con funciones mejoradas:
- Soporte para múltiples hardware de controlador (STM32, ESP32, etc.)
- Red Ethernet/WiFi
- Soporte de tarjeta SD
- Más pines de E/S
- Soporte láser mejorado
Compatibilidad con Rayforge:
- Completamente compatible - grblHAL mantiene el protocolo GRBL 1.1
- Todas las funciones de GRBL funcionan
- Funciones adicionales (red, SD) aún no soportadas por Rayforge
- Reportes de estado idénticos a GRBL
Usando grblHAL:
- Selecciona el controlador "GRBL Serial" en Rayforge
- Conecta vía serie USB (igual que GRBL)
- Todas las funciones funcionan como está documentado para GRBL
Futuro: Rayforge puede añadir soporte para funciones específicas de grblHAL (red, etc.)
Controlador GRBL Telnet
Estado: Soportado Firmware: grblHAL, ESP3D y otros controladores GRBL en red Controlador: GRBL Telnet
Acerca del Controlador GRBL Telnet
El controlador GRBL Telnet se conecta a controladores basados en GRBL a través de la red mediante una interfaz Telnet. Ideal para placas con WiFi o Ethernet integrado — sin necesidad de cable USB.
Características:
- Conectividad de red (Ethernet/WiFi)
- Compatible con placas basadas en grblHAL y ESP3D
- Mismo protocolo GRBL que el controlador serie
Usando el controlador GRBL Telnet:
- Configura la red en tu controlador (WiFi o Ethernet)
- Selecciona "GRBL Telnet" en los ajustes de máquina
- Introduce la dirección IP y puerto de tu controlador
- Conecta — el controlador se comunica por Telnet
Requisitos:
- Controlador compatible con GRBL en red (grblHAL, ESP3D, etc.)
- Controlador y computadora en la misma red
- Interfaz Telnet habilitada en el controlador
Smoothieware
Controlador: GRBL Serial (modo compatibilidad)
Notas de Compatibilidad
Smoothieware usa sintaxis de código G diferente:
Diferencias clave:
| Función | GRBL | Smoothieware |
|---|---|---|
| Láser Encendido | M4 S<valor> | M3 S<valor> |
| Rango de Potencia | 0-1000 | 0.0-1.0 (flotante) |
| Estado | formato <...> | Formato diferente |
Usando Smoothieware con Rayforge:
- Selecciona el dialecto Smoothieware en ajustes de máquina > Código G > Dialecto
- Prueba con potencia baja primero
- Verifica el rango de potencia coincide con tu configuración
- Sin estado en tiempo real - retroalimentación limitada
Limitaciones:
- Reporte de estado no completamente compatible
- La escala de potencia puede diferir
- Comandos de ajustes ($$) no soportados
- Sin probar en hardware real
Recomendación: Si es posible, usa firmware compatible con GRBL en su lugar.
Marlin
Versiones: 2.0+ con soporte láser Controlador: Marlin Serial
Controlador Marlin Serial
Rayforge incluye un MarlinSerialDriver dedicado que se conecta al firmware Marlin a través de serial (USB). Marlin 2.0+ puede controlar láseres cuando está configurado apropiadamente.
Características:
- Comunicación serial (USB)
- Protocolo de handshake de Marlin (espera el mensaje "start")
- Transmisión de G-code línea por línea con acuse de recibo
ok - Consulta de posición M114
- Ejecución de trabajos con informe de progreso detallado
- Home (G28), jogging, movimiento, cambio de herramienta (T)
- Configuración de offset WCS (G10 L2 P)
- Control de potencia láser mediante el dialecto Marlin
- Cancelación vía M410 (Quick Stop)
- Sonda de auto-configuración (consulta M115, M211, M503)
Requisitos:
- Firmware Marlin 2.0 o posterior
- Funciones láser habilitadas:
#define LASER_FEATURE#define LASER_POWER_INLINE
- Rango de potencia correcto configurado:
#define SPEED_POWER_MAX 1000
Usando Marlin con Rayforge:
- Selecciona el controlador "Marlin (Serial)" en ajustes de máquina
- Configura el puerto serie y la velocidad de baudios (típicamente 115200)
- Selecciona el dialecto Marlin en ajustes de máquina > G-code > Dialecto
- Configura Marlin para uso láser
- Prueba el rango de potencia (0-1000 o 0-255)
Limitaciones:
- Experimental — comentarios bienvenidos
- Lectura/escritura de ajustes (como
$$de GRBL) no soportada - Sin conectividad de red (solo USB)
Guía de Actualización de Firmware
Actualizando a GRBL 1.1
¿Por qué actualizar?
- Modo láser (M4) para potencia constante
- Mejor reporte de estado
- Más confiable
- Mejor soporte de Rayforge
Cómo actualizar:
-
Identifica tu placa controladora:
- Arduino Nano/Uno (ATmega328P)
- Arduino Mega (ATmega2560)
- Placa personalizada
-
Descarga GRBL 1.1:
- GRBL Releases
- Obtén la última versión 1.1 (1.1h recomendado)
-
Flashea el firmware:
Usando Arduino IDE:
1. Instala Arduino IDE2. Abre el sketch GRBL (grbl.ino)3. Selecciona la placa y puerto correctos4. SubirUsando avrdude:
avrdude -c arduino -p m328p -P /dev/ttyUSB0 \-U flash:w:grbl.hex:i -
Configura GRBL:
- Conecta vía serie
- Envía
$$para ver ajustes - Configura para tu máquina
Respaldo Antes de Actualizar
Guarda tus ajustes:
- Conéctate al controlador
- Envía el comando
$$ - Copia toda la salida de ajustes
- Guárdala en un archivo
Después de actualizar:
- Restaura los ajustes uno por uno:
$0=10,$1=25, etc. - O usa los valores predeterminados y reconfigura
Hardware de Controlador
Controladores Comunes
| Placa | Firmware Típico | Soporte Rayforge |
|---|---|---|
| Arduino CNC Shield | GRBL 1.1 | Excelente |
| MKS DLC32 | grblHAL | Excelente |
| Ruida | Propietario | Experimental |
| OctoPrint (Pi) | Varios | Experimental |
Controladores Recomendados
Para mejor compatibilidad con Rayforge:
-
Arduino Nano + CNC Shield (GRBL 1.1)
- Económico (~$10-20)
- Fácil de flashear
- Bien documentado
-
MKS DLC32 (grblHAL)
- Moderno (basado en ESP32)
- Capaz de WiFi
- Desarrollo activo
-
Placas GRBL personalizadas
- Muchas disponibles en marketplaces
- Verifica soporte de GRBL 1.1+
Configuración de Firmware
Ajustes de GRBL para Láser
Ajustes esenciales:
$30=1000 ; Potencia máxima de husillo/láser (1000 = 100%)
$31=0 ; Potencia mínima de husillo/láser
$32=1 ; Modo láser habilitado (1 = on)
Ajustes de máquina:
$100=80 ; Pasos/mm X (calibra para tu máquina)
$101=80 ; Pasos/mm Y
$110=3000 ; Tasa máxima X (mm/min)
$111=3000 ; Tasa máxima Y
$120=100 ; Aceleración X (mm/seg)
$121=100 ; Aceleración Y
$130=300 ; Recorrido máximo X (mm)
$131=200 ; Recorrido máximo Y (mm)
Ajustes de seguridad:
$20=1 ; Límites suaves habilitados
$21=1 ; Límites físicos habilitados (si tienes finales de carrera)
$22=1 ; Homing habilitado
Probando el Firmware
Secuencia de prueba básica:
-
Prueba de conexión:
Enviar: ?Esperar: <Idle|...> -
Verificación de versión:
Enviar: $IEsperar: [VER:1.1...] -
Verificación de ajustes:
Enviar: $$Esperar: $0=..., $1=..., etc. -
Prueba de movimiento:
Enviar: G91 G0 X10Esperar: La máquina se mueve 10mm en X -
Prueba de láser (potencia muy baja):
Enviar: M4 S10Esperar: El láser se enciende (tenue)Enviar: M5Esperar: El láser se apaga
Solución de Problemas de Firmware
El Firmware No Responde
Síntomas:
- Sin respuesta a comandos
- La conexión falla
- El estado no se reporta
Diagnóstico:
-
Revisa la velocidad de transmisión:
- GRBL 1.1 por defecto: 115200
- GRBL 0.9: 9600
- Prueba ambos
-
Revisa el cable USB:
- Cable de datos, no solo de carga
- Reemplaza con un cable conocido como bueno
-
Revisa el puerto:
- Linux:
/dev/ttyUSB0o/dev/ttyACM0 - Windows: COM3, COM4, etc.
- Puerto correcto seleccionado en Rayforge
- Linux:
-
Prueba con terminal:
- Usa screen, minicom, o PuTTY
- Envía
?y ve si obtienes respuesta
El Firmware Falla
Síntomas:
- El controlador se bloquea durante el trabajo
- Desconexiones aleatorias
- Comportamiento inconsistente
Posibles causas:
- Desbordamiento de búfer - Archivo de código G demasiado complejo
- Ruido eléctrico - Mala conexión a tierra o EMI
- Bug de firmware - Actualiza a la última versión
- Problema de hardware - Controlador defectuoso
Soluciones:
- Actualiza el firmware a la última versión estable
- Simplifica el código G (reduce precisión, menos segmentos)
- Añade cuentas de ferrita al cable USB
- Mejora la conexión a tierra y el enrutamiento de cables
Firmware Incorrecto
Síntomas:
- Comandos rechazados
- Comportamiento inesperado
- Mensajes de error
Solución:
- Consulta la versión del firmware:
$I - Compara con las expectativas de Rayforge
- Actualiza o selecciona el dialecto correcto
Controladores Ruida
Rayforge se conecta a controladores basados en Ruida (p.ej. RDC6442, RDC6445, Ruida R5) mediante el controlador Ruida RPA, que habla el protocolo nativo del controlador por USB o UDP, o vía TUI RPC a través del Ruida Protocol Analyzer. Los perfiles de dispositivo Generic Ruida RPA y Monport MP-570 60W CO2 proporcionan puntos de partida para máquinas nuevas.
Funciones:
- Conectividad USB y UDP; cuando ambos están configurados, Rayforge alterna automáticamente entre ellos a medida que se conectan y desconectan los cables
- Envío de trabajos con reporte de posición, jogging, homing y Mover a Posición
- El encuadre traza el contorno del trabajo con movimientos absolutos sin haz, por lo que funciona sin disparar el láser
- Honra el ajuste de Modo de Potencia de cada paso: Dinámico activa el escalado de potencia del controlador y Constante lo desactiva
- Los puertos serie pueden vincularse desde un desplegable de dispositivos USB con coincidencia VID:PID, de modo que la reconexión automática sigue a la máquina después de que el sistema operativo reenumere los dispositivos USB
Ajustes de afinado de potencia:
- Power scaling — eleva la potencia mínima emitida a medida que la velocidad de corte de la capa disminuye
- VECTOR power floor — potencia mínima para la compensación de corte vectorial durante la aceleración y la desaceleración, reduciendo el sobre-quemado en los extremos de las líneas
- IMAGE power bias — potencia añadida a las líneas de escaneo raster, ya que los tubos CO2 no disparan con potencias muy bajas
Limitaciones:
- Experimental — probado hasta ahora en un controlador RDC6442S (Monport MP570 CO2)
- Sin generación de G-code; Ruida usa su propio protocolo propietario
- El modo rotatorio aún no está soportado
Controladores Experimentales
OctoPrint
Rayforge incluye un controlador OctoPrint experimental que envía G-code directamente a un servidor OctoPrint a través de la red. Esto es útil si tu láser está conectado a una Raspberry Pi u otra máquina ejecutando OctoPrint.
Funcionalidades:
- Conexión WebSocket para actualizaciones de estado en tiempo real
- Sondeo REST como alternativa cuando WebSocket no está disponible
- Reconexión automática al perder la conexión
- Envío de trabajos con inicio automático de impresión
- Jogging, referencia y controles de pausa/reanudación
- Flujo "Solicitar Acceso" para claves de aplicación de OctoPrint
Usando el controlador OctoPrint:
- Selecciona el controlador "OctoPrint" en los ajustes de la máquina
- Introduce el nombre de host o dirección IP de tu servidor OctoPrint
- Establece el puerto (predeterminado: 80)
- Haz clic en "Solicitar Acceso" para obtener una clave API a través del sistema de claves de aplicación de OctoPrint
- Conecta — Rayforge establecerá una conexión WebSocket
Limitaciones:
- Experimental y no probado en hardware real — comentarios bienvenidos
- No es posible leer o escribir ajustes del firmware a través de OctoPrint
- Los resultados de sondeo no son reportados por OctoPrint
- La lectura de desplazamientos WCS no es compatible
Otras Funciones Solicitadas
Los usuarios han solicitado soporte para:
- Trocen/AWC - Controladores láser comerciales
- ESP32 WiFi - Conectividad de red para grblHAL
- API de Láser - API de máquina directa (sin código G)
Estado: Actualmente no soportados. Las solicitudes de funciones son bienvenidas en GitHub.
Contribuyendo
Para añadir soporte de firmware:
- Implementa el controlador en
rayforge/machine/driver/ - Define el dialecto de código G en
rayforge/machine/models/dialect.py - Prueba exhaustivamente en hardware real
- Envía pull request con documentación
Páginas Relacionadas
- Dialectos de Código G - Detalles de dialectos
- Ajustes de Dispositivo - Configuración de GRBL
- Problemas de Conexión - Solución de problemas de conexión
- Ajustes Generales - Configuración de máquina