Сумісність прошивки
Ця сторінка документує сумісність прошивки для лазерних контролерів, що використовуються з 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 підключається через мережу і підтримує джогінг, звітність позиції, керування повітряним ассистом, вибір шару, автопідключення та опитування статусу.
Функції:
- Мережеве підключення (Ethernet/WiFi)
- Звітність позиції
- Керування джогінгом
- Повітряний ассист і вибір шару
- Підтримка референтних точок
Обмеження:
- Експериментально — ще не повністю стабільно
- Без генерації 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
- Проблеми підключення - Виправлення проблем підключення
- Загальні налаштування - Налаштування машини