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
Soporte de Firmware Futuro
Controladores Ruida
Rayforge incluye soporte experimental para controladores basados en Ruida (p.ej. RDC6442, RDC6445, Ruida R5). El controlador Ruida se conecta por red y soporta jogging, reporte de posición, control de aire asistido, selección de capa, auto-conexión y sondeo de estado.
Funciones:
- Conectividad de red (Ethernet/WiFi)
- Reporte de posición
- Controles de jogging
- Aire asistido y selecci ón de capa
- Soporte de puntos de referencia
Limitaciones:
- Experimental — aún no completamente estable
- Sin generación de G-code; Ruida usa su propio protocolo propietario
- Envío de trabajos aún no soportado
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