Кремень FMZ Реклама
Kremen FMHM Реклама

Настройка Smoothieware для ZAVMax Pro

RFSlab
Идет загрузка
Загрузка
18.03.2018
14853
35
Техничка

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

23
Статья относится к принтерам:
ZAV-MAX-PRO

Всем привет.



Собрал я себе принтер ZAV Max Pro, с платой управления MKS Sbase v.1.3. Точных пошаговых инструкций по конфигурации прошивки Smoothieware в сети я не нашел. Есть много статей по общей настройке Smoothieware, но пошаговых инструкций не нашел. Поэтому решил собрать в одну инструкцию по настройке Smoothieware на принтере ZAV, плюс добавил свой личный опыт по конфигурации Смузи, полученный в ходе настройки своего принтера. За основу взял статьи, написанные eto4ever и dagov, думаю они будут не против, что я использовал часть текста из их статей.
Настройка Smoothieware для ZAVMax Pro

Начнем с установки и присоединения к ПК.



Как рекомендуют китайцы из Makerbase на своем Github нужно установить подписанные драйвера для корректной работы платы.

Настройка Smoothieware для ZAVMax Pro

Далее после подсоединения к ПК плата вам приветливо поморгает диодами D7 и D1.



После этого желательно обновить прошивку на самой плате. Можно скачать на официальном сайте, а можно и с Github Makerbase. Заливаем файл firmware.bin на microSD карточку. После заливки вставляем карту в слот и подсоединяем к ПК. Должен загореться диод D7 после того как моргнет D1. D2, D3 и D4 в процессе прошивки будут моргать. После всего этого действа на карточке вы обнаружите файл firmware.cur. Далее на карточку нужно залить файл конфигурации принтера, ибо EEPROM тут нет и все параметры вашего принтера будут храниться в текстовом файлике config.txt. Дальше мы поговорим о нем.



В Smoothieware перепрошивать ничего не нужно, достаточно внести изменения в текстовый файл конфигурации config.txt.

Настройка Smoothieware для ZAVMax Pro

В конфигурациях AVR и LPC1768 есть две большие разницы, которые заключаются в следующем:

  • В Marlin скорости измеряются mm/s, что меня всегда коробило внутренне, тогда как в Smoothieware скорости в mm/min. То есть отличие в 60 раз.

  • В Marlin оси обозначены привычно XYZ и E0/E1 для экструдера, в Smoothieware они обозначены как alpha, beta, gamma для перемещений и delta для экструдера.



Небольшая ремарка - для открытия и редактирования файла config.txt лучше использовать обычный блокнот из среды windows, чем notepad++.

Теперь мы плавно перешли к самому файлу config.txt.



Подачи и скорости (feedrate).
Настройка Smoothieware для ZAVMax Pro
Настройка Smoothieware для ZAVMax Pro

Поскольку в 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-кабеле.
Настройка Smoothieware для ZAVMax Pro

В зависимости от этого у вас будет меняться этот параметр. Для 1/32 и обычных моторов типа 17HS4401 этот параметр будет 160. Соответственно прописываем следующие параметры:



alpha_steps_per_mm 160

beta_steps_per_mm 160

gamma_steps_per_mm 1600

Теперь посмотрим, как мы получили эти параметры.

Находим спецификации (даташит) на установленные шаговые двигатели. Видим, что за один шаг вал поворачивается на 1,8 градуса, а это значит 360/1,8=200 шагов на полный оборот. Этот параметр одинаковый у большинства шаговых двигателей, устанавливаемых в домашние 3D принтеры.
Настройка Smoothieware для ZAVMax Pro

Профили ремней, обычно используемых на 3D принтерах и их шаг. Оригинал здесь, страница 61. Самый распространенный ремень выделен на картинке желтым прямоугольником.

Настройка Smoothieware для ZAVMax Pro

Как померить шаг винта? Для примера замеряем участок винта М5 и считаем на нём витки, затем длину участка в миллиметрах делим на количество витков 20/16=1.25 мм. Для более точного результата замеряем максимальный участок винта.

Настройка Smoothieware для ZAVMax Pro

По осям 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. Оси называются нормально, в отличии от моторов этих осей.

Настройка Smoothieware для ZAVMax Pro

Так вот имея предел в 300 мм/с в Marlin, то тут ставим 18000 мм/мин.



Ток встроенных драйверов регулируется программно, параметрами alpha_current, beta_current и gamma_current, и для драйверов экструдеров параметрами delta_current, epsilon_current, что очень и очень удобно. По умолчанию установлен ток 1А, при желании его можно увеличить/уменьшить.



Так же видим комментарий, повествующий о том, что символ '!' инвертирует пин (здесь речь идет о направлении вращения) шагового двигателя. В Marlin мы меняли true на false, а тут нужно всего лишь убрать символ.

Настройка Smoothieware для ZAVMax Pro

Далее переходим к экструдеру. Активация экструдера указывается в параметре 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



Теперь переходим к термистору.

Настройка Smoothieware для ZAVMax Pro

К сожалению, как в 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.

Настройка Smoothieware для ZAVMax Pro

Последние результаты записываем в прошивку:



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

Настройка Smoothieware для ZAVMax Pro



По умолчанию пин для подключения термистора называется TH2.
Настройка Smoothieware для ZAVMax Pro

После этого настраиваем стол. Для активации термистора стола в параметре 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



Концевики.

Настройка Smoothieware для ZAVMax Pro

Ремарка. Две буковки nc, это не normally closed, а Not Connected, то бишь, если концевика max у вас нет, то нужно вписать эти заветные буквы. Чуть подробнее на сайте.



Так же вписывается место установки концевика home_to_min или home_to_max. Там же вписываем скорости, с которыми каретка будет двигаться в нулевое положение. alpha_max это максимальное перемещение вдоль этой оси. alpha_min это расстояние между положением экструдера в нуле и положением экструдера при печати, то есть если у вас каретка приходит в ноль не над столом.



Команда M119 покажет какой из концевиков нажат.

Настройка Smoothieware для ZAVMax Pro

Когда я установил концевики и переключил на плате питание с 3,3В на 5В, мой оптический концевик оси Z, перестал идти домой, даю команду «Домой» стол едет вверх. Переключаю обратно на 3,3В стол нормально идет домой. Пользователь группы ZAV, у которого была аналогичная проблема, на робофоруме выяснил, что необходимо впаять резистор между сигналом и землей. И я пошел по пути этого пользователя, так же припаял резистор на 1кОм. на пустые пятаки около светодиода (см. фото). В открытом состоянии стал выдавать 0.7В. Смузи начала распознавать смену состояния.

Настройка Smoothieware для ZAVMax Pro

Настроим порядок парковки по осям принтера по команде «Домой». Для этого укажем порядок парковки в параметре:



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 на флешку. Теперь эта настройка будет использоваться всегда, после выключений и рестартов.

Теперь настроим сеть.

Настройка Smoothieware для ZAVMax Pro

Активируем сеть, указав параметр:

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/

Настройка Smoothieware для ZAVMax Pro

На этом всё, перегружаем конфиг и проверяем работу. Если двигатели вращаются не ту сторону, надо перевернуть на 180° штекеры шаговых двигателей.

На этом основная конфигурация прошивки Smoothieware закончена. Надеюсь новичкам моё пост поможет в настройке.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

23
Комментарии к статье