ВЫБОР ПРОШИВКИ

После изучения возможных свободных прошивок, отзывов на них и примеров работы остановил свой выбор на GRBL v1.1f. Выбор этой прошивки, в общем, был сделан на этапе подбора управляющей электроники – ARDUINO UNO (ARDUINO NANO) и CNС SHIELD v3.0 (CNС SHIELD v4.0). GRBL v1.1f в совокупности с выбранным контроллером и шилдом позволяет построить бюджетный станок для домашней лаборатории.

ЗАГРУЗКА ПРОШИВКИ

Детальную информацию по текущим и предыдущим версиям GRBL можно найти на GitHub.

Загрузить прошивку в управляющий контроллер можно двумя путями – скомпилировав исходники и просто загрузив типовой HEX файл прошивки. Первый путь может понадобиться тем, кто использует нестандартные шилды или тем, кому необходимо доработать исходный код под нетиповые решения. Что-либо дорабатывать в исходниках нет необходимости, мне проще и быстрее загрузить скомпилированный HEX с последующей настройкой прошивки конкретно под конструкцию лазерного гравера.

Для этого потребуется скачать непосредственно HEX файл прошивки
grbl_v1.1f.20170801.hex и утилиту XLoader для непосредственной загрузки прошивки в память контроллера.

После скачивания нужно запустить утилиту Xloader (инсталляция не требуется), выбрать HEX файл, тип контроллера, порт, к которому подключен контроллер, установить скорость обмена 115200 и загрузить прошивку, нажав “Upload”. Как пример приведен скриншот окна утилиты.

НАСТРОЙКА ПРОШИВКИ

Про все возможности прошивки писать не буду, поскольку статей на эту тематику огромное множество. Лично мне очень помогла статья из блога Владимира Волошина – рекомендую посетить для понимания принципов настройки GRBL.

Нужно отметить, что настройка прошивки происходит посредством записи констант в EEPROM контроллера. Чтение и запись осуществляется через порт контроллера терминальной программой. Мне такой вариант не очень понравился и, в результате поиска альтернативы конфигуратора GRBL, наткнулся на функцию управляющей программы LaserGRBL, позволяющую в привычном “оконном” виде производить настройки станка без нудного обмена информацией в терминале. В пользу выбранного варианта отмечу, что подстройку констант прошивки осуществлял непосредственно при гравировке тестовых картинок в LaserGRBL. Управляющая программа имеет возможность остановить гравировку, скорректировать настройки, сохранить их в памяти контроллера и продолжить гравировку. Именно в таком режиме есть возможность оперативно оценить результат.

После запуска LaserGRBL и подключения контроллера в настройки EEPROM можно попасть из вкладки “GRBL” -> “GRBL Configuration”.

После загрузки EEPROM из контроллера откроется окно:

В этом окне возможно изменить настройки вручную и сохранить в EEPROM контроллера кнопкой “Write”.

На скриншоте выше приведен окончательный результат моих тестов. С этими параметрами станок трудится без каких-либо проблем.

В LaserGRBL также присутствует возможность сохранять настройки на диск и записывать в EEPROM данные, сохраненные на диск. В связи с этим достаточно будет скачать файл настроек гравера, импортировать его в программу и записать в EEPROM. Станок полностью готов к работе!

Осталось только разъяснить значения некоторых параметров. Поскольку станок изготавливался для лазера мощностью 2,5Вт, рабочие скорости не превышают 1500 мм/мин. По этой причине я сильно ограничил максимальные скорости перемещения по осям X, Y (3000 мм/мин). Здесь возможно увеличение скорости перемещения – на собранных мной станках механика позволяет перемещаться быстрее. Но, поскольку лазеру при этом не хватает мощности, то передвижений со скоростями свыше 3000 мм/мин просто не будет.

