Ir al contenido principal

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​

FirmwareVersionEstadoControladorNotas
GRBL1.1+Completamente soportadoGRBL Serial / GRBL Serial SimpleRecomendado
grblHAL2023+CompatibleGRBL Serial / GRBL TelnetFork moderno de GRBL
GRBL0.9LimitadoGRBL SerialAntiguo, puede tener problemas
SmoothiewareTodosCompatibleSmoothieDriver (Telnet)Basado en red
Marlin2.0+CompatibleMarlin SerialRequiere modo láser
ESP3DTodosCompatibleGRBL TelnetBasado en red
OctoPrintTodosExperimentalOctoPrintVer 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:

  1. Actualiza a GRBL 1.1 si es posible (recomendado)
  2. Usa M3 en lugar de M4 (potencia menos predecible)
  3. 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:

  1. Selecciona el controlador "GRBL Serial" en Rayforge
  2. Conecta vía serie USB (igual que GRBL)
  3. 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:

  1. Configura la red en tu controlador (WiFi o Ethernet)
  2. Selecciona "GRBL Telnet" en los ajustes de máquina
  3. Introduce la dirección IP y puerto de tu controlador
  4. 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ónGRBLSmoothieware
Láser EncendidoM4 S<valor>M3 S<valor>
Rango de Potencia0-10000.0-1.0 (flotante)
Estadoformato <...>Formato diferente

Usando Smoothieware con Rayforge:

  1. Selecciona el dialecto Smoothieware en ajustes de máquina > Código G > Dialecto
  2. Prueba con potencia baja primero
  3. Verifica el rango de potencia coincide con tu configuración
  4. 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:

  1. Firmware Marlin 2.0 o posterior
  2. Funciones láser habilitadas:
    #define LASER_FEATURE
    #define LASER_POWER_INLINE
  3. Rango de potencia correcto configurado:
    #define SPEED_POWER_MAX 1000

Usando Marlin con Rayforge:

  1. Selecciona el controlador "Marlin (Serial)" en ajustes de máquina
  2. Configura el puerto serie y la velocidad de baudios (típicamente 115200)
  3. Selecciona el dialecto Marlin en ajustes de máquina > G-code > Dialecto
  4. Configura Marlin para uso láser
  5. 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:

  1. Identifica tu placa controladora:

    • Arduino Nano/Uno (ATmega328P)
    • Arduino Mega (ATmega2560)
    • Placa personalizada
  2. Descarga GRBL 1.1:

    • GRBL Releases
    • Obtén la última versión 1.1 (1.1h recomendado)
  3. Flashea el firmware:

    Usando Arduino IDE:

    1. Instala Arduino IDE
    2. Abre el sketch GRBL (grbl.ino)
    3. Selecciona la placa y puerto correctos
    4. Subir

    Usando avrdude:

    avrdude -c arduino -p m328p -P /dev/ttyUSB0 \
    -U flash:w:grbl.hex:i
  4. Configura GRBL:

    • Conecta vía serie
    • Envía $$ para ver ajustes
    • Configura para tu máquina

Respaldo Antes de Actualizar​

Guarda tus ajustes:

  1. Conéctate al controlador
  2. Envía el comando $$
  3. Copia toda la salida de ajustes
  4. 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​

PlacaFirmware TípicoSoporte Rayforge
Arduino CNC ShieldGRBL 1.1Excelente
MKS DLC32grblHALExcelente
RuidaPropietarioExperimental
OctoPrint (Pi)VariosExperimental

Controladores Recomendados​

Para mejor compatibilidad con Rayforge:

  1. Arduino Nano + CNC Shield (GRBL 1.1)

    • Económico (~$10-20)
    • Fácil de flashear
    • Bien documentado
  2. MKS DLC32 (grblHAL)

    • Moderno (basado en ESP32)
    • Capaz de WiFi
    • Desarrollo activo
  3. 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:

  1. Prueba de conexión:

    Enviar: ?
    Esperar: <Idle|...>
  2. Verificación de versión:

    Enviar: $I
    Esperar: [VER:1.1...]
  3. Verificación de ajustes:

    Enviar: $$
    Esperar: $0=..., $1=..., etc.
  4. Prueba de movimiento:

    Enviar: G91 G0 X10
    Esperar: La máquina se mueve 10mm en X
  5. Prueba de láser (potencia muy baja):

    Enviar: M4 S10
    Esperar: El láser se enciende (tenue)
    Enviar: M5
    Esperar: 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:

  1. Revisa la velocidad de transmisión:

    • GRBL 1.1 por defecto: 115200
    • GRBL 0.9: 9600
    • Prueba ambos
  2. Revisa el cable USB:

    • Cable de datos, no solo de carga
    • Reemplaza con un cable conocido como bueno
  3. Revisa el puerto:

    • Linux: /dev/ttyUSB0 o /dev/ttyACM0
    • Windows: COM3, COM4, etc.
    • Puerto correcto seleccionado en Rayforge
  4. 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:

  1. Desbordamiento de búfer - Archivo de código G demasiado complejo
  2. Ruido eléctrico - Mala conexión a tierra o EMI
  3. Bug de firmware - Actualiza a la última versión
  4. 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:

  1. Consulta la versión del firmware: $I
  2. Compara con las expectativas de Rayforge
  3. 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:

  1. Selecciona el controlador "OctoPrint" en los ajustes de la máquina
  2. Introduce el nombre de host o dirección IP de tu servidor OctoPrint
  3. Establece el puerto (predeterminado: 80)
  4. Haz clic en "Solicitar Acceso" para obtener una clave API a través del sistema de claves de aplicación de OctoPrint
  5. 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:

  1. Implementa el controlador en rayforge/machine/driver/
  2. Define el dialecto de código G en rayforge/machine/models/dialect.py
  3. Prueba exhaustivamente en hardware real
  4. Envía pull request con documentación

Páginas Relacionadas​