Используйте ваш смартфон для потоковой передачи G-кода на ваш станок с прошивкой GRBL 1.1.
Функции:
* Поддерживает Bluetooth и USB Otg соединение.
* Поддерживает Grbl 1.1 в режиме реального времени подачи, шпинделя и быстрые переопределения.
* Простое и мощное управление бегом с угловым бегом.
* Использует буферизованную потоковую передачу.
* Отчеты о состоянии станка в режиме реального времени (положение, подача, скорость шпинделя, состояние буфера. Отчет о состоянии буфера должен быть включен с настройкой $ 10 = 2).
* Поддержка отправки файлов G-кода непосредственно с мобильного телефона. (Поддерживаемые расширения: файлы .gcode, .nc, .ngc и .tap. Файлы G-кода могут быть размещены в любом месте телефона или внешнего хранилища).
* Поддерживает короткие текстовые команды (вы можете отправлять команды G-Code или GRBL непосредственно из приложения).
* Поддерживает зондирование (G38.3) и автоматически регулирует ось Z.
* Ручная поддержка смены инструмента с G43.1
Установка grbl 1.1. Работы в LaserGRBL
* Четыре настраиваемых настраиваемых кнопки, которые поддерживают многострочные команды (поддерживает как короткие, так и длинные нажатия).
* Приложение может работать в фоновом режиме, используя меньше ресурсов, потребляя меньше энергии.
Grbl Controller + Эксклюзивные функции (платная версия)
* Работа резюме (продолжить плохо прерванные работы, почти с того места, где они остановились)
* Четыре дополнительные кнопки на вкладке консоли ($$, $ H, $ G и $ I)
* История работы (просмотр всех ваших предыдущих работ и их статус)
* Тактильная обратная связь (обеспечивает короткую вибрацию при нажатии кнопок)
* XY вращение беговой дорожки.
* Дополнительная ось AB для кастомных прошивок grbl.
Требования:
1. Bluetooth включен или USB Otg поддерживает смартфон с версией Android> = 4.4 (Kit Kat или выше).
2. GRBL версия> = 1.1f
3. Модуль Bluetooth, такой как HC-05 или HC-06.
4. Модуль Bluetooth уже должен быть подключен к смартфону.
5. USB-адаптер Otg.
ПРИМЕЧАНИЯ:
1. Для любого типа помощи, пожалуйста, используйте канал GitHub. Я не могу предоставить какую-либо поддержку в комментариях Google Play Store.
2. В версиях Android «Marshmallow» или выше используйте диспетчер разрешений ОС и предоставьте разрешение «Чтение внешнего хранилища», чтобы работала потоковая передача файлов.
3. Файлы G-кода могут быть размещены в любом месте памяти телефона или внешнего хранилища, но они должны заканчиваться одним из поддерживаемых расширений .gcoce или .nc или .tap или .ngc.
4. Если вы впервые подключаете модуль Bluetooth к своему устройству, убедитесь, что вы изменили скорость передачи данных модуля BT на 115200. (Скорость передачи по умолчанию для встроенного ПО GRBL 1.1v равна 115200 как 8-N-1 (8 -биты, без проверки четности и 1-стоповый бит)).
6. USB otg работает только со скоростью 115200 бод.
7. Для документации интерфейса и вики-страниц посетите https://zeevy.github.io/grblcontroller/
Arduino ЧПУ программы. Grbl controller | UniversalGcodeSender | JCNC
8 Чтобы приложение работало в фоновом режиме без каких-либо проблем, вам следует отключить управление питанием (если применимо) для этого приложения.
Отслеживание ошибок и исходный код: https://github.com/zeevy/grblcontroller/
Перевод на русский от Mr. Николай Кирик
Источник: play.google.com
Настройки библиотеки GRBL 1.1f