Зазор по ускорениям для ZDV LASER ENGRAVER также присутствует. Вполне реально поднять… Но, опять же, мне показалось, что 500 мм/сек2 обеспечивает хорошее качество при приемлемом наращивании скорости. Да и в гравере, в отличие от 3D принтера, перемещения без остановок очень длительные, что не дает значительно поднять общую скорость гравировки за счет увеличения ускорения. А значит нет и особого смысла “загонять” шаговые двигатели.

Кол-во шагов на мм для шаговиков установлено для шкивов на 20 зубов. В случае шкива на 16 зубов, вместо 80 нужно вписать значение 100. При этом необходимо проконтролировать, что драйверы шаговых двигателей установлены в режим 1/16 микрошага. В данном режиме DRV8825 обеспечивают приятный на слух звук перемещения каретки и сохраняют необходимую мощность.

Необходимо обратить внимание на то, что если станок планируется использовать для гравировки в полутонах, то следует перевести GRBL в режим “лазера”, установив “$32 = 1”. В режиме “лазера” GRBL не будет делать остановок при перемещениях. Мощность лазера будет управляться на лету изменением параметров на ТТЛ линии управления лазером. Если лазер не оснащен ТТЛ управляемым драйвером, то “$32” следует сбросить.

После тестирования гравера на гравировке в полутонах пришлось внести изменения (дополнения) в настройки GRBL. В кратце опишу ситуацию.

Оставив без изменения минимальный и максимальный уровни вращения шпинделя (уровень мощности свечения лазера, как я понял, управляется теми же параметрами), наткнулся на абсолютное отсутствие уровней серого при гравировке. Скажу честно, долго не мог понять каким образом организовано управление ШИМ. Отгравировав огромное количество тестовых шаблонов так и не добился видимости светлых тонов.

Еще раз внимательно изучил описание настроек. Процитирую описание из статьи Владимира Волошина:

$30 – Максимальные обороты шпинделя, Об/мин

Задает обороты шпинделя, соответствующие максимальному напряжению на выходе ШИМ, равному 5В. Допускается задавать в программе и более высокие обороты шпинделя, но вывод ШИМ все равно не может быть больше 5В. По-умолчанию, Grbl строит линейную зависимость из 255 отсчетов между максимальными-минимальными оборотами шпинделя и напряжениями на выходе ШИМ из диапазона 5В-0.02В. Значение ШИМ, равное 0В, означает отключение шпинделя. Заметьте, что в файле config.h есть дополнительные параметры, влияющие на это поведение.

$31 – Минимальные обороты шпинделя, Об/мин

Задает обороты шпинделя, соответствующие минимальному напряжению на выходе ШИМ, равному 0.02V (0В означает отключение). Меньшие значение оборотов будут приняты Grbl, но напряжение на выходе ШИМ не будет меньше 0.02V, за исключением случая равенства нулю. Если равно 0, то шпиндель отключен и выход ШИМ всегда равен 0В.

После описания все стало еще более непонятным. Пришлось задаться вопросом. Каким образом ТТЛ выход контроллера формирует напряжение на выходе? Дать ответ на вопрос можно исследуя схему шилда:

На схеме отчетливо видно, что вывод D11 (управление мощностью лазера) подключен напрямую к разъему без каких-либо преобразователей. Значит все же на выходе имеем ШИМ в ТТЛ уровнях. Осциллографа под рукой не оказалось. По этой причине не удалось сопоставить скважность ШИМ с уровнями мощности лазера.

В итоге все же решил взять в руки вольтметр и промерить напряжения на лазере на разных мощностях. Эксперимент показал, что лазер начинает проявлять активность при напряжении на нем выше 3.0 вольт. Пришлось еще раз изучить описание параметров $30 (Maximum spindle speed) и $31 (Minimum spindle speed). Значит можно предположить, что уровень черного ($30) должен соответствовать 5.0 В, а уровень белого ($31) – 3.0 В.

С уровнями в напряжении ясность появилась, осталось решить задачку в каком диапазоне значений $30 и $31 напряжение на лазере будет соответствовать уровням черного и белого. И какие значения должны быть в этих настройках снова не понятно из доступных статей по настройке GRBL!

