Программное обеспечение
Во время прошивки не нужно включать питание принтера. Ардуина будет получать питание через USB от вашего компьютера.
В качестве прошивки может быть использован любой вариант совместимый с RAMPS 1.4. Если вы новичок в этом, вы можете взять уже готовую собранную нами прошивку “Marlin Firmware”. Вам останется только настроить некоторые из параметров под вашу конфигурацию. Скачать прошивку можно здесь https://github.com/Re-D-Bot/Re-D-Marlin.
Основная магия настроек в Marlin Firmware находится в файле “Configuration.h”, нижеперечисленные изменения производятся в этом файле. Мы заранее все настроили, но некоторые параметры вам придется указать свои. Наиболее важные настройки мы опишем ниже, полную инструкцию по настройке можно найти тут http://marlinfw.org/docs/configuration/configuration.html.
Вы так же можете самостоятельно скачать последнюю версию прошивки Marlin и в файле конфигурации внести настройки, они могут немного отличаться в новых версиях прошивки.
#define BAUDRATE 115200
Если у вас не оригинальная ардуина, то не ставьте значение выше 115200, может не заработать.
#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_BED 1
Тип термистора. Дело в том, что значения термисторов нелинейные, и у каждого термистора есть своя таблица значений. В большинстве случаев для настройки подходит первый термистор (значение 1). Если вы знаете какой у вас точно, и он есть в списке выше строки настройки, вы можете указать его.
#define DEFAULT_Kp 15.02
#define DEFAULT_Ki 0.81
#define DEFAULT_Kd 69.79
ПИД параметры хотэнда индивидуальны для каждого принтера. Рекомендуем выполнить калибровку и выставить свои параметры.
Важно: для калибровки ПИД на принтере уже должна быть залита прошивка Marlin. Рекомендуем пропустить настройку ПИДов сейчас и вернуться позже (при проверке принтера), мы вам напомним об этом ниже.
Для калибровки ПИД нужно подключиться к принтеру, например, через USB к вашему компьютеру (можно использовать программу pronterface). Выбери COM порт, к которому подключен принтер, (если не знаете - методом проб он находится быстро) и скорость соединения, которую ранее установили в конфигурации через #define BAUDRATE
. Далее нажмите “Connect”
После подключения, отправьте следующую команду на принтер: M303 E0 C8 S230
В консоли принтера будет отображаться ход калибровки, в течение этого времени хотэнд принтера будет нагреваться и охлаждаться несколько раз. Процесс калибровки занимает несколько минут, по его завершению в консоли вы увидите примерно следующее:
bias: 92 d: 92 min: 196.56 max: 203.75
Ku: 32.59 Tu: 54.92
Clasic PID
Kp: 15.02
Ki: 0.81
Kd: 69.79
PID Autotune finished ! Place the Kp, Ki and Kd constants in the configuration.h
Значения Kp Ki и Kd пропишите в файле конфигурации прошивки. Подробнее о калибровке можно прочитать тут http://reprap.org/wiki/PID_Tuning
#define PIDTEMPBED
Раскомментируйте эту строку (уберите в начале строки две косых “//”). Эта настройка позволяет управлять температурой стола более деликатно и точно.
#define DEFAULT_bedKp 267.18
#define DEFAULT_bedKi 52.61
#define DEFAULT_bedKd 339.25
Это ПИД параметры для стола. Настройкой выше через PIDTEMPBED
мы включили ПИД для стола. Калибруется он точно так же, как и ранее описанный хотэнд, только команда немного другая M303 E-1 C8 S90
. Лучше это делать во время настройки принтера.
#define COREXY
Указываем конфигурацию механики принтера: необходимо раскомментировать строчку.
#define USE_XMIN_PLUG
// #define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
// #define USE_XMAX_PLUG
#define USE_YMAX_PLUG
// #define USE_ZMAX_PLUG
Настраиваем концевик по Y в положение MAX
#define X_MIN_ENDSTOP_INVERTING true
#define Y_MIN_ENDSTOP_INVERTING true
#define Z_MIN_ENDSTOP_INVERTING false
#define X_MAX_ENDSTOP_INVERTING true
#define Y_MAX_ENDSTOP_INVERTING true
#define Z_MAX_ENDSTOP_INVERTING true
#define Z_MIN_PROBE_ENDSTOP_INVERTING true
Для обычных механических концевиков выставляем значение true
, для оптических false
.
#define STEPS_KOEF_DRV8825 32
#define STEPS_KOEF_A4988 16
#define STEPS_KOEF_TMC 16
#define DEFAULT_AXIS_STEPS_PER_UNIT { 6.25*STEPS_KOEF_TMC, 6.25*STEPS_KOEF_TMC, 200*STEPS_KOEF_DRV8825/1.25, 5.625*STEPS_KOEF_DRV8825 }
Это настройка моторов принтера. В DEFAULT_AXIS_STEPS_PER_UNIT указывается массив значений через запятую, указывающий количество шагов мотора на 1 мм для X, Y, Z, E0.
В зависимости от того, какие драйвера у вас стоят на моторах, указывайте STEPS_KOEF_DRV8825, или STEPS_KOEF_A4988, или STEPS_KOEF_TMC.
В примере для двигателей X и Y используются драйвера TMC2100 со шкивами на 16 зубьев под GT2 ремень. Для оси Z используется строительная шпилька из нержавейки с 1,25 мм шагом на оборот и драйвер DRV8825. Все двигатели с углом поворота 1.8 градуса.
Для X и Y значения получаем по следующей формуле (аналогично для экструдера): 360 / угол поворота двигателя / количество зубьев на шкиве / зубов на 1 мм хода * делитель шагов драйвера = 360 / 1.8 / 16 / 2 * STEPS_KOEF_TMC = 6.25 * STEPS_KOEF_TMC
Для Z шпильки значение рассчитываем по формуле: 360 / угол поворота двигателя = 360 / 1.8 * делитель шагов драйвера / мм на один оборот шпильки = 200 * STEPS_KOEF_DRV8825 / 1.25
Если вы не знаете, какой у вас шкив на экструдере, выставите пока значение как у нас. Позже мы будем проверять движение по осям, и там будет отдельная инструкция о настройке двигателя экструдера.
Вы может воспользоваться замечательным калькулятором тут http://www.prusaprinters.org/calculator/#MotorStuffSPMB и просто указать конечные значения в виде цифр, например #define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 100, 5120, 180 }
#define Y_HOME_DIR 1
Для того, чтобы печатающая головка парковалась в дальний левый угол и контролировалась установленными концевиками.
#define X_MAX_POS 300
#define Y_MAX_POS 300
#define Z_MAX_POS 300
Размер печатной зоны.
#define REVERSE_ENCODER_DIRECTION
Раскомментируйте этот параметр, если используете экран с энкодером, который крутит в обратную сторону.
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
Если используете 12864 Full graphic экран, то раскомментируйте этот параметр. Это один из самых популярных экранов для RAMPS плат. Однако, если используете принт-сервер OctoPrint или Repetier-Server, то экран вам не нужен (и для ардуино будет легче без экрана).
В настройках нашей сборки экран выключен, если вы хотите использовать его, раскомментируйте строчку с вашим экраном.
#define FAST_PWM_FAN
Повышает частоту ШИМ для вентилятора обдува пластика, благодаря этому вентиляторы не пищат.
Прошивка принтера
Для прошивки вам понадобится Arduino IDE. Откройте проект (файл Marlin.ino), в меню инструментов (Tools) выберите Board - Mega 2560, Processor - ATmega2560 и Port - тот, на котором у вас определился принтер. Если вы купили китайский клон ардуино, то возможно вам понадобится установить драйвер CH341SER.
Теперь, когда все приготовления закончены, попробуйте собрать прошивку и отправить на принтер - нажмите кнопку Upload. Возможные ошибки (распространенные): неправильные настройки порта или выбрана не та плата ардуино.
Питание принтера
Для прошивки принтера мы не включали блок питание, а использовали USB в качестве источника питания. Теперь для запуска принтера нам понадобится включить блок питания, при этом USB подключение остается.
После первого включения блока питания убедитесь, что:
- вентилятор обдува радиатора хотэнда крутится,
- вентилятор обдува платы RAMPS крутится,
- светодиод на оптическом концевике горит при открытом сенсоре, и тухнет, когда сенсор перекрывается,
- светодиоды на механических концевиках не горят, и загораются, если их нажать,
- подсветка светодиодной лентой работает,
- хотэнд не греется сразу после включения,
- стол не греется сразу после включения.
В случае возникновения проблем, выключите блок питания и проверьте правильность подключения проводов.