В этой статье я хочу пробежаться по настройкам библиотеки GRBL, а в частности GRBL 1.1f.
Самая первая команда, которая вам понадобится это $$, на нее прошивка отреагирует выбросив в порт значение текущих настроек контроллера. Эти настройки хранятся в энергонезависимой памяти и сохраняются даже после отключения питания.
Для замены любого параметра необходимо отправить номер параметра и его новое значение, например $30=255. В ответ контроллер должен ответить OK. Это значит, что настройка обновилась и сохранена в энергонезависимую память.
А теперь о самих параметрах библиотеки GRBL.
$0 – Длительность импульса ля управления шаговым двигателем, микросекунд
Это значение подбирается экспериментально, и оно зависит от длинны проводов до драйвера шагового двигателя и от «скорострельности» драйвера. Слишком короткие импульсы драйвер может не заметить, а слишком длинные, при большой скорости перемещения будут накладываться друг на друга. По умолчанию это значение равно 10, но чаще всего можно снизить до 4-8.
$1 — Задержка отключения двигателей, миллисекунд
При завершении перемещения контроллер обесточивает двигатель, что бы исключить лишний нагрева драйвера и двигателя, а так же для экономии электроэнергии. Этот параметр указывает, через какое время производить отключение двигателя. Если вам необходимо постоянное удержание положения каретки (возможно смещение из-за гравитации, драйвер не запоминает положение микрощага, нет стопорения за счет механики) то данный параметр необходимо установить в 255. Значение 255 укажет контроллеру, что двигатели необходимо всегда держать включенными.
$2 – Инверсия импульсов движения шагового двигателя (сигнал STEP), маска
Этот параметр задает порядок смены высокого и низкого сигналов на выходе. По умолчанию сигнал на выходе контроллера низкий и при подаче сигнала он меняется на высокий. Если включить инверсию, то будет наоборот, высокий сигнал переключится на низкий. Время переключения сигнала задает параметр $0. В большинстве случаев не требуется переключение данного параметра. Но если так случилось, что ваш драйвер шагового двигателя требует инверсии, то задать маску инверсии можно на этом примере:
значение маска х Y Z
1 00000001 Д Н Н
2 00000010 Н Д Н
3 00000011 Д Д Н
4 00000100 Н Н Д
5 00000101 Д Н Д
6 00000110 Н Д Д
7 00000111 Д Д Д
например необходимо инвертировать ось Х тогда параметр $2=1, если необходимо инвертировать оси Y и Z тогда необходимо $2=6
$3 – Инверсия движения двигателя (сигнал DIR), маска
Контроллер считает, что при низком уровне выходного сигнала двигатель будет вращаться так, что это приведет к увеличению значении координаты (каретка поедет от нулы в положительном направлении). Но не всегда и везде это так, и что бы не менять подключение проводов к шаговому двигателю, можно измениь маску, тем самым изменив направление вращения.
Переключается данный параметр аналогично параметру $2
$4 — Инверсия сигнала включения драйвера шаговых двигателей (сигнал ENABLE), логический
По умолчанию контроллер считает включающим низкий сигнал (притягивает линию к земле для включения драйвера, чаще всего так и есть). Для переключения инверсии следует отправить $4=1. (по умолчанию настроено $4=0).
$5 — Инверсия входов концевых выключателей, логический
По умолчанию входы, к которым подключаются концевые выключатели подтянуты через резистор к + шины питания платы, и на них высокий уровень. Если необходимо, что бы плата сама НЕ генерировала подтяжку, например в датчике уже все есть или необходимо, что бы плата реагировала на высокий сигнал, а не на низкий, то сигнал необходимо инвертировать. При этом контроллер отключит подтягивающий резистор, и формирование высокого уровня ложиться на ваши плечи, так же как и защита от перенапряжения на линии. Включается $5=1, отключается $5=0.
$6 — Инверсия входа контактного датчика, логический
По умолчанию контроллер настроен на нормально разомкнутый концевой выключатель, который при срабатывании замкнет вход на землю. Если вы используете нормально замкнутый концевой выключатель, который при срабатывании наоборот размыкает цепь — то этот параметр необходимо инвертировать. Включается $6=1, отключается $6=0.
$10 — Вывод статуса, маска
Задает вывод данных с контроллера, когда их запрашивает пользователь командой ?. Эти данные включают в себя: значения на входах, текущие переопределенные значения, текущие координаты, текущее состояние, текущую скорость подачи, состояния буферов, и номер выполняемой команды G-кода (если было включено в исходных кодах перед компиляцией).
По умолчанию в отчет библиотеки GRBL v1.1+ входит вывод практически всей информации в стандартном выводе статуса. Весь лишний мусор можно скрывать, оставив только информацию о тех параметрах, которые изменились. Это сильно ускоряет скорость общения с контроллером. Данная функция в основном требуется для отладки и испытании производительности контроллер, когда нужно например протестировать переполнение буфера при сложных расчетах и т.д. Простым смертным в 99% случаев это все не требуется. и рекомендуется оставить параметр по умолчанию. Если Вам потребовалось изменить данный параметр — то эта статья Вам ни к чему — вы и так все в исходниках найдете, или прочитаете официальную документацию на другом языке
$11 — Изменение скорости прохождения стыков, мм
Данный параметр управляет скоростью прохождения инструмента по траектории при смене направления. При прохождении острого угла инструмент необходимо притормаживать. Если этого не делать, то может наблюдаться пропуск шагов. Большие значения данного параметра дают большую скорость обработки.
Если инструмент легкий а двигатели мощные, то можно увеличить скорость бработки сложных деталей уменьшив этот параметр. Если же у вас инструмент сбивается при работе, то параметр необходимо увеличить.
$12 – Отклонение от дуги, мм
Библиотека GRBL обрабатывает дуги и окружности как совокупность отрезкой. Окружность или дуга разбивается не н-ное количество отрезков. Данный параметр задает максимальное отклонение траектории от идеальной. Точность станка обычно не превышает этого отклонения, но если вы замечаете на дугах угловатости, то стоит уменьшить значение этого параметра.
Он так же влияет на скорость обработки, так как для каждого стыка необходимо определить максимальную скорость и на основании парметра 11 высчитать торможение, если оно требуется. Максимальное отклонение высчитывается как перпендикуляр от отрезка до дуги.
$13 — Отчет в дюймах, boolean
По умолчанию Grbl выводит координаты текущей позиции, а также параметры смещения начала координат и данные измерения (probing) в мм. Командой $13=1 можно изменить значение параметра и переключить выводй на дюймы. $13=0 возвращает вывод в мм.
$20 — Мягкие границы (soft limit), логический
Этот параметр включает виртуальные границы, за которые станку нельзя выезжать. Данный параметр необходимо включать совместно с параметром $22. Работают они так — станок при получении команды $H ищет начальную точку, а далее при работе следит за рабочей координатой, и если кнтроллеру приходит команда, которая вынудит его выехать за эти границы, то станок прекратит обработку сформировав сигнал ошибки. Текущее положение при этом не сбрасывается. $20=1 для включения, и $20=0 для отключения.
$21 — Жесткие границы (hard limit), логический
При включении данного параметра, контрллер будет следить за концевыми выключателями и если в процесе работы один из них стработает, то работа прекратится в аварийном режиме. Для продолжения работы контроллер необходимо сбросить. Сделано это для безопасности.Для включения жестких границ потреьуется по 2 концевых выключателя на каждую ось, для ограничения перемещения в двух крайних положениях. Концевые выключатели вешают парно на 1 вход концевых выключателей, при срабатывании любого из двух должен вырабатываться сигнал, интерпретируемый контроллером.
$22 — Поиск начальной позиции (HOME), логический
Поиск начальной позиции.При включении станка, он не знает в какой позиции находится его инструмент, и ему необходимо задать точку отсчета. при подаче команды $H контроллер будет искать нулевое положение перемещая инструмент в положение увеличения координаты, пока не произойдет срабатывание концевого выключателя. По умолчанию в первую очередь в нулевую точку едет ось Z, а за ней оси X и Y. Если вы используете контроллер для лазерного гравера, то в исходном коде необходимо установить запрет поиска нулевой точки оси Z, так как этой оси нет, и контроллер не найдя концевого выключателя выдаст ошибку или зависнет.
Еще одно применение этой команды — при отключении электропитания всегда можно привести инструмент в нулевое положение и запустить выполнение программы не с самого начала, нулевая точка будет совпадать и не произойдет сбоя при позиционировании инструмента.
$23 — Инверсия направления начальной точки, маска
По-умолчанию, Grbl ищет нулевую точку, в положительном направлении. Если у вашего станка концевые выключатели находятся в отрицательном направлении перемещения, то следует инвертировать данный параметр. Она работает точно так же, как и маска инверсии порта шаговых импульсов (параметр $2), все что вам нужно это указать значение из таблицы, указывающее какие оси нужно инвертировать для поиска в противоположном направлении.
$24 — Скорость подачи при поиске нулевой точки, мм/мин
При поиске нулевой точки контроллер вначале перемещает оси на высокой подаче, затем делает откат на небольшое расстояние и уже на низкой скорости точно определяет координату. Данный параметр задает скорость перемещения инструмента после отката при точном определении координаты (низкая скорость)
$25 — Скорость поиска начальной точки, мм/мин
Данный параметр задает начальную скорость поиска нулевой координаты (бОльшую скорость). Данную скорость следует подобрать так, что бы концевой выключатель успевал обрабатываться контроллером.
$26 — Подавление дребезга при поиске начальной точки, миллисекунд
При срабатывании концевого выключателя (особенно механического), наблюдается шум на входе (поочередные всплески от того, что контакт не сразу прижимается а еще немного пружинит). Что бы исключить данный шум из расчета ьребуется либо установка фильтра, либо програмная задержка, которая и задается этим параметром. Для большинства случаев требуемое значения 5-25 миллисекунд.
$27 — Отъезд от начальной точки, мм
Для того, что бы использовать одну пару концевых выключателей для определения нулевой точки и для определения жестких границ служит этот параметр. После нахождения нулевой точки станок отъедет от нее на заданное расстояние. Если этого не сделать ( не разомкнуть концевой выключатель) то после процедуры поиска нулевой границы контроллер опросив концевик, посчитает , что произошла аварийная ситуация.
$30 — Максимальные обороты шпинделя, Об/мин
Задает значение ШИМ соответствующее максимальному значению напряжения на выходе (5 вольт для AVR и 3,3V для ARM плат). Это значение используется для регулировки оборотами шпинделя или мощностью лазера при выжигании. По умолчанию, Grbl строит линейную зависимость из 255 отсчетов между максимальными-минимальными оборотами шпинделя. Значение равное 0 отключает шпиндель, значение 255 включает на максимум. В файле config.h есть дополнительные параметры, влияющие на это, и если вас это не устраивает, то необходимо изменить перед компиляцией прошивки.
$31 — Минимальные обороты шпинделя, Об/мин
Задает минимальное значение на выходе ШИМ, равному (напряжение питания платы/256). Этот параметр задает значение, с которого гарантировано происходит пуск шпинделя или зажигание лазера.
$32 — Режим лазера, логический
Если включить данный параметр, то контроллер перейдет на режим управления лазером. Лазер висит на пине отвечающем за обороты шпинделя. Контроллер, прежде чем изменить направление движения командой S дает задержку, что бы шпиндель разогнался или сбросил обороты, и только после этого начинает движение. В случае с лазером, делать этого не нужно, иначе в точках изменения яркости будут наблюдаться более черные точки или полосы. Так же это увеличивает скорость выжигания.
$100, $101 , $102 – [X,Y,Z] шагов/мм
Данные параметры задают количество шагов, сделав которое ось сдвинется на 1 мм. Например шаговый двигатель имеет 200 шагов на 1 оборот, контроллер настроен на 16 микрошаг. Теперь допустим, что при вращении двигателя на 1 оборот инструмент переместился на 32 мм, тогда имеем. 200 шагов умножить на 16 микрошаг — 3200 импульсов нужно подать контроллеры, что бы шаговый двигатель сделал 1 оборот, и переместил инструмент на 32 мм. значит на 1 мм он сдвинется за 3200/32мм=100 шагов.
$110, $111, $112 – [X,Y,Z] Максимальная скорость, мм/мин
Эти параметры задают максимальную скорость перемещения для каждой из осей. Контроллер при получении G кода анализирует скорости указанные в нем, и если команда задает скорость выше данных значений, то он ограничивает скорость. Так же эти значения также определяют максимальную скорость перемещения при выполнении команды G0. Параметр определяется экспериментально, пока не будет наблюдаться пропуск шагов, после этого снижается скорость на 10-20 процентов, и используется как основное значение.
$120, $121, $122 – [X,Y,Z] Ускорение, мм/сек^2
Эти параметры задают параметры ускорения в мм/сек за секунду. Чем меньше это значение, тем более плавное движение, но и большее время обработки сложных деталей с большим количеством мелкиъ элементов. Так же определяется экспериментально.
$130, $131, $132 – [X,Y,Z] Максимальное перемещение, мм
Эти параметры задает максимальное допустимое перемещение от нулевой точки по каждой из осей при включенных мягких границах (sofl limit). См. параметры $20, $22.
Источник: r13-project.ru
Программы для работы с GRBL(ЧПУ)
Сегодня мы рассмотрим программы для работы с ЧПУ станками на базе GRBL.
Начнем наверное с самого популярного продукта: GRBL Controller
Во многих обзорах вы можете встретить именно эту программу, я не знаю почему ее считают самой классной, но я пробывал ее использовать с разными версиями grbl и разными платами arduino — очень большая задержка. Бывает отправляешь простую команду типа «G01 X100» и пока она дойдет до платы может пройти от 2 до 5 секунд. А что если твоя дорогая фреза движется к шурупу и нужно срочно остановить работу станка?
Следующая программа JCNC:
К сожалению я так и не смог подключить ее к станку, но у этой программы очень классный редактор GCODE с визуализацией. Я эту программу постоянно использую для проверки траектории с арткама и для написания простых программ.
Universal Gcode Sender
У меня стабильно работает только первая версия программы. У этой программы есть несколько преимуществ:
1) Она написана на JAVA, т.е. кроссплатформена
2) Очень стабильная
Но у нее не хватает всяких «плюшек», таких как редактирование кода, сканирование области обработки. Все это можно сделать с помощью макросов. Данную программу я использую в основном для тестирования и настройки GRBL.
Эта программа наверное одна из самых лучших и кстати именно ее рекомендуют использовать разработчики GRBL. Она написана на Python и тоже кроссплатформенная. Здесь есть все что нужно:
1) Редактор кода
2) Собственная CAM система
3) Умеет работать прямо с DXF файлами
4) Мгновенная отправка кода / Аварийная остановка
5) Работа с Z-щупом и многое другое
Единственный недостаток наверное это то, что некоторые сложные УП (более 2-3мб) не совсем полностью отображаются в окне визуализатора.
А эта программа наверное единственная адекватная для работы с лазерным станком. В программу встроен импорт растровых файлов с различными настройками изображения:
Из векторных файлов поддерживает только SVG, чего по сути достаточно для совместимости с CorelDraw. Функционал программы можно расширить с помощью макросов (настраиваемые кнопки):
Код сканирование области гравировки
В сети еще существует достаточно большое количество программ для работы с GRBL, но как правильно их тяжело установить или уже не поддерживают текущие версии прошивок.
Источник: dzen.ru