Как бы не хотелось мне обращаться к исходникам, единственным путем решения осталось изучение исходных кодов GRBL! И решение оказалось именно в исходниках, точнее в файле конфигурации “config.h”.

Цитирую:

// Used by the variable spindle output only. These parameters set the maximum and minimum spindle speed
// “S” g-code values to correspond to the maximum and minimum pin voltages. There are 256 discrete and
// equally divided voltage bins between the maximum and minimum spindle speeds. So for a 5V pin, 1000
// max rpm, and 250 min rpm, the spindle output voltage would be set for the following “S” commands:
// “S1000” @ 5V, “S250” @ 0.02V, and “S625” @ 2.5V (mid-range). The pin outputs 0V when disabled.

#define SPINDLE_MAX_RPM 1000.0 // Max spindle RPM. This value is equal to 100% duty cycle on the PWM.

#define SPINDLE_MIN_RPM 0.0 // Min spindle RPM. This value is equal to (1/256) duty cycle on the PWM.

Исходя из цитаты, 100% уровню заполнения ШИМ соответствует 1000 rpm и драйвер лазера должен позаботиться о напряжении 5.0 В на лазере. Отсюда следует, что минимуму должна соответствовать константа 600 rpm (3.0 В).

Вносим $30 = 1000 и $31 = 600. Осталось подтвердить расчеты на практике.

И раз уж пришлось вернуться к конфигуратору прошивки, то после проведения экспериментов на диагональной гравировке немного прибавил ускорений и поднял максимальную скорость перемещения. Численные значения можно просмотреть в последней версии конфигурационного файла по ссылке выше и на скриншоте:

Забегая вперед, приведу фото с уровнями серого на скорости прожига 1000 мм/мин.

На нижнем изображении видны уровни серого при диапазоне ШИМ от 600 до 1000. Можно заметить, что светлые тона теряются, темные, начиная с 75% трудноразличимы. Поэтому решил откорректировать уровни и сделал пробную гравировку в диапазоне от 650 до 900 по “горячим следам”. Результат на верхнем изображении. Диапазон серых оттенков существенно изменился. Уровни черного и белого относительно которых готовится GCODE на гравировку задаются в управляющей программе.

В следующей статье попробую рассказать о том как быстро подготовить картинки к гравировке и азах работы с гравером на примере ПО LaserGRBL и LaserWEB.

Теперь можно приступать к гравировке. Удачных экспериментов!!!

ВАША ПОДДЕРЖКА ПОМОЖЕТ АКТИВНЕЙ РАБОТАТЬ НАД БЛОГОМ, ПУБЛИКОВАТЬ БОЛЬШЕ СТАТЕЙ, КОТОРЫЕ, В СВОЮ ОЧЕРЕДЬ, ПОМОГУТ ВАМ РЕАЛИЗОВЫВАТЬ ИНТЕРЕСНЫЕ ПРОЕКТЫ.

СПАСИБО ЗА УЧАСТИЕ В ЖИЗНИ БЛОГА!

ЯНДЕКСWEBMONEYQIWIPAYPAL

