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 SerialRecomendado
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 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


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

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:

  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