跳转到主要内容

固件兼容性

此页面记录与 Rayforge 一起使用的激光控制器的固件兼容性。

概述

Rayforge 主要为基于 GRBL 的控制器设计,但对其他固件类型有实验性支持。

兼容性矩阵

固件版本状态驱动程序备注
GRBL1.1+完全支持GRBL 串口推荐
grblHAL2023+兼容GRBL 串口现代 GRBL 分支
GRBL0.9有限GRBL 串口较旧,可能有问题
Smoothieware全部实验性无(使用 GRBL 驱动)未测试
Marlin2.0+实验性无(使用 GRBL 驱动)需要激光模式
其他-不支持-请求支持

GRBL 固件

状态: 完全支持 版本: 1.1+ 驱动程序: GRBL 串口

GRBL 1.1(推荐)

什么是 GRBL 1.1?

GRBL 1.1 是业余 CNC 和激光机器最常见的固件。2017 年发布,它稳定、文档齐全且广泛支持。

Rayforge 支持的功能:

  • 串口通信(USB)
  • 实时状态报告
  • 激光模式(M4 恒定功率)
  • 设置读/写($$、$X=value)
  • 归零循环($H)
  • 工作坐标系(G54)
  • 点动命令($J=)
  • 进给率覆盖
  • 软限位
  • 硬限位(终点开关)

已知限制:

  • 功率范围:0-1000(S 参数)
  • 无网络连接(仅 USB)
  • 板载内存有限(小 G 代码缓冲区)

检查 GRBL 版本

查询版本:

连接到控制器并发送:

$I

响应示例:

[VER:1.1h.20190825:]
[OPT:V,15,128]
  • 1.1h = GRBL 版本 1.1h
  • 日期表示构建

GRBL 0.9(较旧)

状态: 有限支持

GRBL 0.9 是较旧的版本,有一些兼容性问题:

差异:

  • 状态报告格式不同
  • 无激光模式(M4) - 仅使用 M3
  • 设置较少
  • 点动语法不同

如果您有 GRBL 0.9:

  1. 升级到 GRBL 1.1(如果可能)(推荐)
  2. 使用 M3 而不是 M4(功率不太可预测)
  3. 彻底测试 - 某些功能可能无法工作

升级说明: 参见 GRBL Wiki


grblHAL

状态: 兼容 版本: 2023+ 驱动程序: GRBL 串口

什么是 grblHAL?

grblHAL 是 GRBL 的现代分支,具有增强功能:

  • 多控制器硬件支持(STM32、ESP32 等)
  • 以太网/WiFi 网络
  • SD 卡支持
  • 更多 I/O 引脚
  • 增强的激光支持

与 Rayforge 的兼容性:

  • 完全兼容 - grblHAL 维护 GRBL 1.1 协议
  • 所有 GRBL 功能都工作
  • 额外功能(网络、SD)Rayforge 尚不支持
  • 状态报告与 GRBL 相同

使用 grblHAL:

  1. 在 Rayforge 中选择"GRBL 串口"驱动程序
  2. 通过 USB 串口连接(就像 GRBL)
  3. 所有功能按 GRBL 记录工作

未来: Rayforge 可能会添加对 grblHAL 特定功能的支持(网络等)


Smoothieware

版本: 全部 驱动程序: GRBL 串口(兼容模式)

兼容性说明

Smoothieware 使用不同的 G 代码语法:

主要差异:

功能GRBLSmoothieware
激光开M4 S<value>M3 S<value>
功率范围0-10000.0-1.0(浮点)
状态<...> 格式不同格式

在 Rayforge 中使用 Smoothieware:

  1. 在机器设置 > G 代码 > 方言中选择 Smoothieware 方言
  2. 首先用低功率测试
  3. 验证功率范围与您的配置匹配
  4. 无实时状态 - 反馈有限

限制:

  • 状态报告不完全兼容
  • 功率缩放可能不同
  • 不支持设置($$ 命令)
  • 在真实硬件上未测试

建议: 如果可能,改用 GRBL 兼容固件。


Marlin

版本: 2.0+ 带激光支持 驱动程序: GRBL 串口

Marlin 激光

Marlin 2.0+ 在正确配置时可以控制激光。

要求:

  1. Marlin 2.0 或更高版本固件
  2. 已启用激光功能:
    #define LASER_FEATURE
    #define LASER_POWER_INLINE
  3. 配置正确的功率范围:
    #define SPEED_POWER_MAX 1000

兼容性:

  • 支持 M4 激光模式
  • 基本 G 代码(G0、G1、G2、G3)
  • 状态报告不同
  • 设置命令不同
  • 空气辅助(M8/M9)可能无法工作

在 Rayforge 中使用 Marlin:

  1. 在机器设置 > G 代码 > 方言中选择 Marlin 方言
  2. 为激光使用配置 Marlin
  3. 测试功率范围匹配(0-1000 或 0-255)
  4. 有限测试 - 谨慎使用

更好的替代方案: 在激光机器上使用 GRBL 固件。


固件升级指南

升级到 GRBL 1.1