17 thoughts on “ZDV LASER ENGRAVER ПРОШИВКА

  1. Дмитрий, приветствую! Отличная статья! Но у меня есть вопрос. Использую Уно и шилд V3.0 Но дело пока не в шилде. После заливки grbl любой из версий 1.1 не включается лазер, перепробовал на всех выходах уно. Драйвер лазера со входом TTL. Заливал версию в Мегу для неё же, все работает (на 6 ноге ). Заливал в уно для проверки управление (и мигание и шим) светодиодом, выходы работают на ура, но с GRBL какой то трабл. При этом двигатели и все остальное работает чётко, вопросов нет кроме лазера. Где можно попробовать сменить выход уно в config.h, не подскажешь?

    1. День добрый! С лазером все в порядке в прошивке… Проверено многократно. Убедитесь, что верно включаете – смотрите статью по сборке (пины обозначены на схеме и на фото снизу в каруселе). https://www.zhildv.ru/zdv-laser-engraver-v2/
      Переназначать смысла не вижу, все отлично работает в штатной сборке, достаточно “залить” бинарник.

  2. Добрый день Дмитрий
    Спасибо за поддержку.
    Проделал это на 3-х платах.
    Результат один и тот же на всех трёх.
    Может быть нужно было что то ещё сделать,
    перед тем как прошивать плату?

    1. Дмитрий добрый день и пожелания доброго здоровья.
      Большое спасибо за поддержку и советы,
      особенно за полезные статьи о прошивке и гравировке в Laser GRBL
      Прошивку Arduino nano всё таки сделал через прогу Laser GRBL.
      Третий день занимаюсь опытами по выжиганию с оттенками серого.
      Действительно, ни какой закономерности, в этом деле , нет.
      Только методом “научного” тыканья подбираются
      режимы выжигания того или иного рисунка, фото.
      В общем, есть чем заняться в свободное от пенсии время.
      Удачи Вам во всех делах и начинаниях.
      С уважением,
      Николай.

    2. Рад, что все получилось! Да, приходится подбирать… Ничего не поделаешь. Проблема в основном в том, что у 8-битных контроллеров слабоват ШИМ!!! Из статьи Вы видите сколько разрядов съедает уровни черного и белого. Легко прикинуть сколько остается на оттенки. Нужно или мощность лазера повышать или переходить на контроллеры, имеющие ШИМ с большим кол-вом разрядов. Никак руки не доходят перейти на 32-разрядные контроллеры… Если кто пробовал и есть опыт, кидайте информацию. Обязательно поделюсь со всеми.

  3. Всем привет и доброго здоровья.
    Прошу не пинать ногами,
    за незнание терминов в работе с лазерными граверами.
    В этом деле новичок.
    Занимаюсь выжиганием только для себя и своей семьи.
    Станок китайский А3
    Пользовался EleksCam – выжигает неплохо, но медленно.
    Перешёл на Engraver Master.
    Перепрошивку не делал (опасался накосячить)
    Всё хорошо- выжигает быстрее, регулируется мощность и скорость.
    Попробовал выжигать фото. Выжигает точками, но очень медленно
    а качество оставляет желать лучшего.
    Установил LaserGRBL.
    Выжигание картинок с оттенками серого не получается.
    Опасаясь, что накосячу и потом не смогу работать с Engraver Master
    перепрошивку не делал.
    Подумал, что лучше взять новую Arduino Nano, прошить,настроить
    и установить в место той, что сейчас хорошо работает с Engraver Master.
    Заказал Arduino Nano v3.0, должна скоро прийти.
    Пожалуйста, подскажите, как, шаг за шагом, сделать прошивку и настройку
    новой Arduino Nano v3.0
    В интернете, подробного описания (для “чайников”)не нашёл.
    В ютубе посмотрел множество видео, голова пошла кругом,
    но для “чайников” ничего конкретного не нашёл.
    Надеюсь на вашу помощь.

    1. Здравствуйте! То, что не стали портить оригинальную прошивку – хорошо и верно.
      Так, собственно, об этом и статья… Единственная разница в том, что я описывал ARDUINO UNO! Вам потребуется только при прошивке Вашей ARDUINO NANO выбрать именно его в программаторе. А дальше по описанному мной алгоритму…
      Если будут трудности, пишите, подскажем!

    2. Всем привет и доброго здоровья.
      Спасибо за поддержку.
      Файл прошивки grbl_v1.1f.20170801.hex и утилиту XLoader скачал.
      Получил Arduino nano v3.0. Подключил к ноутбуку.
      Определился порт (com3).
      Но на Arduino один светодиод светится красным, а второй мигает.
      Это настораживает и не понимаю, что делать.
      Вразумительного ответа в интернете не нашёл.
      Пожалуйста, подскажите, что делать дальше?
      И ещё, обязательно ли для прошивки и настройки, вставлять Arduino
      на плату управления станком или это можно сделать после прошивки
      и настройки?

    3. Для прошивки ARDUINO не обязательно устанавливать плату в плату расширения! Достаточно подключить к USB порту, открыть HEX и прошить плату! Это единственный момент, когда требуется программатор. Дальше вся настройка выполняется на уровне констант в EEPROM контроллера…

    4. Всем привет и доброго здоровья.
      Спасибо за поддержку.
      Попытки прошить ардуино, каждый раз, заканчиваются появлением upload filed
      в нижней строке ХLoader.
      После запуска LaserGRBL и подключения Ардуино, в настройках EEPROM,
      видны настройки старой прошивки 0.9i.
      Такое впечатление, что LaserGRBL “не видит” Ардуино.
      Клик на кнопку “подключение” заканчивается “Состояние: отключен”.
      Пожалуйста, подскажите, как это исправить?
      Или я, что то не так сделал?

    5. Никогда не было таких проблем. Прошивка “ложится” всегда прекрасно! Пробуйте другую плату…

  4. А вот ещё случиласт неприятность – вертикальные полосы на рисунке. От чего может быть? Пробовал до этого уменьшеный вариант этого рисунка на таких же настройках, такого не было. Да и раньше выжигал на дощечках, всё было ок. В настройках прожига разрешение 5 линий на мм, в настройках grbl так же как у Вас 80 микрошагов на мм.
    А горизонтальные широкие полосы это как раз склейка из разных дощечек, а я, наверное, задал слишком высокую скорость 1500, и дощечки потемнее успевали прожечься, а посветлее – нет.
    https://photos.app.goo.gl/iupR5jhDxGWDrDfE6

    1. По вертикальным полосам:
      Проверьте механику – каретки должны ходить без усилия и настройки по току ШД. Мне кажется перегрев на оси X. Я обычно Y перетягиваю :). При этом наблюдается такая же картина…
      Скорость в 1500 – слишком быстро. На векторе вполне реализуема, для полутонов очень большая.

  5. Всё бы ничего, но подстраивать уровни серого придётся для каждого конкретного дерева или другого материала. Даже одно деревянное изделие склееное из разных кусков дерева имющих даже немного разную яркость, будет по разному прожигаться на этих кусках, чем светлее – тем хуже прожигается.

    1. Все верно… Для лазера малой мощности так и есть. Но можно подобрать некие средние значения для гоавировки среднего качества. Если есть желание получить наилучший рисунок, то под каждый материал требуется калибровка!

  6. Дмитрий, спасибо за интересные и полезные статьи.
    Сразу же признаюсь, что я полный чайник в электронике.
    У меня вопрос на миллион. Вчера собрал пришедший с АлиЭкспресс станок с лазером на 3Вт и рабочим полем 50 на 65. В комплекте Нано3 (китайская) и два контролера А 4988.
    В первый день при запуске родной платы и Бенбокс лазер работал и выжигал, но чересчур мощьно.
    На второй день перестал включаться лазер. А потом я потрогал платы рукой , когда на них было подано питание (и видмо что то там замкнул). Поехал и купил новые шаговые и Нано3 (тоже китай). Поставил, по вашей статье сделал прошивку и вуаля все заработало. Каретки двигаются, лазер светит. НО, нифига не выжигает, а только светит. И так и этак покрутил ничего. Плюнул и решил поесть.
    Дочитал статью и скачал ваш файл конфигурации , импортировал и записал. Включаю, а он не светит.
    Перезаписал по новой, не светит. Удалил программу, снова перезаписал прошивку, поставил программу…неа не включается лазер. Пару раз моргнул и все! Файл конфигурации должен же был обнулиться при перепрошивке или нет ?
    Посоветуйте что делать?

    1. Добрый день! Извините, из-за технических проблем получил доступ к Вашему комментарию только сейчас… Ответ отправил на электронную почту. Спасибо за оценку статей!

Добавить комментарий