Сумісність прошивки
Ця сторінка документує сумісність прошивки для лазерних контролерів, що використовуються з Rayforge.
Огляд
Rayforge розроблений переважно для контролерів на базі GRBL, але також підтримує Marlin, Smoothieware та інші типи прошивок.
Матриця сумісності
| Прошивка | Версія | Статус | Драйвер | Примітки |
|---|---|---|---|---|
| GRBL | 1.1+ | Повністю підтримується | GRBL Serial / GRBL Serial Simple | Рекомендується |
| grblHAL | 2023+ | Сумісний | GRBL Serial / GRBL Telnet | Сучасний форк GRBL |
| GRBL | 0.9 | Обмежений | GRBL Serial | Старіший, можуть бути проблеми |
| Smoothieware | Всі | Сумісний | SmoothieDriver (Telnet) | На базі мережі |
| Marlin | 2.0+ | Сумісний | Marlin Serial | Потрібен режим лазера |
| ESP3D | Всі | Сумісний | GRBL Telnet | На базі мережі |
| OctoPrint | Всі | Експериментальний | OctoPrint | Див. примітки нижче |
| Інші | - | Не підтримується | - | Запросіть підтримку |
Прошивка GRBL
Статус: Повністю підтримується Версії: 1.1+ Драйвери: GRBL Serial, GRBL Serial Simple
GRBL 1.1 (Рекомендовано)
Що таке GRBL 1.1?
GRBL 1.1 - це найпоширеніша прошивка для хобі CNC та лазерних машин. Випущена у 2017 році, вона стабільна, добре документована та широко підтримується.
Функції, що підтримуються Rayforge:
- Послідовний зв'язок (USB)
- Звітність статусу в реальному часі
- Режим лазера (M4 постійна потужність)
- Читання/запис налаштувань ($$, $X=value)
- Цикли homing ($H)
- Робочі системи координат (G54)
- Команди переміщення ($J=)
- Перевизначення швидкості подачі
- Програмні обмеження
- Апаратні обмеження (ендстопи)
Відомі обмеження:
- Діапазон потужності: 0-1000 (параметр S)
- Немає мережевого підключення (тільки USB)
- Обмежена бортова пам'ять (малий буфер G-code)
Перевірка версії 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:
- Оновіть до GRBL 1.1 якщо можливо (рекомендується)
- Використовуйте M3 замість M4 (менш передбачувана потужність)
- Ретельно тестуйте - деякі функції можуть не працювати
Інструкції з оновлення: Див. GRBL Wiki
Драйвер GRBL Serial Simple
Rayforge включає другий послідовний драйвер GRBL для пристроїв, де стандартний драйвер з підрахунком буфера викликає помилкові спрацьовування або помилки зв'язку.
Як це працює:
- Використовує протокол ping-pong: надіслати один рядок, дочекатися "ok", надіслати наступний
- Без керування буфером шляхом підрахунку символів
- Без виявлення взаємоблокування або відновлення після зупинки
- Простіший та більш передбачуваний на деяких пристроях
Коли використовувати:
- Ваш пристрій отримує помилкові спрацьовування блокування буфера зі стандартним драйвером
- Помилки зв'язку виникають час від часу зі стандартним драйвером
- У вас пристрій з незвичною поведінкою буфера
Коли НЕ використовувати:
- Стандартний драйвер GRBL Serial надійно працює на більшості пристроїв
- Простий драйвер не має відновлення після взаємоблокування, тому завдання можуть зупинятися при втраченій відповіді "ok" без автоматичного відновлення
grblHAL
Статус: Сумісний Версії: 2023+ Драйвер: GRBL Serial
Що таке grblHAL?
grblHAL - це сучасний форк GRBL з розширеними функціями:
- Підтримка різного обладнання контролерів (STM32, ESP32 тощо.)
- Ethernet/WiFi мережа
- Підтримка SD-карт
- Більше I/O пінів
- Розширена підтримка лазера
Сумісність з Rayforge:
- Повністю сумісний - grblHAL підтримує протокол GRBL 1.1
- Всі функції GRBL працюють
- Додаткові функції (мережа, SD) ще не підтримуються Rayforge
- Звітність статусу ідентична GRBL
Використання grblHAL:
- Виберіть драйвер "GRBL Serial" в Rayforge
- Підключіться через USB послідовний порт (як GRBL)
- Всі функції працюють як документовано для GRBL
Майбутнє: Rayforge може додати підтримку специфічних функцій grblHAL (мережа тощо.)
Драйвер GRBL Telnet
Статус: Підтримується Прошивка: grblHAL, ESP3D та інші мережеві GRBL контролери Драйвер: GRBL Telnet
Про драйвер GRBL Telnet
Драйвер GRBL Telnet підключається до GRBL-контролерів через мережу через інтерфейс Telnet. Це ідеально для плат із вбудованим WiFi або Ethernet — USB-кабель не потрібен.
Функції:
- Мережеве підключення (Ethernet/WiFi)
- Сумісний з платами на базі grblHAL та ESP3D
- Той самий протокол GRBL, що й у послідовного драйвера
Використання драйвера GRBL Telnet:
- Налаштуйте мережу на вашому контролері (WiFi або Ethernet)
- Виберіть "GRBL Telnet" у налаштуваннях машини
- Введіть IP-адресу та порт вашого контролера
- Підключіться — драйвер спілкується через Telnet
Вимоги:
- Мережевий GRBL-сумісний контролер (grblHAL, ESP3D тощо)
- Контролер і комп'ютер в одній мережі
- Інтерфейс Telnet увімкнено на контролері
Smoothieware
Драйвер: GRBL Serial (режим сумісності)
Примітки до сумісності
Smoothieware використовує інший синтаксис G-code:
Ключові відмінності:
| Функція | GRBL | Smoothieware |
|---|---|---|
| Лазер увімк | M4 S<значення> | M3 S<значення> |
| Діапазон потужності | 0-1000 | 0.0-1.0 (float) |
| Статус | <...> формат | Інший формат |
Використання Smoothieware з Rayforge:
- Виберіть діалект Smoothieware в налаштуваннях машини > G-code > Діалект
- Тестуйте з низькою потужністю спочатку
- Перевірте діапазон потужності відповідає вашій конфігурації
- Немає статусу в реальному часі - обмежений зворотний зв'язок
Обмеження:
- Звітність статусу не повністю сумісна
- Масштабування потужності може відрізнятися
- Налаштування ($$ команди) не підтримуються
- Не тестувалося на реальному обладнанні
Рекомендація: Якщо можливо, використовуйте сумісну з GRBL прошивку натомість.
Marlin
Версії: 2.0+ з підтримкою лазера Драйвер: Marlin Serial
Драйвер Marlin Serial
Rayforge включає виділений MarlinSerialDriver, який підключається до прошивки Marlin через послідовний порт (USB). Marlin 2.0+ може керувати лазерами при належному налаштуванні.
Можливості:
- Послідовне з'єднання (USB)
- Протокол рукостискання Marlin (очікує повідомлення "start")
- Потокове передавання G-code рядок за рядком з підтвердженням
ok - Опитування позиції M114
- Виконання завдань з детальним звітуванням про прогрес
- Домівка (G28), джогінг, переміщення, зміна інструменту (T)
- Встановлення зміщення WCS (G10 L2 P)
- Керування потужністю лазера через діалект Marlin
- Скасування через M410 (Quick Stop)
- Автоконфігурація (запити M115, M211, M503)
Вимоги:
- Прошивка Marlin 2.0 або пізніша
- Функції лазера увімкнено:
#define LASER_FEATURE#define LASER_POWER_INLINE
- Правильний діапазон потужності налаштовано:
#define SPEED_POWER_MAX 1000
Використання Marlin з Rayforge:
- Виберіть драйвер "Marlin (Serial)" в налаштуваннях машини
- Встановіть послідовний порт і швидкість передачі (зазвичай 115200)
- Виберіть діалект Marlin в налаштуваннях машини > G-code > Діалект
- Налаштуйте Marlin для використання лазера
- Перевірте діапазон потужності (0-1000 або 0-255)
Обмеження:
- Експериментальний — відгуки вітаються
- Читання/запис налаштувань (як
$$у GRBL) не підтримується - Немає мережевого підключення (тільки USB)
Посібник з оновлення прошивки
Оновлення до GRBL 1.1
Чому оновлювати?
- Режим лазера (M4) для постійної потужності
- Краща звітність статусу
- Більш надійний
- Краща підтримка Rayforge
Як оновити:
-
Ідентифікуйте вашу плату контролера:
- Arduino Nano/Uno (ATmega328P)
- Arduino Mega (ATmega2560)
- Власна плата
-
Завантажте GRBL 1.1:
- GRBL Releases
- Отримайте останню версію 1.1 (1.1h рекомендується)
-
Прошийте прошивку:
Використовуючи Arduino IDE:
1. Встановіть Arduino IDE2. Відкрийте скетч GRBL (grbl.ino)3. Виберіть правильну плату та порт4. ЗавантажтеВикористовуючи avrdude:
avrdude -c arduino -p m328p -P /dev/ttyUSB0 \-U flash:w:grbl.hex:i -
Налаштуйте GRBL:
- Підключіться через послідовний порт
- Надішліть
$$щоб переглянути налаштування - Налаштуйте для вашої машини
Резервне копіювання перед оновленням
Збережіть ваші налаштування:
- Підключіться до контролера
- Надішліть команду
$$ - Скопіюйте весь вивід налаштувань
- Збережіть у файл
Після оновлення:
- Відновіть налаштування по одному:
$0=10,$1=25тощо. - Або використовуйте значення за замовчуванням та переналаштуйте
Апаратне забезпечення контролера
Поширені контролери
| Плата | Типова прошивка | Підтримка Rayforge |
|---|---|---|
| Arduino CNC Shield | GRBL 1.1 | Відмінна |
| MKS DLC32 | grblHAL | Відмінна |
| Ruida | Власна | Експериментальна |
| OctoPrint (Pi) | Різна | Експериментальна |
Рекомендовані контролери
Для найкращої сумісності з Rayforge:
-
Arduino Nano + CNC Shield (GRBL 1.1)
- Дешево (~$10-20)
- Легко прошивати
- Добре документовано
-
MKS DLC32 (grblHAL)
- Сучасний (на базі ESP32)
- WiFi здатний
- Активна розробка
-
Власні плати GRBL
- Багато доступно на маркетплейсах
- Перевірте підтримку GRBL 1.1+
Конфігурація прошивки
Налаштування GRBL для лазера
Основні налаштування:
$30=1000 ; Макс. потужність шпинделя/лазера (1000 = 100%)
$31=0 ; Мін. потужність шпинделя/лазера
$32=1 ; Режим лазера увімкнено (1 = увімк)
Налаштування машини:
$100=80 ; Кроків/мм X (відкалібруйте для вашої машини)
$101=80 ; Кроків/мм Y
$110=3000 ; Макс. швидкість X (мм/хв)
$111=3000 ; Макс. швидкість Y
$120=100 ; Прискорення X (мм/сек)
$121=100 ; Прискорення Y
$130=300 ; Макс. хід X (мм)
$131=200 ; Макс. хід Y (мм)
Налаштування безпеки:
$20=1 ; Програмні обмеження увімкнено
$21=1 ; Апаратні обмеження увімкнено (якщо є ендстопи)
$22=1 ; Homing увімкнено
Тестування прошивки
Базова послідовність тестування:
-
Тест підключення:
Надіслати: ?Очікувати: <Idle|...> -
Перевірка версії:
Надіслати: $IОчікувати: [VER:1.1...] -
Перевірка налаштувань:
Надіслати: $$Очікувати: $0=..., $1=..., etc. -
Тест руху:
Надіслати: G91 G0 X10Очікувати: Машина переміщується на 10мм по X -
Тест лазера (дуже низька потужність):
Надіслати: M4 S10Очікувати: Лазер вмикається (тьмяно)Надіслати: M5Очікувати: Лазер вимикається
Виправлення проблем прошивки
Прошивка не відповідає
Симптоми:
- Немає відповіді на команди
- Збій підключення
- Статус не повідомляється
Діагностика:
-
Перевірте швидкість передачі:
- GRBL 1.1 за замовчуванням: 115200
- GRBL 0.9: 9600
- Спробуйте обидва
-
Перевірте USB-кабель:
- Кабель для даних, не тільки для зарядки
- Замініть на відомий робочий кабель
-
Перевірте порт:
- Linux:
/dev/ttyUSB0або/dev/ttyACM0 - Windows: COM3, COM4 тощо.
- Правильний порт вибрано в Rayforge
- Linux:
-
Протестуйте терміналом:
- Використовуйте screen, minicom або PuTTY
- Надішліть
?і перевірте, чи отримаєте відповідь
Збої прошивки
Симптоми:
- Контролер зависає під час завдання
- Випадкові відключення
- Нестабільна поведінка
Можливі причини:
- Переповнення буфера - Файл G-code занадто складний
- Електричні перешкоди - Погане заземлення або EMI
- Баг прошивки - Оновіть до останньої версії
- Апаратна проблема - Несправний контролер
Рішення:
- Оновіть прошивку до останньої стабільної версії
- Спростіть G-code (зменшіть точність, менше сегментів)
- Додайте феритові намистини на USB-кабель
- Покращте заземлення та маршрутизацію кабелів
Неправильна прошивка
Симптоми:
- Команди відхиляються
- Несподівана поведінка
- Повідомлення про помилки
Рішення:
- Запит версії прошивки:
$I - Порівняйте з очікуваннями Rayforge
- Оновіть або виберіть правильний діалект
Контролери Ruida
Rayforge з'єднується з контролерами на базі Ruida (напр. RDC6442, RDC6445, Ruida R5) через драйвер Ruida RPA, який спілкується рідним протоколом контролера через USB або UDP, або через TUI RPC за допомогою Ruida Protocol Analyzer. Профілі пристроїв Generic Ruida RPA та Monport MP-570 60W CO2 дають початкові точки для нових машин.
Функції:
- Підключення USB та UDP; коли налаштовано обидва, Rayforge автоматично перемикається між ними, коли кабелі під'єднуються та від'єднуються
- Надсилання завдань зі звітністю позиції, джогінгом, хоумінгом та Переходом до позиції
- Рамкування відстежує контур завдання абсолютними переміщеннями з вимкненим променем, тому працює без вмикання лазера
- Враховує налаштування Power Mode кожного кроку: Dynamic вмикає масштабування потужності контролера, Constant вимикає його
- Послідовні порти можна прив'язати з випадаючого списку USB-пристроїв із зіставленням VID:PID, тож автопідключення слідкує за машиною після того, як ОС перенумеровує USB-пристрої
Налаштування потужності:
- Power scaling — підвищує мінімальну потужність, що видається, коли швидкість різу шару знижується
- VECTOR power floor — мінімальна потужність для компенсації векторного різу під час прискорення та уповільнення, зменшуючи перегорання на кінцях ліній
- IMAGE power bias — потужність, що додається до растрових рядків сканування, оскільки CO2-трубки не запалюються за дуже малої потужності
Обмеження:
- Експериментально — досі перевірено на контролері RDC6442S (Monport MP570 CO2)
- Без генерації G-code; Ruida використовує власний пропрієтарний протокол
- Ротаційний режим ще не підтримується
Експериментальні драйвери
OctoPrint
Rayforge включає експериментальний драйвер OctoPrint, який надсилає G-code безпосередньо на сервер OctoPrint через мережу. Це корисно, якщо ваш лазер підключений до Raspberry Pi або іншого комп'ютера з OctoPrint.
Функції:
- Підключення через WebSocket для оновлення статусу в реальному часі
- Резервне опитування REST коли WebSocket недоступний
- Автоматичне перепідключення при втраті з'єднання
- Надсилання завдань з автоматичним запуском друку
- Джогінг, homing та керування паузою/продовженням
- Потік "Запит доступу" для ключів додатків OctoPrint
Використання драйвера OctoPrint:
- Виберіть драйвер "OctoPrint" у налаштуваннях машини
- Введіть ім'я хоста або IP-адресу вашого сервера OctoPrint
- Встановіть порт (за замовчуванням: 80)
- Натисніть "Запит доступу" щоб отримати API-ключ через систему ключів додатків OctoPrint
- Підключіться — Rayforge встановить з'єднання WebSocket
Обмеження:
- Експериментально і не тестувалося на реальному обладнанні — відгуки вітаються
- Неможливо читати або записувати налаштування прошивки через OctoPrint
- Результати зондування не повідомляються OctoPrint
- Читання зсувів WCS не підтримується
Інші запитані функції
Користувачі просили підтримку:
- Trocen/AWC - Комерційні лазерні контролери
- ESP32 WiFi - Мережеве підключення для grblHAL
- Laser API - Прямий API машини (без G-code)
Статус: Наразі не підтримується. Запити на функції вітаються на GitHub.
Внесок
Щоб додати підтримку прошивки:
- Реалізуйте драйвер у
rayforge/machine/driver/ - Визначте діалект G-code у
rayforge/machine/models/dialect.py - Ретельно протестуйте на реальному обладнанні
- Надішліть pull request з документацією
Пов'язані сторінки
- Діалекти G-code - Деталі діалектів
- Налаштування пристрою - Конфігурація GRBL
- Проблеми підключення - Виправлення проблем підключення
- Загальні налаштування - Налаштування машини