为什么要升级?

  • 激光模式(M4)用于恒定功率
  • 更好的状态报告
  • 更可靠
  • 更好的 Rayforge 支持

如何升级:

  1. 识别您的控制器板:

    • Arduino Nano/Uno(ATmega328P)
    • Arduino Mega(ATmega2560)
    • 自定义板
  2. 下载 GRBL 1.1:

  3. 刷入固件:

    使用 Arduino IDE:

    1. 安装 Arduino IDE
    2. 打开 GRBL 草图(grbl.ino)
    3. 选择正确的板和端口
    4. 上传

    使用 avrdude:

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

    • 通过串口连接
    • 发送 $$ 查看设置
    • 为您的机器配置

升级前备份

保存您的设置:

  1. 连接到控制器
  2. 发送 $$ 命令
  3. 复制所有设置输出
  4. 保存到文件

升级后:

  • 逐个恢复设置:$0=10$1=25 等。
  • 或使用默认值并重新配置

控制器硬件

常见控制器

典型固件Rayforge 支持
Arduino CNC ShieldGRBL 1.1优秀
MKS DLC32grblHAL优秀
Cohesion3DSmoothieware有限
SKR boardsMarlin/grblHAL各异
Ruida专有不支持
Trocen专有不支持
TopWisdom专有不支持

推荐控制器

为了最佳的 Rayforge 兼容性:

  1. Arduino Nano + CNC Shield(GRBL 1.1)

    • 便宜(约 $10-20)
    • 易于刷入
    • 文档齐全
  2. MKS DLC32(grblHAL)

    • 现代(基于 ESP32)
    • WiFi 功能
    • 活跃开发
  3. 自定义 GRBL 板

    • 市场上有很多可用
    • 检查 GRBL 1.1+ 支持

固件配置

激光的 GRBL 设置

基本设置:

$30=1000    ; 最大主轴/激光功率(1000 = 100%)
$31=0 ; 最小主轴/激光功率
$32=1 ; 激光模式启用(1 = 开)

机器设置:

$100=80     ; X 步/mm(为您的机器校准)
$101=80 ; Y 步/mm
$110=3000 ; X 最大速率(mm/min)
$111=3000 ; Y 最大速率
$120=100 ; X 加速度(mm/sec)
$121=100 ; Y 加速度
$130=300 ; X 最大行程(mm)
$131=200 ; Y 最大行程(mm)

安全设置:

$20=1       ; 软限位启用
$21=1 ; 硬限位启用(如果您有终点开关)
$22=1 ; 归零启用

测试固件

基本测试序列:

  1. 连接测试:

    发送: ?
    期望: <Idle|...>
  2. 版本检查:

    发送: $I
    期望: [VER:1.1...]
  3. 设置检查:

    发送: $$
    期望: $0=..., $1=..., 等。
  4. 移动测试:

    发送: G91 G0 X10
    期望: 机器在 X 方向移动 10mm
  5. 激光测试(极低功率):

    发送: M4 S10
    期望: 激光开启(暗)
    发送: M5
    期望: 激光关闭

固件问题故障排除

固件无响应

症状:

  • 命令无响应
  • 连接失败
  • 不报告状态

诊断:

  1. 检查波特率:

    • GRBL 1.1 默认:115200
    • GRBL 0.9:9600
    • 两者都尝试
  2. 检查 USB 电缆:

    • 数据电缆,不是仅充电
    • 用已知好的电缆更换
  3. 检查端口:

    • Linux:/dev/ttyUSB0/dev/ttyACM0
    • Windows:COM3、COM4 等。
    • 在 Rayforge 中选择了正确的端口
  4. 用终端测试:

    • 使用 screen、minicom 或 PuTTY
    • 发送 ? 看是否得到响应

固件崩溃

症状:

  • 控制器在作业期间锁定
  • 随机断开连接
  • 行为不一致

可能原因:

  1. 缓冲区溢出 - G 代码文件太复杂
  2. 电气噪声 - 接地不良或 EMI
  3. 固件错误 - 升级到最新版本
  4. 硬件问题 - 控制器故障

解决方案:

  • 升级固件到最新稳定版本
  • 简化 G 代码(降低精度,更少段)
  • 在 USB 电缆上添加铁氧体磁珠
  • 改善接地和电缆布线

固件错误

症状:

  • 命令被拒绝
  • 意外行为
  • 错误消息

解决方案:

  1. 查询固件版本:$I
  2. 与 Rayforge 期望比较
  3. 升级或选择正确的方言

未来的固件支持

请求的功能

用户已请求支持:

  • Ruida 控制器 - 中国激光控制器
  • Trocen/AWC - 商业激光控制器
  • ESP32 WiFi - grblHAL 的网络连接
  • 激光 API - 直接机器 API(无 G 代码)

状态: 目前不支持。欢迎在 GitHub 上提交功能请求。

贡献

要添加固件支持:

  1. rayforge/machine/driver/ 中实现驱动程序
  2. rayforge/machine/models/dialect.py 中定义 G 代码方言
  3. 在真实硬件上彻底测试
  4. 提交带有文档的拉取请求

相关页面