Настройка Smoothieware для ZAVMax Pro
Всем привет.
Собрал я себе принтер ZAV Max Pro, с платой управления MKS Sbase v.1.3. Точных пошаговых инструкций по конфигурации прошивки Smoothieware в сети я не нашел. Есть много статей по общей настройке Smoothieware, но пошаговых инструкций не нашел. Поэтому решил собрать в одну инструкцию по настройке Smoothieware на принтере ZAV, плюс добавил свой личный опыт по конфигурации Смузи, полученный в ходе настройки своего принтера. За основу взял статьи, написанные eto4ever и dagov, думаю они будут не против, что я использовал часть текста из их статей.
Начнем с установки и присоединения к ПК.
Как рекомендуют китайцы из Makerbase на своем Github нужно установить подписанные драйвера для корректной работы платы.
Далее после подсоединения к ПК плата вам приветливо поморгает диодами D7 и D1.
После этого желательно обновить прошивку на самой плате. Можно скачать на официальном сайте, а можно и с Github Makerbase. Заливаем файл firmware.bin на microSD карточку. После заливки вставляем карту в слот и подсоединяем к ПК. Должен загореться диод D7 после того как моргнет D1. D2, D3 и D4 в процессе прошивки будут моргать. После всего этого действа на карточке вы обнаружите файл firmware.cur. Далее на карточку нужно залить файл конфигурации принтера, ибо EEPROM тут нет и все параметры вашего принтера будут храниться в текстовом файлике config.txt. Дальше мы поговорим о нем.
В Smoothieware перепрошивать ничего не нужно, достаточно внести изменения в текстовый файл конфигурации config.txt.
В конфигурациях AVR и LPC1768 есть две большие разницы, которые заключаются в следующем:
В Marlin скорости измеряются mm/s, что меня всегда коробило внутренне, тогда как в Smoothieware скорости в mm/min. То есть отличие в 60 раз.
В Marlin оси обозначены привычно XYZ и E0/E1 для экструдера, в Smoothieware они обозначены как alpha, beta, gamma для перемещений и delta для экструдера.
Теперь мы плавно перешли к самому файлу config.txt.
Подачи и скорости (feedrate).
Поскольку в Marlin единицы измерения несколько иные, и если мы там использовали, скажем 300 мм/с, то для Smoothieware скорость будет 18000 мм/мин. Названия параметров созвучны с Marlin. Default_feed это DEFAULT_MAX_FEEDRATE в Marlin.
Далее мы видим параметры alpha_steps_per_mm, это количество шагов на мм линейного перемещения для оси X, ровно так же с осями beta и gamma. Для установки этого параметра нужно понять какой микрошаг мы используем. Для вшитых в MKS Sbase DRV8825, варианта всего два, 1/16 или 1/32. Переключение производится джампером J3.
Примечание. Не переставляйте перемычку при включенном питании и подключенном USB-кабеле.
В зависимости от этого у вас будет меняться этот параметр. Для 1/32 и обычных моторов типа 17HS4401 этот параметр будет 160. Соответственно прописываем следующие параметры:
alpha_steps_per_mm 160
beta_steps_per_mm 160gamma_steps_per_mm 1600
Теперь посмотрим, как мы получили эти параметры.
Находим спецификации (даташит) на установленные шаговые двигатели. Видим, что за один шаг вал поворачивается на 1,8 градуса, а это значит 360/1,8=200 шагов на полный оборот. Этот параметр одинаковый у большинства шаговых двигателей, устанавливаемых в домашние 3D принтеры.
Профили ремней, обычно используемых на 3D принтерах и их шаг. Оригинал здесь, страница 61. Самый распространенный ремень выделен на картинке желтым прямоугольником.
Как померить шаг винта? Для примера замеряем участок винта М5 и считаем на нём витки, затем длину участка в миллиметрах делим на количество витков 20/16=1.25 мм. Для более точного результата замеряем максимальный участок винта.
По осям X и Y стоят шаговые двигатели 200 шагов на оборот, 32 микрошагов на шаг (устанавливается перемычкой на плате), приводной ремень GT2 с шагом 2 мм, 20-ти зубые шкивы, итого получаем формулу:
steps_per_mm = (200*32)/(2.0*20)=160.
У кого по оси Z стоит трапецеидальный винт, диаметром 8мм, с шагом резьбы 8 мм, тогда получается формула:
gamma_steps_per_mm = 200*32/8=800
Для себя я поставил ШПП SFU1204 с шагом резьбы 4 мм, соответственно у меня получается:
gamma_steps_per_mm = 200*32/4=1600
Далее видим параметры x_axis_max_speed, y_axis_max_speed, z_axis_max_speed. Это максимальные скорость перемещения вдоль осей X, Y и Z. Оси называются нормально, в отличии от моторов этих осей.
Так вот имея предел в 300 мм/с в Marlin, то тут ставим 18000 мм/мин.
Ток встроенных драйверов регулируется программно, параметрами alpha_current, beta_current и gamma_current, и для драйверов экструдеров параметрами delta_current, epsilon_current, что очень и очень удобно. По умолчанию установлен ток 1А, при желании его можно увеличить/уменьшить.
Так же видим комментарий, повествующий о том, что символ '!' инвертирует пин (здесь речь идет о направлении вращения) шагового двигателя. В Marlin мы меняли true на false, а тут нужно всего лишь убрать символ.
Далее переходим к экструдеру. Активация экструдера указывается в параметре extruder.hotend.enable, указав команду true (см. картинку выше). Количество шагов на мм выдавленного прутка указывается в параметре extruder.hotend.steps_per_mm, скорость подачи прутка указывается в параметре extruder.hotend.default_feed_rate и ускорения в extruder.hotend.acceleration. Чуть ниже длина ретракта (extruder.hotend.retract_length) и ток на экструдере (delta_current).
Если у вас как и у меня экструдер Титан, то для него согласно рекомендаций сайта https://wiki.e3d-online.com/Titan_Assembly#Firmware_Calibration, то для него применяем такую формулу:
Шаги на единицу (экструдер) = Шаги двигателя * Микрошагирование * Коэффициент передачи / (диаметр Hobb * Pi)
Так как Titan использует известное передаточное число и стабильно обработанную ведущую шестерню, то мы имеем довольно точные параметры:
у меня шаговые двигатели 200 шагов на оборот,
драйверы установлены 32 микрошагов на шаг;
коэффициент передачи - 3;
диаметр Hobb (эффективный) - 7,3;
Pi - 3,142.
В итоге получаем:
200*32*3/(7,3*3,142)=837,1
В файле config.txt прописываем:
extruder.hotend.steps_per_mm 837.1
Так же не забываем инвертировать направление движение экструдера в файле config.txt, поставив знак «!»:
extruder.hotend.dir_pin 0.22!
Для указания в файле конфигурации второго экструдера, необходимо вставить после раздела с параметрами первого экструдера, параметры для второго, скопировав параметры для первого, и заменив в параметрах: название hotend на hotend2. Ток на втором экструдере указать как epsilon_current.
Т.к. на экструдеры у меня установлены двигатели 17HS2408 с силой тока на 0,6А, для драйверов экструдеров я установил такие параметры:
delta_current 0.3
epsilon_current 0.3
Теперь переходим к термистору.
К сожалению, как в Marlin не получится отделаться циферкой, нужно написать имя термистора из списка поддерживаемых. Если у вас другой термистор, добавить его не составит труда, достаточно или вписать параметр beta или же найти коэффициент temperature_control.hotend.coefficients.
Для себя я пока выставил такой параметр, правда разница с реальной температурой составила 5-6 °С:
temperature_control.hotend.thermistor EPCOS100K
Если хотите точно откалибровать термистор то вам надо закомментировать строчку, поставив знак #:
#temperature_control.hotend.thermistor
B раскомментировать строчку:
temperature_control.hotend2.beta
После того, как всё заработает нужно откалибровать PID нагрева хотэнда. Для этого используем программу Pronterface. Вводим команду «M303 E0 C8 S260». Где M303 - команда калибровки, E0 - хотэнд, C8 - количество циклов нагрева-охлаждения, S260 - типичная температура работы сопла. Если по каким то причинам вам надо прекратить калибровку PID, введите команду M304.
Последние результаты записываем в прошивку:
temperature_control.hotend.p_factor 59.0
temperature_control.hotend.i_factor 6.326
temperature_control.hotend.d_factor 138
Далее настраиваем PID для второго экструдера, для этого в программе Pronterface вводим команду «M303 E1 C8 S260».
Обратите внимание: если у вас 2 экструдера, то E1 –это хотэнд 2, если один экструдер, то E0 -это будет стол. Поэтому будьте внимательны при записи команды, не сожгите стол!
Результаты записываем в прошивку:
temperature_control.hotend2.p_factor 61.2
temperature_control.hotend2.i_factor 5.743
temperature_control.hotend2.d_factor 163
По умолчанию пин для подключения термистора называется TH2.
После этого настраиваем стол. Для активации термистора стола в параметре temperature_control.bed.enable указываем true, и вписываем термистор. И если будем использовать Bang Bang (о нем dagov уже писал), то в параметре temperature_control.bed.bang_bang ставим true. Если хотим PID, то пишем false.
По такой же схеме калибруем PID стола. В программе Pronterface вводим команду «M303 E2 C8 S120». Где E2 - стол, C8 - количество циклов нагрева-охлаждения, S120 - типичная температура нагрева стола. Последние результаты записываем в прошивку. У меня стол нагревается очень медленно и поэтому из-за ошибки Timeout, приходится перезапускать команду настройки PID.
У меня в файле config.txt отсутствовал раздел настройки PID стола, поэтому впишем следующие строчки:
# PID configuration bed
# See http://smoothieware.org/temperaturecontrol#pid
temperature_control.bed.p_factor 207.1 # P ( proportional ) factor
temperature_control.bed.i_factor 7.051 # I ( integral ) factor
temperature_control.bed.d_factor 1521 # D ( derivative ) factor
Концевики.
Ремарка. Две буковки nc, это не normally closed, а Not Connected, то бишь, если концевика max у вас нет, то нужно вписать эти заветные буквы. Чуть подробнее на сайте.
Так же вписывается место установки концевика home_to_min или home_to_max. Там же вписываем скорости, с которыми каретка будет двигаться в нулевое положение. alpha_max это максимальное перемещение вдоль этой оси. alpha_min это расстояние между положением экструдера в нуле и положением экструдера при печати, то есть если у вас каретка приходит в ноль не над столом.
Команда M119 покажет какой из концевиков нажат.
Когда я установил концевики и переключил на плате питание с 3,3В на 5В, мой оптический концевик оси Z, перестал идти домой, даю команду «Домой» стол едет вверх. Переключаю обратно на 3,3В стол нормально идет домой. Пользователь группы ZAV, у которого была аналогичная проблема, на робофоруме выяснил, что необходимо впаять резистор между сигналом и землей. И я пошел по пути этого пользователя, так же припаял резистор на 1кОм. на пустые пятаки около светодиода (см. фото). В открытом состоянии стал выдавать 0.7В. Смузи начала распознавать смену состояния.
Настроим порядок парковки по осям принтера по команде «Домой». Для этого укажем порядок парковки в параметре:
homing_order ZXY
Калибровка 0 по оси Z
Расскажу немножко про то как калибруется 0 по оси Z. Вообще все это есть в руководстве Smoothieboard, но все ж таки. Стартовым условием считаем, что в конфиге у вас все хорошо, оси ездят в правильные стороны. Отправляем стол вниз (G28) в хоум. Далее, пишем - G1 Z15 F2000. Это отправит стол наверх. В теории если у вас 0 уже настроен, это будет 15 мм от сопла. Если стол не откалиброван, то скорее всего там не 15, а, например, 13 мм. Или наоборот 18. F2000 это скорость - довольно резвая. Я поначалу опасался поднимать стол на таких скоростях, боясь раздолбать зеркало об сопло. Так что можно менять это значение, ну, например, F500 или F1000. Короче стол поднялся на некую высоту от сопла. После этого начинаем поднимать стол понемножку кнопками того же Pronterface или Repetier. Так как 0 у нас вверху, то тыкаем кнопки Z-, а не +. Потихонечку, сперва по 1 мм потом, когда совсем близко, то по 0.1. Далее используем стандартные советы по выравниваю стола. Выровняли, передаем ручками принтеру команду M306 Z0. Так запомнятся настройки 0 по оси Z. Далее пишем M500. Это сохранит config override на флешку. Теперь эта настройка будет использоваться всегда, после выключений и рестартов.
Теперь настроим сеть.
Активируем сеть, указав параметр:
network.enable true.
Если используем DHCP на роутере, то оставляем параметр:
network.ip_address auto
Выставляем маску подсети
network.ip_mask 255.255.255.0
Указываем IP адрес роутера
network.ip_gateway 192.168.1.1
И указываем IP принтера.
network.ip_address 192.168.1.221
Для подключения к принтеру в браузере набираем:
http://192.168.1.221/
На этом всё, перегружаем конфиг и проверяем работу. Если двигатели вращаются не ту сторону, надо перевернуть на 180° штекеры шаговых двигателей.
На этом основная конфигурация прошивки Smoothieware закончена. Надеюсь новичкам моё пост поможет в настройке.
Еще больше интересных статей
Водянка
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Терпение и труд... 3D Touch, смена прошивки и чуть-чуть про столы и мусор. Глава 3
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Руки чесались в конце концов подключить и запустить 3D Touch, за...
Настраиваем прошивку Marlin и заливаем её в 3D принтер
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
А вы таскали за эту ручку? Мож...
Итить колотить...на бутыле уже...
Автор, нравится Ваша разработк...
Всех приветствую, появился у м...
Обязательно ли, припаивать плю...
Помогите пожалуйста, купил нов...
Печатаю на Anycibic cobra 2Pro...