Моё подключение лазера к контроллеру BIGTREETECH SKR V1.3
Наконец приехал долгожданный контроллер skr 1.3. После печати корпуса, установки и 2х недельной настройки tmc2208 в режиме uart вспомнил одну из целей данного приобретения: подключить лазер, который лежал на полке уже полгода.
Предупреждение: автор не несёт ответственности за возможные последствия и поломки, которые могут произойти при попытке повторения изложенного материала. Также не забывайте об опасностях при использовании лазера. Пользуйтесь специальными защитными очками! Всё, что вы делаете - вы делаете на свой страх и риск.
Итак, имеем принтер Ender 3 pro с платой контроллера bigtreetech skr 1.3. Для быстрой смены рабочего инструмента был напечатан Quick tool change for Creality CR-10 / Ender series.
Лазер мощностью 5500 мВт был приобретен у китайцев. В комплект входит сам лазер, драйвер, блок питания на 12В и проводок для соединения с принтером. Для управления лазером на плате драйвера имеется разъем, обозначенный как TTL.
Лазер
Вход управления
На плате контроллера есть разъём для управления нагревом вторым хотэндом (HE1). Именно этот выход я и хотел использовать для управления лазером. Для начала надо разобраться с уровнями сигналов. Включение/отключение луча происходит подачей напряжения 5В на вход TTL. Высокий уровень сигнала - луч включен, низкий - луч погашен. Вход притянут через резистор на плате драйвера к 5В, поэтому без подключения входа управления лазер жарит "на полную". На skr 1.3 для нагрева хотэнда используется напряжение питания (в моем случае 24В), которое великовато для нас. В интернете люди по-разному выкручиваются из этой ситуации. Резистивным делителем напряжения, развязкой на транзисторе. Я, поизучав схему контроллера, решил припаяться прямо к ключевому транзистору. Нам нужен Q1. На вход затвора (G) с микросхемы буфера (U5) приходят необходимые 5В. Минус можно взять с вывода истока (S) того же транзистора.
После прошивки Marlin на skr 1.3 там появилась опция управления вторым вентилятором обдува (если в прошивке не прописывать второй хотэнд). Это и есть нужный нам выход ШИМ.На всякий случай смотрим осциллографом сигнал. Поставил обдув на 25%:
Форма сигнала между выводами S-G:
По амплитуде 5В, что нам и надо, а вот с частотой проблемы... 2.5 деления * 50 мс = 125 мс или 8 Гц... В принципе это видно и на светодиоде, который установлен на плате около нужного нам транзистора. Мигания различимы невооруженным глазом :) Как я с этим справился напишу ниже.
Итак, припаиваемся...
На схеме это будет выглядеть так (красная и черная стрелки):
На плате:
Обращаем внимание на полярность!
Проводок, шедший в комплекте с лазером, имел на концах два одинаковых разъёма, но c разной полярностью. Именно его я, обрезав разъём, припаивал к транзистору.
Для теста подключил лазер и поигрался оборотами обдува. Мощность меняется, но частота никуда не годится. Цветомузыка.
В общем надо увеличить частоту и научиться управлять ШИМом.
Сначала думал нужно копать в сторону параметра SOFT_PWM_SCALE, но осталось непонятно, как управлять мощностью через G-код. Пока изучал мат. часть в файле Configuration_adv.h наткнулся на то, что в прошивке Marlin уже заложена возможность управления шпинделем/лазером командами M3, M4 и M5. Для этого выход должен быть аппаратным PWM. Из интернета узнаем, что процессор LPC1768 имеет шесть выводов с возможностью запрограммировать под ШИМ, в том числе нужный нам порт P2.4.
Определим порт для управления лазером.
Находим файл Marlin\src\pins\lpc1768\pins_BTT_SKR.h
В нем добавляем строки:
#define SPINDLE_LASER_ENA_PIN P2_03
без этой строки прошивка не компилируется. Определяет порт включения/выключения лазера. У меня такого нет, поэтому я прописал порт, к которому подключен вентилятор обдува детали. Не уверен в правильности
#define SPINDLE_LASER_PWM_PIN P2_04 // digital pin - MUST BE HARDWARE PWM
Определяет порт ШИМ управления мощностью.Имевшиеся до этого строки с определением порта P2_04 просто закомментировал.
Получилось так:
Далее в файле Marlin\Configuration_adv.h ищем строку //#define LASER_FEATURE и раскомментируем её. У меня это выглядит так:
//#define SPINDLE_FEATURE
управление шпинделем нас не интересует
#define LASER_FEATURE
а вот лазер нам нужен
#if EITHER(SPINDLE_FEATURE, LASER_FEATURE)
#define SPINDLE_LASER_ACTIVE_HIGH true // Set to "true" if the on/off function is active HIGH
у меня, как я и говорил, нет отдельного включения лазера, поэтому тут без разницы
#define SPINDLE_LASER_PWM true // Set to "true" if your controller supports setting the speed/power
А эта строка определяет управляется лазер с помощью ШИМ или нет
#define SPINDLE_LASER_PWM_INVERT false // Set to "true" if the speed/power goes up when you want it to go slower
Тут можно инвертировать сигнал ШИМ, вернее определить, включается лазер низким уровнем напряжения или высоким
#define SPINDLE_LASER_POWERUP_DELAY 1 // (ms) Delay to allow the spindle/laser to come up to speed/power
задержка после включения до момента печати. больше нужна для раскручивания шпинделя. Должна быть больше 0
#define SPINDLE_LASER_POWERDOWN_DELAY 1 // (ms) Delay to allow the spindle to stop
Задержка для остановки шпинделя/выключения лазера. Должна быть больше 0
#if ENABLED(SPINDLE_FEATURE)
...эта часть относится к шпинделю, я её не трогал...
#else
#define SPEED_POWER_SLOPE 1
коэффициент пересчета задаваемой мощности в мощность ШИМ (0-255). Например, если вы решили задавать мощность в процентах (0-100), то этот коэффициент надо установить равным 0.3922
#define SPEED_POWER_INTERCEPT 0
сдвиг для задаваемой мощности
#define SPEED_POWER_MIN 0
Минимальная задаваемая мощность
#define SPEED_POWER_MAX 255
Максимальная задаваемая мощность
#endif
#endif
После заливки прошивки на главном экране появляется новый значок
в нем можно вручную включить/выключить лазер и установить мощность.
Внимание, после включения через меню лазер включается на максимум
Частота ШИМ увеличивается до 50 Гц
Команды для включения "M3 Sxxx", где xxx - мощность или "M4 Sxxx" (отличия при работе со шпинделем. Для разного направление вращения, но нам это не надо). Отключается лазер командой "M5".
Далее с помощью маленькой софтинки на единственно найденном огрызке фанеры протестировал гравировку.
результат
Как видно, полученная гравировка имеет дефекты в виде точек и вертикальных волнистых линий. Чем это вызвано пока не изучал.
Всем удач!
PS. Строго не судите, мой первый пост
Еще больше интересных статей
Мой путь в 3д печать, часть 2
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Приветствую тебя мой дорогой друг, решивший что прочтение этого материа...
Профиль в KP3S Pro S1
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
При движении стола консольная ось X&n...
Наблюда-Ski 04.6: Наращиваем в длину, или Фьюз и не только
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Недавно было несколько тем по сращиванию прутков,
и для начи...













Комментарии и вопросы
Зачем они термопластавтоматы в...
Попробуйте другую.
Тут я с вами не во всем соглас...
Собственно вопрос к владельцам...
Здравствуйте, появился вопрос...
Нужно напечатать человеческий...
Добрый день, где можно взять м...