Прошивка марлин для prusa i3. Калибровка стола

Дополнительно 07.11.2019
Дополнительно

По просьбе подписчика выкладываю пост о прошивках (Firmware) для 3D принтеров. Данный пост разделен на две части. Первая часть посвящена новичкам и ее я решил оформить в качестве FAQ, надеюсь подобное изложение материала будет кратким, понятным и ответит на большинство вопросов. Во второй части - экзотика, прошивки, которые давно покрылись слоем пыли и совсем молодые или специализированные прошивки. Эта статья так же войдет в книгу "3D Ликбез".

Более подробно про настройку написано в статье.В. Что такое прошивка для принтера?

О. Прошивка для 3D принтера - это написанный программный код, основной задачей которого является считывать и воспроизводить G-code (Специально разработанный код для ЧПУ станков). Это основная задача прошивки. Дополнительный функции, такие как вывод информации о процессе печати, печать с SD карты памяти, управление принтером через интерфейсы - это все дополнительные функции, и в разных прошивках набор этих дополнительных модулей разнообразен, как и сама идея каждой отдельной прошивки.

В. Что можно настроить в прошивке?

О. Практически все, что душе угодно. Начиная от банальной настройки вашего принтера "что бы двигалось", вплоть до переназначением пинов на плате, добавления новых функций, изменения пунктов меню.

В. Какую прошивку выбрать для новичка?

О. Если вы собираете принтер самостоятельно, то для начала стоит освоить прошивку под названием Marlin. В подавляющем большинстве случаев используется именно эта прошивка, даже заводских принтерах.

В. В чем принципиальная разница между прошивками?

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

О. Для начала включите принтер. Если вы приобрели принтер у производителя, скорее всего прошивка в него уже залита, и лезть в первый же час работы не стоит. Я понимаю, что очень хочется, но если возникнут проблемы сперва обратитесь к производителю.

А вот если принтер был куплен как кит набор или вы его собрали самостоятельно, вероятнее всего электроника "голая" без прошивки, и тогда ее нужно загрузить в ваш комплект электроники. Ну и третий вариант, если вы чувствуете себя уверенным пользователем и готовы на эксперименты, смотрите вторую часть статьи.

В. Как залить прошивку в электронику?

О. В 90% случаев у вас на руках имеется Arduino mega 2560 + Ramps 1.4. Или любая другая плата на основе Arduino mega 2560. (В противном случае, читайте вторую часть статьи). Если это так, то вам потребуются программы: Arduino IDE (для работы с файлами прошивки), Pronterface (для настройки и управлением принтера), и сама Marlin .

Первым делом устанавливаем Arduino IDE, и пытаемся подключить Arduino Mega к компьютеру. Если это удалось, и нашлись и установились все драйверы, то радуйтесь, можно двигаться дальше, в противном случае у вас либо Mega основанная на usb чипе ch340g, либо мертвая плата. Платы на ch340g дешевле, но к ним нужно искать специальный драйвер, на всякий случай оставлю его .

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

Напомню, что пошаговая инструкция хорошо описана в статье.

В. Я прошил принтер, но двигатели едут не туда/температура неправильно показывается, не загорается дисплей.

О. Самое время настроить прошивку, для этого открываем в Arduino IDE файл configuration.h и начинаем читать комментарии. Опять же, в статье, упомянутой выше есть полный перечень настроек, но почитать на русском языке о всех возможностях прошивки будет не лишним.

В. Нужно каждый раз менять конфигурацию прошивки и прошивать электронику, или можно как то быстрее менять настройки?

О. Сам ни раз натыкался на это, а реальная проблема была, когда первый раз начал калибровать delta принтер, каждый раз вносить изменения, перепрошивая принтер это смерти подобно. На такие случаи придумали записывать настройки в энергонезависимую память, т.н. EEPROM. Данная функция включается в конфигурации и позволяет в том же pronterface записывать изменения в принтер из консоли при помощи M-команд.

А теперь давайте подробней рассмотрим каждую из прошивок. Разобьем их пожалуй по поддерживаемой электроники.

Прошивки для Arduino (Atmel):

Прошивки для плат на основе 32-битных процессоров ARM.

Любые вопросы, вы можете задать мне лично в VK или написав в ЛС: http://vk.com/tigeer

Перед началом работы с непрофессиональным или полу профессиональным 3D принтером, а также Kit-набором для самостоятельной сборки часто необходимо «залить» и настроить прошивку. Прошивка представляет собой программный код, основными задачами которого являются: считывание и воспроизведение G-code, управление принтером через различные интерфейсы, вывод информации о процессе печати. Другими словами, прошивка необходима, чтобы железо и набор электроники «ожили» и можно было ими управлять. Заливается прошивка на плату управления. У разных 3D принтеров различные платы управления, соответственно, прошивки тоже разные.

В наших 3D принтерах Prusa i3 Steel используется связка плат Arduino Mega 2560 и Ramps 1.4, поэтому в данной статье мы подробно рассмотрим и разберем настройки подходящей для них прошивки, Marlin.

Если вы еще не собрали электронику, то ознакомьтесь со статьей:

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

Где взять?

Последняя версия прошивки Marlin выложена на официальном сайте разработчика https://github.com/MarlinFirmware/Marlin . Скачать более ранее версии прошивки можно по ссылке . Также на сайте присутствуют много различных версий, но мы рекомендуем скачивать самую последнюю версию, помеченную как Latest release. На момент написания статьи, данной версией была 1.0.2-2

Под Downdloads нажмите на Source code (zip) и скачайте архив прошивки себе на компьютер. Далее извлеките содержимое архива в папку.

Установка Arduino IDE

После того, как вы скачали прошивку, нужно ее отредактировать и в дальнейшем записать на микроконтроллер платы управления (Arduino mega 2560). Для этих целей понадобиться программа Arduino IDE, скачать которую можно бесплатно с официального сайта Arduino.

Обратите внимание! Данная программа Arduino IDE регулярно обновляется и возможен такой вариант, что при заливки прошивки на плату, с новыми версиями Arduino IDE могут возникнуть проблемы, а именно будут вылазить ошибки, и вы не сможете записать прошивку в микроконтроллер. Поэтому, при возникновении проблем, попробуйте скачать более старую версию программы, например версию 1.6.0)

Для надежности можете сразу скачать проверенную версию 1.6.0


Нажмите на Windows Installer, и вас перекинут на другую страницу, где необходимо нажать на кнопку JUST DOWNLOAD, далее начнется скачивание файла. Установите программу и приступите к следующему шагу.

Редактирование прошивки Marlin

Вы скачали непосредственно саму прошивку Marlin и программу Arduino IDE, с помощью которой можно редактировать. Откройте папку с прошивкой "Marlin", найдите файл "Marlin" с расширением.ino


Откройте этот файл, откроется программа Arduino IDE


Вверху окна программы находиться много вкладок, в каждой из которых располагаются куски кода, от которых и зависит работа 3D принтера. Вам потребуется только несколько основных вкладок. Первая и основная вкладка это "Configuration.h"


Этот конфигурационный файл, который содержит основные настройки. Именно в этой вкладке необходимо произвести основные изменения.

Обратите внимание! Все изменения в прошивке проведите по порядку сверху вниз. Эти изменения затронут основные участки кода, и они необходимы для начального запуска вашего 3D принтера.

Устанавливаем необходимую скорость в бодах

Первое, что необходимо поменять - скорость в бодах. По умолчанию скорость стоит 250000 (47 строчка кода)

// This determines the communication speed of the printer #define BAUDRATE 250000


// This determines the communication speed of the printer #define BAUDRATE 115200

Если вы используете плату , то скорость должна быть 250000.

Выбираем управляющую плату

После установки скорости в бодах, необходимо указать используемую плату управления (55 строчка кода).

#ifndef MOTHERBOARD #define MOTHERBOARD BOARD_ULTIMAKER #endif


По умолчанию стоит плата 3D принтера Ultimaker - BOARD_ULTIMAKER, поэтому необходимо поменять плату. Весь список плат находится во вкладке "BOARDS_H"


Там предоставлен огромный список различных плат, но вам необходимы только следующие:

#define BOARD_RAMPS_13_EFB 33 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Bed)

#define BOARD_RAMPS_13_EEB 34 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Bed)

#define BOARD_RAMPS_13_EFF 35 // RAMPS 1.3 / 1.4 (Power outputs: Extruder, Fan, Fan)

#define BOARD_RAMPS_13_EEF 36 // RAMPS 1.3 / 1.4 (Power outputs: Extruder0, Extruder1, Fan)

Эти платы относятся к Arduino mega 2560 и Ramps 1.4. В зависимости от модификации вашего 3D принтера, необходимо выбрать соответствующую плату. Например, стандартная связка 1 экструдер + обдув рабочей области + нагревательный стол соответствует плате BOARD_RAMPS_13_EFB

Название платы необходимо скопировать и заменить на вкладке "Configuration.h", меняем следующие строчки:


Меняем название 3D принтера

При настройке обязательно придумайте название своему 3D принтеру и укажите это в прошивке. Зачем? Название принтера отображается на его LCD дисплее, такая возможность точно предусмотрена на таком дисплее.

Найдите строчки: (59 строчка)

// #define CUSTOM_MENDEL_NAME "This Mendel"

Перед #define стоят "//" - это означает, что данные строчки не используются в коде, а служат в качестве пояснений. Чтобы активировать данную строчку, необходимо раскомментировать строку, уберите // перед строчкой.

Измените название по умолчанию "This Mendel" на ваше название 3D принтера, например, "P3Steel". Получаем следующие:

Выбираем датчик температуры стола и экструдера

Выше были указаны настройки прошивки для 1 экструдера и нагревательного стола, то есть в 3D принтере присутствуют два нагревательных элемента, температуры которых необходимо регулировать. Контроль температуры производится с помощью датчиков температуры - термисторов.

Существует большое количество различных термисторов с различными характеристиками, поэтому в прошивке необходимо указать какой именно термистор стоит у вас. Это нужно, чтобы в дальнейшем принтер показывал верную температуру. В прошивке найдите список поддерживаемых термисторов:

//// Temperature sensor settings: // -2 is thermocouple with MAX6675 (only for sensor 0) // -1 is thermocouple with AD595 // 0 is not used // 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup) // 2 is 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup) // 3 is Mendel-parts thermistor (4.7k pullup) // 4 is 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !! // 5 is 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup) // 6 is 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup) // 7 is 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup) // 71 is 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup) // 8 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) // 9 is 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup) // 10 is 100k RS thermistor 198-961 (4.7k pullup) // 11 is 100k beta 3950 1% thermistor (4.7k pullup) // 12 is 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed) // 13 is 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE" // 20 is the PT100 circuit found in the Ultimainboard V2.x // 60 is 100k Maker"s Tool Works Kapton Bed Thermistor beta=3950 // // 1k ohm pullup tables - This is not normal, you would have to have changed out your 4.7k for 1k // (but gives greater accuracy and more stable PID) // 51 is 100k thermistor - EPCOS (1k pullup) // 52 is 200k thermistor - ATC Semitec 204GT-2 (1k pullup) // 55 is 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup) // // 1047 is Pt1000 with 4k7 pullup // 1010 is Pt1000 with 1k pullup (non standard) // 147 is Pt100 with 4k7 pullup // 110 is Pt100 with 1k pullup (non standard)

В списке найдите свой, запомните цифру слева. Как правило, многие используют китайский термистор 100 кОм, для него подходит термистор под номером "1".

// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)

Внесите изменения в нужном месте (строчки 115-118)

#define TEMP_SENSOR_0 -1 #define TEMP_SENSOR_1 -1 #define TEMP_SENSOR_2 0 #define TEMP_SENSOR_BED 0

По умолчанию в прошивке активированы два первых термистора:

TEMP_SENSOR_0 - отвечает за термистор первого экструдера

TEMP_SENSOR_1 - отвечает за термистор второго экструдера

TEMP_SENSOR_BED - отвечает за термистор стола

Поменяйте строчки и получите следующее:


TEMP_SENSOR_1 и TEMP_SENSOR_2 не используются, поэтому напротив них ставим "0" нули.

Ограничение максимальной температуры

Для ограничения максимальной температуры необходимы следующие строчки (140-143)

#define HEATER_0_MAXTEMP 275 #define HEATER_1_MAXTEMP 275 #define HEATER_2_MAXTEMP 275 #define BED_MAXTEMP 150

Числа стоящие справа, а именно 275 и 150 - это максимальные температуры экструдера и нагревательного стола соответственно.

Когда температура превышает максимальный Temp, ваш нагреватель будет выключен. Эта функция существует для того, чтобы защитить ваш экструдер от случайного перегрева. Если вы используете хотенд с тефлоном внутри, то рекомендуем ограничить температурой 260 градусов.

Ограничение минимальной температуры

Также в прошивке по умолчанию стоит ограничение минимальной температуры экструдера в 170 градусов. Это означает что, если температура экструдера будет ниже 170 градусов, то двигатель экструдера не будет вращаться и пластик не будет подаваться. Защита от проталкивания не прогретого пластика (строчка 230).

#define EXTRUDE_MINTEMP 170

Если хотите отключить данную функцию, то перед строчкой поставьте "//"

Настройка концевых выключателей

Настройка логики работы концевиков

В первую очередь на что нужно обратить внимание - это какие концевики вы используете и какой у них принцип работы. В прошивке необходимо правильно указать логику работы концевиков. Найдите следующие строчки (301-306)

Const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop. const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.

Если у вас механические концевики, то при срабатывание цепь замыкается, напротив каждой строчки соответствующей оси поставьте значения "true". Если вы используете оптические концевики, то при срабатывании цепь размыкается, напротив каждой строчки соответствующей оси поставьте значения "false".

По умолчанию в прошивке напротив каждого концевика стоят значения "true", что соответствуют механическим концевикам.

После настройки работу концевиков можно проверить командой M119 в консоли.
В ответ должен прийти текст:
x_min: open – концевик не сработал;
x_min: TRIGGERED – концевик сработал.

Установка положения "HOME" - дом

В прошивке поддерживаются 3 пары концевиков: для каждой оси X, Y и Z по два концевика min и max. Как правило, ставятся концевики только для минимального положения каждой оси, а максимальное задается в прошивке.

Положение дом (начальное положение), будет находиться в минимальных положениях концевиков и это задается в прошивке: (строчки 337-339)

#define X_HOME_DIR -1 #define Y_HOME_DIR -1 #define Z_HOME_DIR -1

Изменения направления вращения двигателей

При сборке 3D принтера, а именно при подключение шаговых двигателей к плате, возможна такая ситуация: когда вы все настроили и подключили, при нажатии "home" (дом), каретка одной из осей едет в другую сторону (не к концевику), тогда необходимо перевернуть коннектор шагового двигателя на 180 градусов или поменять значения в прошивке:

#define INVERT_X_DIR true // for Mendel set to false, for Orca set to true #define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false #define INVERT_Z_DIR true // for Mendel set to false, for Orca set to true #define INVERT_E0_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false #define INVERT_E1_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false #define INVERT_E2_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false

Например, если у вас каретка оси Y в другую сторону, то необходимо найти строчку

#define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false

и поменять "false" на "true". И так с каждой осью и экструдером.

Установка габаритов перемещения

Чтобы 3D принтер определял рабочую область, необходимо указать ее размеры в прошивке: (строчки 345-350)

#define X_MAX_POS 205 #define X_MIN_POS 0 #define Y_MAX_POS 205 #define Y_MIN_POS 0 #define Z_MAX_POS 200 #define Z_MIN_POS 0

Напротив каждой строчки укажите соответствующие габариты, по умолчанию рабочая область задана 205x205x200 мм

Настройка шагов перемещения по осям

Указание количества шагов шаговых двигателей - одна из главных настроек прошивки (строчка 490):

#define DEFAULT_AXIS_STEPS_PER_UNIT {78.7402,78.7402,200.0*8/3,760*1.1} // default steps per unit for Ultimaker

В скобках через запятую для каждой оси указывается количество шагов, который должен сделать шаговый двигатель, чтобы каретка проехала 1 мм. Откуда взять данные значения? Можно рассчитать или возьмите уже известные.

Расчет осей X и Y (ремни)

По всем осям стоят шаговые двигатели 200 шагов на оборот, 16 микро-шагов на шаг (это устанавливается перемычками на плате).

По осям X и Y стоит приводной ремень GT2 с шагом 2 мм и шкивы с 20 зубьями.

Получается:

(200*16)/(2.0*20)=80

Столько шагов должен сделать шаговый двигатель, чтобы ось X и Y проехала ровно 1 мм.

Если у вас зубчатый шкив Gt2 с шагом 2 мм и с количеством зубьев 20, то формула такая:

(200*16)/(2.0*16)=100

Расчет оси Z (ходовой винт)

По оси Z могут стоять:

  • Шпилька М8 с шагом резьбы 1,25 мм, тогда формула: 200*16/1.25=2560
  • Шпилька M5 с шагом резьбы 0.8 мм, тогда формула: 200*16/0.8=4000
  • Трапецеидальный винт диаметром 8 мм с шагом 1 мм и заходностью 1, тогда формула: 200*16/1=3200
  • Трапецеидальный винт диаметром 8 мм с шагом 2 мм и заходностью 1, тогда формула: 200*16/2=1600
  • Трапецеидальный винт диаметром 8 мм с шагом 2 мм и заходностью 4, тогда формула: 200*16/2*4=400

В Pruse i3 Steel используются шпильки М5 , тогда получается число 4000.

Расчет экструдера

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

Открутите сопло и уменьшите ограничение минимальной температуры сопла до 5 градусов:

#define EXTRUDE_MINTEMP 5

Теперь экструдер будет работать при холодном сопле. Не меняя настроек экструдера, нажмите прогнать пластик на 100 мм. Измерьте длину прутка прошедшего через экструдер линейкой или штангенциркулем.

Подбирая настройку экструдера добейтесь точной цифры на разумной длине прутка, например 200 мм. После настройки верните ограничения минимальной температуры:

#define EXTRUDE_MINTEMP 170

Ограничение максимальной скорости перемещения по осям

#define DEFAULT_MAX_FEEDRATE {500, 500, 5, 25} // (mm/sec)

По умолчанию стоят скорости 500,500,5, 25 мм/c на оси X,Y,Z и экструдер соответственно. Рекомендуем понизить скорость с 500 до 200.

Настройка ускорения перемещений по осям

Еще одной из важных настроек является задание ускорений для различных осей, так как из-за некорректной настройки этого момента часто бывают проблемы при печати, а именно смещение слоев по причине пропуска шагов двигателя. Если поставить слишком большие ускорения, то будут пропуски. По умолчанию в прошивке стоят следующие значения:

#define DEFAULT_MAX_ACCELERATION {9000,9000,100,10000} // X, Y, Z, E maximum start speed for accelerated moves. E default values are good for Skeinforge 40+, for older versions raise them a lot. #define DEFAULT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for printing moves #define DEFAULT_RETRACT_ACCELERATION 3000 // X, Y, Z and E max acceleration in mm/s^2 for retracts

Для осей X и Y стоят ускорения 9000 мм/c^2 - это очень много.

Для первичной настройки установите не более 1000 и для DEFAULT_ACCELERATION поставьте 1500, вместо 3000.

Активация дисплея

Последние, что остается сделать - это активировать нужный вам дисплей. Один из самых популярных дисплеев, это . Найдите и раскомментируйте следующие строчки:

#define ULTRA_LCD #define SDSUPPORT #define ULTIPANEL #define REPRAP_DISCOUNT_SMART_CONTROLLER

Перед этими строчками, не должны стоять "//". Должно получиться следующее:


Заливка прошивки

После всех основных изменений прошивки, можно ее заливать. В программе Arduino IDE зайдите во вкладку "Инструменты" -> "Плата" и выберите "Arduino/Genuino Mega or Mega 2560"


И там же нужно выставить верный COM порт вашего 3D принтера. Для заливки прошивки нажимаем на круг со стрелкой.


Прогресс заливки прошивки отображается индикатором, а после успешного завершения на экране появятся подтверждающие сообщение.

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

Как я писал ранее, в качестве внутреннего ПО был выбран проект Marlin . Рассмотрим все необходимые действия для получения работоспособной прошивки для описанной выше конфигурации.

СРЕДА РАЗРАБОТКИ

Первым делом необходимо установить среду разработки для Arduino . Здесь, я думаю, трудностей возникнуть не должно… Сразу хочу заметить, что более ранние прошивки могут не компилироваться на свежих версиях Arduino. Для прошивки, представленной на этой странице, я пользовался Arduino 1.8.3. Скачать версию можно на сайте Arduino или инсталлятор для Windows по ссылке .

ИСХОДНИК ПРОШИВКИ

Текущая версия Marlin для работы над прошивкой Marlin-1.1.0-RC8. Для скачивания прошивки в первоисточнике перейдите по ссылке .

Следующим шагом распаковываем скачанную версию проекта Marlin в удобное для работы место диска. Для более ранних версий в папке проекта можно было заметить наличие папки «ArduinoAddons». В ней расположены дополнительные библиотеки для Arduino без которых наш проект не скомпилируется из-за активированного индикатора! Было достаточно скопировать содержимое папки «ArduinoAddons/Arduino_1.x.x/libraries» в папку с библиотеками установленной оболочки Arduino «Arduino/libraries». Для успешной компиляции требуются библиотеки LiquidCrystal и U8glib.

Для Arduino 1.8.3 и выше библиотеки потребуется установить через «Менеджер библиотек».

ПОДКЛЮЧЕНИЕ КОНТРОЛЛЕРА

На данном этапе можно подключить плату контроллера к USB порту ПК. Дополнительно драйверы на моем ПК устанавливать не пришлось — плата подключилась в систему автоматически. Но в некоторых случаях придется их установить. Процедура стандартная, драйвера находятся в папке «drivers» установленной оболочки Arduino. В результате успешной установки в диспетчере устройств в разделе «Порты (COM и LPT)» должна отобразиться плата контроллера «Arduino Mega 2560 (COM5)». Запоминаем номер порта контроллера в системе — в моем случае это COM5. Теперь все готово для работы с исходниками контроллера.

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

Запускаем оболочку, открываем проект Marlin. Перед правкой кода указываем в настройках с какой платой и контроллером будет работать оболочка на каком порту «висит» плата. Все это требуется указать в разделе «Tools (Инструменты)» оболочки. Выбираем следующие настройки:
плата — «Arduino Mega or Mega 2560»;
процессор — «ATMega2560 (Mega2560)»;
порт — «COM5» (у Вас возможен другой номер порта!).
Для внесения индивидуальных настроек потребуется внести изменения в исходники библиотек.

ВКЛАДКА Configuration.h

Устанавливаем скорость обмена порта #define BAUDRATE 115200

Я установил достаточно большую скорость обмена. Здесь нужно осознавать, что работоспособность на выбранной скорости определяется не только платой контроллера, но и программой управления. Я использую Repetier Host. Она прекрасно справляется с такой скоростью:).

Выбираем плату контроллера #define MOTHERBOARD BOARD_RAMPS_14_EFB
Этой строкой указываем, что будем использовать силовую плату RAMPS 1.4 с одним экструдером, вентилятором и обогреваемым столом. В комментариях тип платы описан следующим образом:
// RAMPS 1.4 (Power outputs: Hotend, Fan, Bed)

Описание плат управляющего контроллера, поддерживаемые прошивкой, находятся во вкладке Boards.h.

Определяем какой экструдер будем использовать: #define EXTRUDERS 1

В случае, если используется блок питания с программным отключением, прошивка поддерживают возможность управлять таким БП. Для этого необходимо описать тип БП. Поскольку в моем случае управление БП не поддерживается, то: #define POWER_SUPPLY 0

Для надежной работы всей системы очень важно знать тип датчиков температуры, установленных в ХОТЭНДе и на нагреваемом столе. При заказе ХОТЭНДа и датчика температуры стола я как-то не обратил внимание на этот момент… В связи с чем пришлось сильно помучаться добиваясь стабильности подачи проволоки. Сразу рекомендую получить исчерпывающую информацию по используемым датчикам до оплаты ХОТЭНДа. Поскольку позже эту информацию скорее всего получить будет сложно (по личному опыту). В итоге и в нагревателе ХОТЭНДа у меня установлен датчик 5 типа, на столе — датчик 11 типа:

// 5: 100K thermistor — ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)

// 11: 100k beta 3950 1% thermistor (4.7k pullup)
#define TEMP_SENSOR_0 5
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 11

Так как корпус принтера является открытым, то различные внешние возбудители (сквозняки и пр.) могут сильно влиять на температуру нагревателей. Для более точного поддержания температуры нагревателей я рекомендую использовать PID регулировку. В этом случае потребуется калибровка нагревателей! Она проходит в автоматическом режиме и опишу этот процесс ниже по тексту статьи. На данном этапе достаточно только включить PID регуляторы хотэнда и стола с коэффициентами регулировки по умолчанию.

#define PIDTEMP

#define PIDTEMPBED

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

#define HEATER_0_MINTEMP 5
#define BED_MINTEMP 5

#define HEATER_0_MAXTEMP 270
#define BED_MAXTEMP 140

Запрещаем холодную экструзию проволоки. При температуре ниже 170 гр. С подача осуществляться не будет:

#define PREVENT_COLD_EXTRUSION
#define EXTRUDE_MINTEMP 170

Запрещаем непрерывную подачу пластика более 200 мм:

#define PREVENT_LENGTHY_EXTRUDE
#define EXTRUDE_MAXLENGTH 200

Включаем температурную защиту нагревателей:

#define THERMAL_PROTECTION_HOTENDS
#define THERMAL_PROTECTION_BED

#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG

Для правильной работы оптических концевиков потребуются подтягивающие резисторы:

#define ENDSTOPPULLUPS

При использовании оптических концевиков инвертируем значение логического сигнала:

#define X_MIN_ENDSTOP_INVERTING false
#define Y_MIN_ENDSTOP_INVERTING false
#define Z_MIN_ENDSTOP_INVERTING false

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

#define ENDSTOP_INTERRUPTS_FEATURE

По концевикам осталось только обозначить направление движения к начальной точке:

#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1

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

#define DISABLE_X false
#define DISABLE_Y false
#define DISABLE_Z false
#define DISABLE_E false

Следующие строки определяют направление вращения приводов для движение в нужном направлении. Напоминаю, что значения приведены для конфигурации Mendel Prusa I3.

#define INVERT_X_DIR true
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false

При использовании экструдера, содержащего редуктор потребуется установить:

#define INVERT_E0_DIR false

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

#define HOMING_FEEDRATE_XY (50*60)
#define HOMING_FEEDRATE_Z (2*60)

Для программного контроля перемещения в рабочем пространстве установим границы перемещения после установки принтером начальной точки:

#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS 185
#define Y_MAX_POS 185
#define Z_MAX_POS 185

Для точного перемещения по осям прошивка должна знать на сколько шагов требуется прокрутить двигатель при перемещении на 1мм:

#define DEFAULT_AXIS_STEPS_PER_UNIT { 2*80, 2*80, 2*4000, 988 } // ДЛЯ 8825 драйверов 1/32 ШАГА

Значение для двигателя экструдера приведено для WADE’S экструдера .

В этой строке прописаны значения осей X, Y, Z, E (экструдера). Все значения, кроме E вполне совпадают с расчетными величинами (по крайней мере у меня). К значению Е вернемся позже. Теорию можно прочесть на форуме RepRap .

#define DEFAULT_MAX_ACCELERATION { 2500, 2500, 250, 4000 } // МАКСИМАЛЬНОЕ УСКОРЕНИЕ

#define DEFAULT_ACCELERATION 500 // УСКОРЕНИЕ ПО УМОЛЧАНИЮ
#define DEFAULT_RETRACT_ACCELERATION 2500 // УСКОРЕНИЕ РЕТРАКТА
#define DEFAULT_TRAVEL_ACCELERATION 500 // УСКОРЕНИЕ ПРИ ПЕРЕМЕЩЕНИИ БЕЗ ПЕЧАТИ

И, пожалуй, последнее, что требуется прописать для запуска платы контроллера — подключение дисплея:

#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

Для перехода на русский язык в меню управления принтером:

#define LCD_LANGUAGE ru

#define DISPLAY_CHARSET_HD44780 CYRILLIC

и SD карты памяти:

#define SDSUPPORT

Основные параметры настроены, можно приступать к калибровке! Но, раз уж мы ковыряем прошивку, сразу доработаем все необходимое для реализации работы в меню контроллера без ПК.

Опишем температуру преднагрева для PLA и ABS пластика:

#define PREHEAT_1_TEMP_HOTEND 180
#define PREHEAT_1_TEMP_BED 80
#define PREHEAT_1_FAN_SPEED 0

#define PREHEAT_2_TEMP_HOTEND 230
#define PREHEAT_2_TEMP_BED 115
#define PREHEAT_2_FAN_SPEED 0

Если интересно знать статистику работы принтера. Для сохранения статистики в EEPROM включим:

#define PRINTCOUNTER

Данная фишка позволит сохранять в энергонезависимой памяти контроллера следующую информацию:

— общее количество запусков на печать;
— общее количество успешных запусков на печать;
— общее количество неудачных запусков на печать;
— общее время печати.

Информацию можно получить из принтера по команде M78.

#define THERMAL_PROTECTION_HOTENDS // ВКЛЮЧИТЬ ЗАЩИТУ ДЛЯ ВСЕХ ХОТЭНДОВ
#define THERMAL_PROTECTION_BED // ВКЛЮЧИТЬ ЗАЩИТУ ДЛЯ СТОЛА

Режимы требуется настраивать индивидуально для каждой модели принтеров. Описание параметров приведу в части статьи, описывающей вкладку Configuration_adv.h.

Если с настройками по умолчанию энкодера работать неудобно (слишком быстро перепрыгивает между разделами меню или не устраивает направление вращения), то следующие разделы помогут тонко отстроить работу энкодера:

// ЧИСЛО ИМПУЛЬСОВ ЭНКОДЕРА НА ОДИН ШАГ. ДЛЯ ЭКОДЕРОВ С ВЫСОКИМ РАЗРЕШЕНИЕМ
// ТРЕБУЕТСЯ УВЕЛИЧИТЬ ЗНАЧЕНИЕ

#define ENCODER_PULSES_PER_STEP 3

// КОЛИЧЕСТВО ШАГОВ ЭНКОДЕРА ДЛЯ ПЕРЕХОДА МЕЖДУ ПУНКТАМИ МЕНЮ
#define ENCODER_STEPS_PER_MENU_ITEM 2

// ИЗМЕНЕНИЕ НАПРАВЛЕНИЯ ВРАЩЕНИЯ

#define REVERSE_ENCODER_DIRECTION

ВКЛАДКА Configuration_adv.h

Прошивка поддерживает большое количество дополнительных настроек, очень помогающих в работе. Хотелось бы сразу описать те, которые я активно использую. Для перехода к расширенным настройкам открываем вкладку Configuration_adv.h.

Настройки режимов защиты по температуре:

#define THERMAL_PROTECTION_PERIOD 90 // СЕКУНДЫ
#define THERMAL_PROTECTION_HYSTERESIS 15 // ГРАДУСЫ ЦЕЛЬСИЯ

#define WATCH_TEMP_PERIOD 16 // СЕКУНДЫ
#define WATCH_TEMP_INCREASE 4 // ГРАДУСЫ ЦЕЛЬСИЯ

После включения параметра THERMAL_PROTECTION_HOTENDS при нагреве хотэнда по командам M140 или M190 принтер будет отслеживать прирост температуры! Если за период времени WATCH_TEMP_PERIOD температура не увеличивается на WATCH_TEMP_INCREASE ГРАДУСОВ, то принтер остановится и потребуется полная перезагрузка.

Для нагревателя стола тот же алгоритм защиты и переменные при условии включения THERMAL_PROTECTION_BED:

#define THERMAL_PROTECTION_BED_PERIOD 120 // СЕКУНДЫ
#define THERMAL_PROTECTION_BED_HYSTERESIS 20 // ГРАДУСЫ ЦЕЛЬСИЯ

#define WATCH_BED_TEMP_PERIOD 240 // СЕКУНДЫ
#define WATCH_BED_TEMP_INCREASE 2 // ГРАДУСЫ ЦЕЛЬСИЯ

Если для отвода тепла от платы контроллера используется вентилятор, то разумно использовать его включение программно и подключить через дополнительную недорогую плату . В прошивке при этом требуется:

1. Определить пин контроллера, задействованный для управления вентилятором охлаждения:

#define CONTROLLERFAN_PIN 6

2. Установить время, которое будет вращаться вентилятор после остановки двигателей:
#define CONTROLLERFAN_SECS 90

3. Скорость вращения вентилятора:
#define CONTROLLERFAN_SPEED 255

Очень интересная настройка:

#define FAN_KICKSTART_TIME 50

позволяет запускать вентилятор обдува фактически на любой рабочей скорости. Для этого на установленное в настройке время в миллисекундах задается максимальная стартовая скорость. После запуска установится рабочая скорость.

Для более детального управления вентилятором обдува радиатора задаем пин, скорость вращения и температура включения:

#define E0_AUTO_FAN_PIN 11
#define EXTRUDER_AUTO_FAN_TEMPERATURE 100 // ТЕМПЕРАТУРА ВКЛЮЧЕНИЯ
#define EXTRUDER_AUTO_FAN_SPEED 255 // СКОРОСТЬ ВРАЩЕНИЯ

В предыдущих статьях я упоминал, что драйвер шагового двигателя оси Z при параллельном подключении двух двигателей, существенно перегревается. Прошивка позволяет подключить второй двигатель на драйвер неиспользуемого двигателя экструдера:

#define Z_DUAL_STEPPER_DRIVERS

Пожалуй, это все самые необходимые настройки вкладки.

ВКЛАДКА Language_RU.h

После перехода на русский язык мне не понравился перевод параметров. Я сделал перевод под себя. Для этого во вкладке Language_RU.h изменил константы:

#define WELCOME_MSG MACHINE_NAME » ГОТОВ.»
#define MSG_SD_INSERTED «КАРТА УСТАНОВЛЕНА»
#define MSG_SD_REMOVED «КАРТА ИЗВЛЕЧЕНА»
#define MSG_MAIN «МЕНЮ»
#define MSG_LCD_ENDSTOPS «КОНЦЕВИК»
#define MSG_AUTOSTART «АВТОСТАРТ»
#define MSG_DISABLE_STEPPERS «ВЫКЛ. ДВИГАТЕЛИ»
#define MSG_AUTO_HOME «ПАРКОВКА»
#define MSG_LEVEL_BED_HOMING «НУЛЕВОЕ ПОЛОЖ»
#define MSG_LEVEL_BED_WAITING «НАЖМИТЕ НАЧАТЬ»
#define MSG_LEVEL_BED_NEXT_POINT «СЛЕДУЮЩАЯ ТОЧКА»
#define MSG_LEVEL_BED_DONE «УРОВЕНЬ!»
#define MSG_LEVEL_BED_CANCEL «ОТМЕНИТЬ»
#define MSG_SET_HOME_OFFSETS «ЗАПОМНИТЬ ПАРКОВКУ»
#define MSG_HOME_OFFSETS_APPLIED «КОРРЕКЦИИ ПРИМЕН»
#define MSG_SET_ORIGIN «ЗАПОМНИТЬ НОЛЬ»
#define MSG_PREHEAT_1 «ПРЕДНАГРЕВ PLA»
#define MSG_PREHEAT_1_N «ГРЕТЬ ФОРСУНКУ «
#define MSG_PREHEAT_1_ALL «ГРЕТЬ ВСЕ»
#define MSG_PREHEAT_1_BEDONLY «ГРЕТЬ СТОЛ»
#define MSG_PREHEAT_1_SETTINGS «НАСТРОЙКИ PLA»
#define MSG_PREHEAT_2 «ПРЕДНАГРЕВ ABS»
#define MSG_PREHEAT_2_N «ГРЕТЬ ФОРСУНКУ «
#define MSG_PREHEAT_2_ALL «ГРЕТЬ ВСЕ»
#define MSG_PREHEAT_2_BEDONLY «ГРЕТЬ СТОЛ»
#define MSG_PREHEAT_2_SETTINGS «НАСТРОЙКИ ABS»
#define MSG_COOLDOWN «ОХЛАЖДЕНИЕ»
#define MSG_SWITCH_PS_ON «ВКЛЮЧИТЬ ПИТАНИЕ»
#define MSG_SWITCH_PS_OFF «ОТКЛЮЧИТЬ ПИТАНИЕ»
#define MSG_EXTRUDE «ЭКСТРУЗИЯ»
#define MSG_RETRACT «ВТЯГИВАНИЕ»
#define MSG_MOVE_AXIS «ДВИЖЕНИЕ ПО ОСЯМ»
#define MSG_LEVEL_BED «КАЛИБРОВАТЬ СТОЛ»
#define MSG_MOVE_X «ДВИЖЕНИЕ ПО X»
#define MSG_MOVE_Y «ДВИЖЕНИЕ ПО Y»
#define MSG_MOVE_Z «ДВИЖЕНИЕ ПО Z»
#define MSG_MOVE_E «ЭКСТРУДЕР»
#define MSG_MOVE_01MM «ДВИЖЕНИЕ XYZ 0.1мм»
#define MSG_MOVE_1MM «ДВИЖЕНИЕ XYZ 1мм»
#define MSG_MOVE_10MM «ДВИЖЕНИЕ XY 10мм»
#define MSG_SPEED «СКОРОСТЬ»
#define MSG_BED_Z «Z СТОЛА»
#define MSG_NOZZLE LCD_STR_THERMOMETER » СОПЛО»
#define MSG_BED LCD_STR_THERMOMETER » СТОЛ»
#define MSG_FAN_SPEED «КУЛЕР»
#define MSG_FLOW «ПОТОК»
#define MSG_CONTROL «НАСТРОЙКИ»
#define MSG_MIN LCD_STR_THERMOMETER » МИНИМУМ»
#define MSG_MAX LCD_STR_THERMOMETER » МАКСИМУМ»
#define MSG_FACTOR LCD_STR_THERMOMETER » ФАКТОР»
#define MSG_AUTOTEMP «АВТОТЕМПЕРАТУРА»
#define MSG_ON «ВКЛ. «
#define MSG_OFF «ОТКЛ. «
#define MSG_PID_P «PID-P»
#define MSG_PID_I «PID-I»
#define MSG_PID_D «PID-D»
#define MSG_PID_C «PID-C»
#define MSG_ACC «Acc»
#define MSG_VX_JERK «Vx-РЫВОК»
#define MSG_VY_JERK «Vy-РЫВОК»
#define MSG_VZ_JERK «Vz-РЫВОК»
#define MSG_VE_JERK «Ve-РЫВОК»
#define MSG_VMAX «Vmax «
#define MSG_VMIN «Vmin»
#define MSG_VTRAV_MIN «VПутеш. min»
#define MSG_AMAX «Amax»
#define MSG_A_RETRACT «A-ВТЯГИВАНИЕ»
#define MSG_A_TRAVEL «A-ПУТЕШ.»
#define MSG_XSTEPS «X шаг/мм»
#define MSG_YSTEPS «Y шаг/мм»
#define MSG_ZSTEPS «Z шаг/мм»
#define MSG_ESTEPS «E шаг/мм»
#define MSG_TEMPERATURE «ТЕМПЕРАТУРА»
#define MSG_MOTION «МЕХАНИКА»
#define MSG_VOLUMETRIC «ПРУТОК»
#define MSG_VOLUMETRIC_ENABLED «E в mm3»
#define MSG_FILAMENT_DIAM «ДИАМЕТР ПРУТКА»
#define MSG_CONTRAST «КОНТРАСТ LCD»
#define MSG_STORE_EPROM «СОХРАНИТЬ В EEPROM»
#define MSG_LOAD_EPROM «СЧИТАТЬ ИЗ EEPROM»
#define MSG_RESTORE_FAILSAFE «СБРОС EEPROM»
#define MSG_REFRESH «ОБНОВИТЬ»
#define MSG_WATCH «ОБЗОР»
#define MSG_PREPARE «ДЕЙСТВИЯ»
#define MSG_TUNE «НАСТРОЙКИ»
#define MSG_PAUSE_PRINT «ПАУЗА ПЕЧАТИ»
#define MSG_RESUME_PRINT «ПРОДОЛЖИТЬ ПЕЧАТЬ»
#define MSG_STOP_PRINT «ОСТАНОВИТЬ ПЕЧАТЬ»
#define MSG_CARD_MENU «ОБЗОР КАРТЫ»
#define MSG_NO_CARD «НЕТ КАРТЫ»
#define MSG_DWELL «СОН…»
#define MSG_USERWAIT «ОЖИДАНИЕ»
#define MSG_RESUMING «ВОЗОБНОВЛЕНИЕ…»
#define MSG_PRINT_ABORTED «ОТМЕНА ПЕЧАТИ»
#define MSG_NO_MOVE «НЕТ ДВИЖЕНИЯ.»
#define MSG_KILLED «УБИТО.»
#define MSG_STOPPED «ОСТАНОВЛЕНО.»
#define MSG_CONTROL_RETRACT «ВТЯГИВАНИЕ,мм»
#define MSG_CONTROL_RETRACT_SWAP «ВТЯГ. СМЕНЫ,мм»
#define MSG_CONTROL_RETRACTF «ВТЯГИВАНИЕ V»
#define MSG_CONTROL_RETRACT_ZLIFT «ВТЯГ. ПРЫЖКА,мм»
#define MSG_CONTROL_RETRACT_RECOVER «ВОЗВРАТ +мм»
#define MSG_CONTROL_RETRACT_RECOVER_SWAP «ВОЗВРАТ СМЕНЫ +мм»
#define MSG_CONTROL_RETRACT_RECOVERF «ВОЗВРАТ V»
#define MSG_AUTORETRACT «АВТО ВТЯГИВАНИЕ»
#define MSG_FILAMENTCHANGE «СМЕНА ПРУТКА»
#define MSG_INIT_SDCARD «ИНИЦ. КАРТУ»
#define MSG_CNG_SDCARD «СМЕНИТЬ КАРТУ»
#define MSG_ZPROBE_OUT «Z ДАТЧИК ВНЕ СТОЛА»
#define MSG_HOME «ПАРКУЙ X/Y ПЕРЕД Z»
#define MSG_FIRST «ПЕРВЫЙ»
#define MSG_ZPROBE_ZOFFSET «СМЕЩЕНИЕ Z»
#define MSG_BABYSTEP_X «МИКРОШАГ X»
#define MSG_BABYSTEP_Y «МИКРОШАГ Y»
#define MSG_BABYSTEP_Z «МИКРОШАГ Z»
#define MSG_ENDSTOP_ABORT «СРАБОТАЛ КОНЦЕВИК»
#define MSG_HEATING_FAILED_LCD «РАЗОГРЕВ НЕ УДАЛСЯ»
#define MSG_ERR_REDUNDANT_TEMP «ОШИБКА:СЛИШКОМ ГОРЯЧО»
#define MSG_THERMAL_RUNAWAY «ТЕПЛО УБЕГАНИЯ!»
#define MSG_ERR_MAXTEMP «ОШИБКА: Т макс.»
#define MSG_ERR_MINTEMP «ОШИБКА: Т мин.»
#define MSG_ERR_MAXTEMP_BED «ОШИБКА:Т макс.стол»
#define MSG_ERR_MINTEMP_BED «ОШИБКА:Т мин.стол»
#define MSG_HEATING «ГРЕЮ ФОРСУНКУ…»
#define MSG_HEATING_COMPLETE «НАГРЕВ ВЫПОЛНЕН»
#define MSG_BED_HEATING «ГРЕЮ СТОЛ…»
#define MSG_BED_DONE «СТОЛ РАЗОГРЕТ»
#define MSG_DELTA_CALIBRATE «КАЛИБРОВКА DELTA»
#define MSG_DELTA_CALIBRATE_X «КАЛИБРОВАТЬ X»
#define MSG_DELTA_CALIBRATE_Y «КАЛИБРОВАТЬ Y»
#define MSG_DELTA_CALIBRATE_Z «КАЛИБРОВАТЬ Z»
#define MSG_DELTA_CALIBRATE_CENTER «КАЛИБРОВАТЬ ЦЕНТР»

ОТЛАЖЕННАЯ ПРОШИВКА

Тем, кто собрал таки свою Прушу, выкладываю свою версию прошивки. Прошивка полностью отлажена и позволит сразу запустить принтеры и .

УПРАВЛЯЮЩАЯ ПРОГРАММА

Этап правки исходников можно считать завершенным. Если плата контроллера еще не подключена к порту, подключаем и жмем «Файл/Вгрузить»! После загрузки прошивки принтер готов к работе… Через меню интерфейсной платы доступно управление движением каретки по всем осям с разными шагами, включение/выключение нагревателей ХОТЭНДа и стола, печать с карты памяти и многие другие удобные фишки без использования ПК. Но для завершения калибровки принтера не достаточно функциональности меню и нам потребуется программная оболочка. Из тех, что я попробовал, мне больше подошла программа Repetier Host. Она обладает удобным интерфейсом, хорошим функционалом и что не менее важно вместе с ней мы получаем слайсеры в комплекте. Скачивание доступно на официальном сайте Repetier Host .
Приступаем к работе в программной оболочке. Вид окна программы представлен на рисунке ниже.

После запуска программы необходимо настроить параметры соединения с принтером. Выполняем задачу через меню «Конфигурация/Настройки принтера» или жмем соответствующую иконку.


На вкладке «Соединение» прописываем тип соединения — Serial Connection, номер порта — COM5 (как пример для моей системы), и скорость обмена, выбранную на этапе компиляции прошивки — 256000 (как пример для моей системы).


На вкладке «Принтер» настройки скоростей можно оставить по умолчанию. «Контроль температур панели и экструдера» и «Printer has SD card» включаем обязательно! На этой вкладке доступно поменять направление вращения осей принтера (на случай если в прошивке этот параметр указан неверно).


На вкладке «ЭКСТРУДЕР» потребуется установить диметр сопла, номер экструдера и ограничение температуры стола и ХОТЭНДа.


Вкладка «Размеры» содержит настройки размеров печатного поля и тип подключенного принтера — в нашем случае «Classic Printer». У меня установлены размеры стола 180мм х 180мм по причине того, что я использую дополнительный вентилятор для обдува места печати и приспособление для регулировки уровня стола «на лету». В углах эти приспособления мешают друг другу при работе на весь стол.
Если настройки принтера указаны верно, то после нажатия иконки «Подсоединить», контроллер перезагрузится, изображение на кнопке изменит цвет на зеленый. Принтер полностью готов к работе!
Продолжение следует…

3D принтер в DIY народном творчестве набирает популярность, но печать на нем не так проста как кажется. Настройка вашего принтера может занять много времени в котором будет истрачено не мало пластика. Что бы сократить потери и ускорить уровень вхождения опишем типовые проблемы с которыми вы обязательно столкнетесь.

При начале печати пластик не подается

Это одна из самых распространенных проблем которая случается даже у оплытных пользователей. Причины, которые вызывают это:

  • В экструдер не подан пластик или он не входит в зацепление шестерни;
  • В конце предыдущей печати экструдер долго стоял горячим и расплавленный пластик вытек из нагреваемой области через сопло. Таким образом там образуется пустота, которая не сразу заполняется при начале печати. Рекомендуем в G-коде задать отключение нагрева экструдера после окончания печати.
  • В некоторых случаях, чтобы избежать ожидания, услуга 3D печати начинается с того, что печатается так называемая «юбка» - кольцо вокруг основной модели, не несущее никакой нагрузки. Пока устройство печатает этот элемент, экструдер хорошо прогревается, а пластик заполняет полный объем сопла. Иногда приходится напечатать не одну, а несколько таких «юбок», в зависимости от состояния материала в сопле. Большинство программ для печати 3D объектов имеют функцию для печати подобных вспомогательных элементов изделия.
  • Сопло очень близко к рабочей поверхности. Нарушена калибровка
  • В случае если сопло разместилось очень близко от рабочей поверхности, есть вероятность, что для выхода горячего материала просто не осталось достаточно места. В итоге отверстие сопла, подающее пластик, оказывается заблокированным. Одним из признаков того, что неправильно выставлено расстояние, является то, что материал не экструдируется при печати 1-2 слоя, но уже к 3-4 все нормализуется. Также этот процесс сопровождается посторонними звуками, обычно щелчками. Проблема быстро решается калибровкой экструдера по оси Z. Произведите регулировку расстояния между соплом принтера и рабочим столом согласно инструкции к вашему устройству.

Материал стачивается о шестеренку привода

В большинстве современных принтеров для перемещения филамента используется особое устройство с шестеренкой. Украинский 3D принтер не является в этом случае исключением. Шестеренка входит в зацепление своими зубцами с филаментом и перемещает нить на столько, на сколько нужно. Если вдруг на столе возле 3Д принтера вы обнаружите пластиковую крошку или заметите, что часть материала куда-то бесследно исчезает, то, вероятнее всего, часть филамента «сгрызла» шестерня. Сделайте попытку продвинуть пластик вручную и позаботьтесь о том, чтобы в настройках принтера были указаны верные параметры скорости печати, настроек экструдера, характеристик ретракта, в зависимости от материала, который используется для печати. Чтобы контролировать процесс печати, а также производить очистку, экструдеры выпускают открытыми, и пользователь может видеть, как происходит печать.

Засорение экструдера


Если все указанные выше симптомы проблем не подходят для Вашего случая, то, скорее всего, Вы имеете дело с засорением экструдера. Произойти это может из-за попадания в сопло различного мелкого мусора или из-за того, что горячий пластик находится внутри сопла слишком длительное время.


Наиболее простой и распространенный способ очистки сопла при засорении – очистка при помощи специальной иглы. Произведите нагрев экструдера до 190 градусов и вставьте иглу в сопло строго вертикально. Иглу вы можете приобрести в нашем магазине.

Второй способ очистки более сложный и связан с разборкой экструдера. Разборку этого устройства выполняют также после нагрева до рабочей температуры. После извлечения сопла попробуйте продавить пластик без него. Если при отсутствии сопла пластик проходит без проблем, значит эта деталь засорена и нужно принять одну из мер. Например, заменить сопло или произвести его механическую или химическую прочистку.

Если пластик задерживается в экструдере даже при снятом сопле, то это означает, что причина неисправности в повреждении термобарьера. В термобарьере расположена трубка из тефлона, имеющая внутренний диаметр 20 мм, благодаря этому элементу достигается максимальный уровень скольжения. Но трубку несложно повредить, особенно если применяется пластик низкого качества или если экструдер работает при критических для него температурах около 230 градусов. При перегреве этой тефлоновой детали ее внутренний диаметр уменьшается и это приводит к затруднениям при проходе пластиковой нити.

Произвести замену тефлоновой трубки можно как отдельно, так и в составе нового термобарьера экструдера.

3D модель не прилипает к платформе. Адгезия с материалом недостаточна

Одним из важных условий качественной 3Д печати является надежное приклеивание первого слоя материала к платформе, которая служит своеобразным фундаментом для всего изделия. Если первый слой не закрепился на площадке, то, увы, дальнейшая печать вряд ли обрадует вас своим результатом. Но способов, которые могут решить эту проблему, как и причин ее возникновения, достаточно много и мы их сейчас рассмотрим.

Печатная платформа нуждается в выравнивании

Платформа, на которой производится печать, всегда должна занимать идеально ровное положение в пространстве и не иметь никаких перекосов. Если перекос существует, то сопло будет располагаться ближе к одному краю платформы чем к другому, что не способствует идеальному качеству работы. Для точной печати необходимо выставить платформу, для чего используются различные приложения. Наиболее простым и распространенным методом калибровки столика можно считать утилиту «Bed leveling wizard» из набора инструментом «Tools».

В инструкции к каждому принтеру обязательно существует раздел, где описывается способ выравнивания платформы.

Увеличенный зазор между платформой и соплом

После того как платформа была выровнена, нужно убедиться в том, что сопло находится на допустимом расстоянии от площадки. Выставьте экструдер на необходимом для качественной печати расстоянии. Опыт показывает, что наиболее эффективно экструдер работает в случае, если первый слой филамента вдавлен в площадку. Для того, чтобы не насести платформе повреждения, используйте для ее защиты скотч голубого цвета. Платформу можно откалибровать, не прибегая к сложным настройкам и специальному программному обеспечению. Для этого просто припаркуйте головку принтера и произведите отключение моторов привода. После этого можно легко перемещать печатающий блок и выбрать оптимальный зазор не составит труда. Если по каким-либо причинам правильно откалибровать платформу не получилось, всегда можно изменить в настройках слайсера (Cura, Repetier Host) количество материала для первого слоя печати.

Слишком быстрая печать первого слоя

При печатании первого слоя модели важно, чтобы он максимально прочно закрепился на площадке – только в этом случае изделие получится качественным. Но при высокой скорости печати первый слой просто не успевает закрепиться, поэтому начинать работу рекомендуют на небольших скоростях. Функция управления скоростью имеется во всех современных программах, предназначенных для управления работой 3Д принтера. Найти эту опцию несложно, как правило, управление скоростью находится в меню Edit Process Settings - First Layer Speed. Установив значение скорости в начале печати в районе 50%, вы обеспечите снижение скорости печати именно для первого слоя модели.

Настройки температуры

Пластик, используемый для трехмерной печати, имеет свойство деформироваться при остывании. Особенно заметно это в случае с материалами ABS. При температуре печати 230 градусов филамент, попадая на площадку, будет остывать достаточно быстро. 3D принтеры, представленные в наши дни на рынке, оснащены специальными вентиляторами, основная задача которых – это охлаждение трехмерной модели. Если этот процесс слишком интенсивен, то изделие может остывать неравномерно и при этом деформироваться. В результате этого часто края модели отлипают от рабочей площадки. Если вы увидели, что изначально плотно прилегающая к столику основа модели начала отлипать по краям от платформы при охлаждении, то это является важным сигналом о том, что охлаждение происходит слишком быстро и его настройки нужно изменить.

В некоторых случаях охлаждающий вентилятор отключают в начале печати, чтобы не переохладить самые важные первые слои. Настройки охлаждения для каждого периода печати можно ввести в меню Edit Process Settings – Cooling. Можно установить такой режим, что при печати первого слоя вентилятор будет отключен, но уже к пятому слою выйдет на свою обычную производительность.

Печать пластиком ABS обычно подразумевает полную остановку вентилятора на протяжении всей печати, поэтому в этом случае в настройках охлаждения выставляют параметр 1-0 %. Иногда на качество печати влияют сквозняки в помещении – в этом случае позаботьтесь про защиту рабочей зоны.

Если платформа принтера нагрета до определенной температуры, и она поддерживается в процессе печати, то искажений в начале работы не будет. Для пластиков PLA лучшей температурой являются 60-70 градусов, для материала ABS – до 100-120 градусов. Настройки температурного режима можно ввести в меню Edit Process Settings – Temperature. Чтобы установить режим, нужно выбрать платформу и указать желаемую температуру первого слоя.

Применение различных лент, клея и различных материалов для устройства покрытия платформы

Различные виды пластика имеют разные свойства. Их взаимодействие с поверхностью платформы тоже может быть разным. Если вы собираетесь производить печать прямо на алюминиевой или стеклянной платформе, то перед началом работы нужно убедиться, что она идеально чистая, и обезжирить ее спиртом или другой жидкостью с похожими свойствами. Такой уход за поверхностью улучшит адгезию и обеспечит качественное нанесение первого слоя изделия.

Если обеспечить сцепление не удается, то лучше использовать рафт или брим. Опция «brim», включить которую можно в настройках программы для печати, предназначена для изготовления миниатюрных моделей, площадь основы которых слишком мала, чтобы обеспечить хорошее сцепление с основой. Поэтому, чтобы обеспечить надежный контакт с платформой, принтер сначала печатает круги, схожие с полями шляпы. Включается функция в Additions - Use skirt/brim. Функция «raft» подразумевает перед началом печати самой модели создание специальной подложки из материала.

При 3D печати подается недостаточное количество пластика


Любая программа для управления трехмерной печати имеет настройки, которые определяют количество пластика за единицу времени, подаваемого экструдером при печати. Но из-за отсутствия обратной связи программы с экструдером, принтер не как не оповещает ее о том, сколько на самом деле филамента подается на печать. Различные помехи вызывают задержку подачи, которую называют недоэкструдированием. В этом случае между отдельными слоями модели появляются небольшие зазоры. Наиболее эффективным способом проверки качества печати является изготовление куба с ребром, длина которого составляет минимум 20 мм, и который имеет три контура. Рассмотрите соединения между контурами объекта, и если вы заметили щели, то значит, речь идет именно о недоэкструдировании при печати. Если щелей нет – то причина брака кроется в других неполадках оборудования. Если вы определили недоэкструдирование, то его причины могут быть в следующем.

Диаметр нити материала в слайсере выставлен неправильно

Узнайте, правильно ли программа производит определение толщины нити пластика при работе. Для этого нужно перейти в меню Edit Process Settings – Other. Обратите внимание, что на большинстве катушек филамента производителем нанесер диаметр нити, например 1,75 мм. Установите правильный параметр толщины в настройках, так как значение по умолчанию в разных приложениях могут отличаться, например, в Cura стоит диаметр 3 мм.

Низкий коэффициент экструдирования

Если вы уверены, что толщина пластика выставлена верно, а недоэкструдирование продолжается, то причину брака нужно искать в других настройках. Очень часто виноват заниженный коэффициент экструдирования. Иногда этот параметр называют коэффициентом расхода материала при печати. Изменить этот параметр можно в Edit Process Settings – Extruder. При увеличении показателя с 1.0 до 1.05 при печати используется на 5% больше филамента. Для материала PLA коэффициент расхода устанавливают равным 0,9, а в случае с пластиком ABS нужно использовать значение равное 1.0. После изменения коэффициента снова распечатайте тестовый кубик и посмотрите что изменилось.

Проблемы с механикой

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

Застревание нити филамента

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

Проблема: экструдируется излишне много пластика


Излишек пластика (или переэкструзия) является проблемой, прямо противоположной предыдущей. При неправильных настройках процесса печати, экструдер будет подавать слишком много пластика. Такой повышенный расход в первую очередь сказывается на размерах распечатываемой модели. В первую очередь, при обнаружении такого дефекта печати, нужно в программе проверить коэффициент экструдирования и другие настройки, связанные с количеством подаваемого материала. О настройках этих характеристик экструзии подробно рассказано выше.

Проблема: щели и отверстия в верхнем слое модели


Для экономии материала, подавляющее большинство напечатанных на 3Д принтерах изделий, изготавливают в виде пористого наполнителя с более плотной наружной оболочкой. Обычно внутренне наполнение имеет плотность всего 30%, поэтому очень важно, чтобы каркас изделия был сплошным и плотным. Для того, чтобы увеличить плотность, в настройках программы для печати указывают количество сплошных слоев, размещенных вверху и внизу детали. Распечатав самый обычный тестовый куб, для которого заданы 5 слоев сплошного материала вверху и внизу, вы получите модель, с большим количеством пустот, но при этом жесткую и качественную. Но иногда бывает и так, что верхние, жесткие слои имеют зазоры, щели и поры. Чтобы устранить эти дефекты, необходимо прибегнуть к изменениям некоторых настроек программы для печати.

Верхние слои получаются не сплошными

При возникновении данной проблемы следует внимательно ознакомиться с настройками верхних слоев. Если верхний слой находится над незаполненным пространством, то его целостность часто может нарушаться. Важно учесть, что верхний слой должен полностью прикрывать нежелательные пустоты. Во избежание провисаний и других деформаций при печати стоит делать верхний слой достаточно прочным. А для этого не рекомендуется использовать толщину сплошной части меньше 0,5 мм. Отталкиваясь от этой величины, можно подсчитать количество необходимых слоев.

Поэтому при образовании деформаций нужно увеличить количество сплошных слоев, это поможет избавиться от проблемы. Все необходимые настройки можно отыскать в меню «Редактирование настроек» - «Слой».

Низкий уровень прочности заполнения

Для всех верхних слоев крайне важно наличие прочного фундамента. Заполнение внутренних полостей и выступает опорой для всей фигурки. Таким образом, при недостаточном заполнении можно получить слишком пустую модель. Если в настройках установлено заполнение на 10%, следовательно, 90% фигуры будут пустыми. Для качественной печати последующих сплошных слоев такого заполнения недостаточно. При увеличении количества верхних цельных слоев, нужно увеличивать заполнение модели.

Малое количество подаваемого материала

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

Проблема: появление паутинок


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

Обычно бороться с паутинками помогает функция «Втягивания». При завершении работы на данном участке, весь оставшийся материал «Втягивается» в сопло. После перехода на новый участок, в экструдере происходит повторное продавливание пластика и работа продолжается. Для применения данной функции необходимо зайти в «Редактирование настроек» и выбрать «Втягивание», во вкладке «Экструдер» задать данную опцию для всех используемых приборов.

Необходимо обратить внимание на параметры «Втягивания» и остальные настройки, которые помогут избавиться от нежелательных нитей.

Выбор дистанции

Определение дистанции «Втягивания» крайне важно для выполнения качественной работы. Этот параметр устанавливает, какое количество материала будет «втянуто» обратно. Если дистанция будет недостаточной, есть вероятность протекания сопла и образования паутинок. Рекомендуется использовать дистанцию до 2 мм. Начинать можно с установки в 1 мм. Пронаблюдав результат, при необходимости дистанцию можно увеличить. При работе с мягкими пластиками могут проявляться проблемы с подачей материала после «втягивания».

Установка скорости «втягивания»

Скорость «Втягивания» материала в сопло тоже играет важную роль. На низких скоростях может возникнуть проблема со «стеканием» филамента при перемещении рабочей части прибора. На высоких скоростях может происходить разъединение разогретого пластика, что повлечет за собой неприятные последствия. Рекомендуется устанавливать скорость в пределах 1200-6000 мм/мин. Часто в настройках 3D принтера можно отыскать шаблоны для начальной работы, а в процессе их значения можно будет редактировать и добиваться необходимого результата.

Высокая температура экструдера

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

В случае, когда с настройками «Втягивания» все в порядке, а нити все равно образуются, следует понизить температуру на несколько градусов. Это, скорее всего, повысит качество фигурки. Настроить данный параметр можно в меню «Редактирование настроек» - «Температура». Температуру стоит выбирать для конкретного экструдера на необходимый промежуток работы.

Нити появляются при работе на больших открытых расстояниях

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

Проблема: перегрев при работе принтера


Работы ведутся обычно с пластиком, нагретым в диапазоне 190-240 градусов. При такой температуре он становится пластичным и принимает любую необходимую форму. При снижении температуры материал затвердеет и останется в сформированной форме.

Для качественной печати важно найти оптимальную рабочую температуру пластика, чтобы он легко вытекал из сопла, и своевременно застывал, не теряя формы. Если температура будет выше нужной, форма моделек может деформироваться, как показано на картинке. Есть ряд причин, которые могут привести к данной проблеме.

Скорость охлаждения

Часто причиной перегрева пластика служит низкая скорость его охлаждения. Это проявляется в том, что материал успевает изменить форму во время остывания. Иногда есть необходимость использовать быстрое охлаждение. Если принтер оснащен системой вентиляции, стоит увеличить мощность её работы, что можно сделать в разделе «Редактирование настроек» - «Охлаждение».

Высокая скорость работы принтера

При высокой скорости печати предыдущие слои могут не успевать охладиться и будущий слой ляжет на горячее основание. Это приведет к деформации всех последующих слоев. Особо часто с данной проблемой сталкиваются при печати крупных деталей. Для устранения деформаций в данном случае нужно снизить скорость работы принтера, чтобы все слои успевали охлаждаться.

Задать параметры скорости работы можно в меню «Охлаждение» - «Задать скорость». Там можно установить автоматическое уменьшение скорости при работе с маленькими слоями. Это обеспечит наилучшее охлаждение и высокое качество модели.

Когда ничего не помогает

Если все вышеперечисленные меры не помогли, стоит попробовать работать сразу с несколькими деталями. Для этого можно создать копию фигуры, которую печатаете или задать другую модель для параллельной работы. Работа с двумя моделями обеспечит более качественное охлаждение обоих, что обусловлено увеличением времени охлаждения. Сопло переходит от одной модели к другой, а в этот момент предыдущий слой остывает. Способ несложный, но при этом весьма эффективный.

Проблема: слои могут смещаться и не выравниваться


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

Если при работе произошли какие-то непредусмотренные смещения, аппарат продолжит работать по заданным параметрам. Нижеперечисленные пункты раскроют причины смещения слоев при печати модели. Следует не забывать, что при наличии ошибки исправить её нужно самостоятельно, поскольку прибор сделать этого сам не сможет.

Слишком быстрое передвижение работающей головки

Моторы могут не справляться с заданной скоростью печати. При этом часто возникают характерные щелчки, они сообщают, что привод не доходит до заданного положения. В этом случае может сместиться часть слоев относительно напечатанных ранее. При подозрении данной причинуы, следует снизить скорость вполовину и внимательно проследить за изменениями. Настроить параметры скорости можно во вкладке «Редактировать настройки» - «Другое». Если изменение параметров не принесло результата, следовательно, причина смещения другая.

Механические неполадки

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

Еще одной механической проблемой, которая приводит к смешению слоев, является нарушение фиксации зубчатого ролика. Для устранения данной неполадки достаточно проверить и при необходимости подкрутить винты крепления.

разделение слоев


Работа 3D принтера основана на производстве одного слоя модели в определенный момент. Фигуры выстраиваются за счет наложения большого количества слоев. Крайне необходимо, чтобы все шары модели были надежно скреплены между собой. Если с этим возникают проблемы, то фигурка может начать расслаиваться и ломаться. Причин для данной проблемы может быть несколько, рассмотрим их.

Высота слоя

Диаметр сопла, через которое подается пластик, достаточно мал. Это дает возможность печатать весьма компактные детали. Его размер составляет всего 4 мм., в связи с чем при работе возникают определенные ограничения. Если высота слоя подобрана плохо, слои могут недостаточно прижиматься один к другому - это может привести к расщеплению и нарушению целостности фигурки. Рекомендуется использовать высоту слоя на 20% меньше размера сопла. При появлении расслаивания сразу стоит проверить отношение размеров слоя и сопла.

Печать при низкой температуре

При печати моделей стоит уделять особое внимание температуре пластика. Материал с низкой температурой будет плохо скрепляться с остальными слоями. Если проверив высоту слоя, проблема не была решена, необходимо обратить внимание на температуру пластика. Выставлять её следует в зависимости от типа материала. Так, для ABS идеально подойдет температура в диапазоне 220-235 градусов.

Проблема: прекращение подачи материала и скачивание пластика


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

Повышение температуры экструдера

Подняв рабочую температуру всего на 5 градусов, можно избавиться от причин засорения сопла. Настроить необходимые параметры можно в меню «Редактировать настройки» - «Температура».

Уменьшить скорость работы

Если после повышения температуры ситуация не изменилась, можно попробовать снизить скорость печати. При уменьшении скорости вращения мотора пластик перестанет стачиваться. Рекомендуется снизить скорость вполовину. Сделать это можно в меню «Редактировать настройки» - «Другое» - «Изменение скорости принтера». Если и это не помогло, остается последний способ.

Проверка сопла

Если все предыдущие методы были неэффективны, остается только проверить засоренность сопла. Конструкция экструдера позволяет легко и быстро сделать это.

Проблема: засорение прибора


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

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

Вручную протолкнуть рабочий материал

При возникновении засорения можно попробовать решить проблему локально. Перед началом манипуляций следует прогреть экструдер до рекомендуемой температуры. После этого в меню найти опцию «Контроль помех», применив её, пластик начнет двигаться внутри прибора. Продвинув материал на 10 мм, начнет двигаться привод. После этого нужно еще немного продвинуть пластик вручную. Как правило, данных действий достаточно для устранения неполадки.

Переустановка рабочего материала

Если способ проталкивания филамента вручную не помог, нужно извлечь его из принтера. Для этого следует прогреть экструдер, воспользоваться функцией «Втягивания» и, применив физическую силу, извлечь весь пластик из принтера. Делать все следует аккуратно, чтобы не повредить прибор. Затем нужно удалить поврежденную часть пластика, а целую – вернуть обратно в принтер. Дальше, наблюдая работу экструдера, можно сделать вывод – удалось ли справиться с неполадкой.

Очистка сопла

Если все предыдущие манипуляции не помогли устранить проблему, необходимо прочистить сопло. Легче всего это сделать, используя специальную иглу.

Проблема: принтер неожиданно перестает печатать


Если работа началась без каких-либо особенностей, а во время печати принтер внезапно остановился, может быть несколько причин, которые это спровоцировали.

Закончился материал для работы

Наиболее частая причина внезапной остановки принтера – закончился запас пластика. Как бы банально это не звучало, но иногда даже у опытных пользователей случается эта проблема. Для продолжения работы необходимо проверить принтер и, при необходимости, добавить филамент.

Стачивание пластика о шестеренку

Так как при работе экструдера мотор все время вращается, то возникает угроза стачивания пластика. Эта проблема появляется при слишком высоких скоростях печати или при экструдировании большого количества пластика. Если шестеренка сточит весь филамент, ей не за что будет зацепиться. Для предотвращения данной проблемы следует отрегулировать скорость работы принтера.

Засорение экструдера

Если предыдущие манипуляции не помогли избавиться от проблемы, стоит проверить, не засорился ли экструдер. Это может произойти из-за неоднородного пластика, пыли на катушках и низкой температуры печати. Избавившись от причины, можно наладить работу принтера.

Затрудненное «протягивание» пластиковой нити

Иногда при работе принтера возникают затруднения с «протягиванием» рабочей нити по тефлоновой трубке. Чтобы облегчить работу прибора, следует поместить бобину на заднюю стенку 3D принтера. Для этого нужно будет снять верхнюю акриловую крышку.

Высокая температура мотора

При сильном нагреве принтер может дать сбой и прекратить печать. Часто перегрев происходит в закрытой камере для печати. Для устранения возможности перегрева отдельную камеру необходимо оснастить вентиляторами, которые помогут поддерживать оптимальную температуру при работе прибора. А также, открывая и закрывая двери корпуса, можно вручную снизить нагрев принтера.

Проблема: некачественное заполнение моделей

Надежность фигурки обеспечивается качественным заполнением. Следовательно, если внутри рыхлое и плохое наполнение, то модель будет непрочной. Есть несколько вариантов, которые помогут устранить проблему с некачественным заполнением фигурки.

Коррекция шаблонов

Наиболее частая проблема кроется в неправильном подборе шаблонов заполнения. Следовательно, именно с их коррекции стоит начинать. Настройки данного параметра стоит искать в меню «Шаблоны внутренней заливки». Некоторые шаблоны имеют особо прочную структуру, важно тщательно изучить особенности каждого из них. Для получения прочного заполнения, рекомендуется использовать шаблоны: «Решетки», «Треугольники», «Соты».

Снижение скорости печати

При слишком быстрой печати экструдер может не справляться с заданной работой. При этом наполнение модели будет непрочным и похожим на паутинку. Если шаблоны подобраны удачно, а качество заполнения недостаточное, следует попробовать снизить скорость печати принтера.

Увеличить ширину слоя для печати заполнения

Улучшить характеристики внутреннего заполнения поможет функция «увеличения ширины экструдирования». Она поможет сделать внутренние слои более прочными, таким образом, вся модель станет более надежной. Найти нужные настройки можно в меню «Редактирование параметров» - «Заполнение». Для увеличения толщины внутреннего заполнения вдвое, нужно задать параметр в 200%.

неоднородная поверхность на распечатанной модели


Рабочий процесс принтера построен таким образом, что экструдер периодически останавливается и перемещается. Если все работает правильно, то при перемещениях не будет возникать проблем, однако, при частом включении и выключении случаются неполадки.

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

Ход накатом и редактирование функции «Втягивания»

При частом появлении дефектов на поверхности модели, необходимо тщательно изучить последние распечатки. Нужно определить, в какой момент печати появляются дефекты.

Если проблемы начинаются в самом начале работы, необходимо корректировать «втягивание». В меню выбрать «Редактирование настроек» - «Экструдер» - «Перезагрузка дистанции». Последняя настройка отвечает за расстояние «втягивания» пластика по окончанию работы экструдера.

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

Если проблемы в работе начались по окончанию экструдирования, необходимо обратить внимание на другой параметр, название его – «Движение накатом». Он позволяет выключить печатающий элемент еще до окончания работы с периметром, таким образом, снизить давление внутри сопла.

Избегаем лишнего «втягивания»

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

Настроить нужный параметр можно во вкладке «Продвинутый» - «Контроль движения». Там сконцентрированы все основные настройки, контролирующие движения экструдера. Там же можно подобрать параметры «втягивания». Есть возможность настроить «втягивание» пластика только в период передвижения по открытому пространству.

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

Нестационарное «втягивание»

Некоторые 3D принтеры оснащены одной очень полезной функцией, которая может помочь справиться с возникшей проблемой.

Специальные программы дают возможность «втягивать» пластик прямо во время работы, таким образом, уменьшая риск появления сгустков. Перед включением данной функции следует настроить принтер. Для начала в «Редактировании параметров» следует проверить включена ли функция «Протирание сопла». Это обеспечит возможность очищать рабочее отверстие по окончанию печати на каждом участке фигурки.

Затем нужно включить «Протирание» на дистанции 5 мм. После этого можно акт ивировать «втягивание» во время движения. Этот параметр заблокирует стационарное «втягивание», так как сопло будет очищаться во время противохода. Скорее всего, проделанные манипуляции помогут решить проблему с подтеками.

Старт печати модели

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

Проблема: щели между контуром и внутренним наполнением


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

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

Перекрытие контура недостаточное

Специальные программы имеют функцию регулировки склеивания контура с внутренним наполнением. Они контролируют, сколько именно наполнение будет перекрывать периметр. Указывается данный параметр в процентном соотношении от ширины экструдирования. Например, задав показатель в 30% перекрытие периметра, соответственно, наполнение будет на 30% заходить на часть контура.

Высокая скорость печати

Как правило, наполнение печатается значительно быстрее, чем периметр модели. Если работа будет идти слишком быстро, может нарушаться сцепление с контуром. Если предыдущие методы не устранили проблему, можно попробовать уменьшить скорость печати внутреннего наполнения. Нужные настройки можно найти в меню «Редактирование параметров» - «Другое» - «Управление скоростью печати».

загибы на углах и неровности


Часто при перегреве уголки модели могут начать загибаться. Это происходит из-за того, что пластик не успевает остывать и начинает деформироваться. Для устранения данной неточности в работе достаточно отрегулировать температуру печати и дать достаточно времени для остывания слоев. Быстро решить этот вопрос поможет дополнительный обдув модели.

Также можно печатать несколько деталей параллельно, это увеличит время остывания каждого отдельного слоя.

Проблема: царапины на поверхности


Достоинство печати на 3D принтере – то, что все модели строятся послойно за определенный промежуток времени. Это обусловлено перемещением сопла над всей рабочей поверхностью при соблюдении высокой скорости экструдирования. Часто случается, что сопло оставляет царапины на последнем слое модели. Есть несколько причин, по которым работа может быть нарушена.

Экструдируется большое количество филамента

Столкнувшись с подобной проблемой, первым делом следует проверить количество экструдируемого пластика. Если его больше чем нужно, то слои будут выходить слишком толстыми. В результате сопло при перемещении будет цепляться за поверхность и оставлять царапины. Для устранения возникшего неудобства достаточно откорректировать объем экструдированого пластика.

Подъем по вертикали

Если количество пластика в работе не превышает норму, то проблема может решаться за счет вертикального подъема. Этот параметр отвечает за подъем сопла на определенное расстояние перед началом его передвижения. После перемещения сопла в заданную точку, оно опускается в рабочее положение. При использовании функции подъема сопла, можно избежать царапин на поверхности модели. Необходимые настройки находятся в меню «Редактирование параметров» - «Экструдер». Нужно включить «втягивание» и установить высоту вертикального подъема.

дыры между краями слоев


Особенность 3D печати в том, что предыдущий слой становится фундаментом для следующего. Для получения качественной модели необходимо правильно отрегулировать количество экструдируемого пластика.

При слишком хрупком основании будут появляться щели между слоями. При переходе сопла с крупной детали на более мелкую, необходимо иметь достаточно прочный фундамент. Есть целый ряд причин, которые могут привести к появлению дыр и щелей между слоями.

Недостаточное количество периметров

При появлении щелей при печати можно попробовать добавить периметры, это должно укрепить основание и обеспечить хорошую опору для верхних слоев. Толщина стенок также играет важную роль в укреплении фундамента. Если раньше использовалось только два периметра, то следует увеличить их число до четырех.

Верхние слои не совершенные

Причина появления трещин между слоями может быть связана с тем, что верхние слои недостаточно прочные. Тонкие слои – плохая опора для дальнейшего строения. В таком случае стоит увеличить толщину печатаемых слоев.

Недостаточное заполнение

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

Проблема: выпирающие слои


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

Неравномерная работа экструдера

Как правило, подобные проблемы возникают из-за некачественного пластика. При неоднородности материала могут возникать колебания в диаметре филамента, в связи с этим изменится толщина слоев. Некоторые слои будут толще, другие тоньше и это приведет к дефектам на внешней части модели. Во избежание данной проблемы следует отдавать предпочтение качественному пластику.

Распаковываем его в подготовленную папку.

Теперь скачиваем Arduino IDE для исправления и загрузки прошивки в 3D принтер. Ссылка . Давим на Windows Installer . Скачивается установщик arduino-1.6.5-r2-windows.exe . Запускаем его и устанавливаем среду Arduino IDE .

Переходим в папку с прошивкой и запускаем файл Marlin.ino .

Открывается среда Arduino IDE с прошивкой. Нам нужна вкладка Configuration.h .

В начале мы видим ссылки на калибровку 3D принтера. Пролистываем дальше и читаем: "Это конфигурационный файл с основными настройками. Выберите тип контроллера, тип температурного датчика, откалибруйте перемещения по осям и сконфигурируйте концевые выключатели ."

Начнём с выбора контроллера (MOTHERBOARD). Список контроллеров находится во вкладке boards.h . Давим на треугольник в правом верхнем углу и выбираем boards.h .

Теперь посмотрим на установленную электронику. Вот самые распространённые типы плат :

Melzi

Sanguinololu

RAMPS 1.4

У меня стоит RAMPS 1.4 .

Следующим выбираем датчик температуры - термистор , для хотэнда и стола. Видим большой список "//// Temperature sensor settings:". У меня стоит хотэнд E3D-v5 и китайский термистор на столе. Для E3D-v5 я выбираю "// 5 is 100K thermistor - ATC Semitec 104GT-2", для стола "// 1 is 100k thermistor - best choice for EPCOS 100k". Если тип термистора неизвестен можно выбрать 1, а если температура не понравится можно выбирать любой и тестировать. Меняю.

100K thermistor - ATC Semitec 104GT-2

Обычный китайский термистор 100К

У Ultimaker Original в хотэнде стоит термопара . При подключении термопары важно соблюдать полярность. Тип сенсора "-1".

Если в хотэнде используются фторопластовые части, то температуру следует ограничивать, во избежания повреждения хотэнда. Максимальная рабочая температура фторопласта 260 градусов. Если хотэнд цельнометаллический, то можно ставить 320 градусов (если нужно).

Ограничение максимальной температуры хотэнда "#define HEATER_0_MAXTEMP 275".

Минимальная температура ограничивается для механической защиты хотэнда от выдавливания холодного пластика.

Ограничение минимальной температуры хотэнда "#define EXTRUDE_MINTEMP 170".

Настройка концевых выключателей

Если сработал концевик, то мотор не должен дальше двигать каретку. Концевики нужны для ограничения перемещения кареток и инициализации начальной точки HOME . При сработанном концевике каретка может двигаться только от него.

Нам нужно узнать где они расположены. Как это узнать? Начало координат находится в ближнем левом углу на поверхности стола, если сопло вывести в эту точку, то сработали бы концевики MIN , если в правую дальнюю верхнюю - сработают MAX . У меня в положении HOME находятся три концевых выключателя MAX , поэтому мои установки

// Sets direction of endstops when homing; 1=MAX, -1=MIN
#define X_HOME_DIR 1
#define Y_HOME_DIR 1
#define Z_HOME_DIR 1

Команда M119 (например в ) показывает состояние концевых выключателей. У меня концевые выключатели стоят только в позиции HOME на MAX .

Так должно быть:

В положении HOME

В положении отличном от HOME по всем осям

Если у Вас не получилось как у меня, то состояние концевых выключателей по выбранной координате нужно инвертировать , это можно сделать в прошивке или перепаять провода. З начения false или true. Мне ничего менять не потребовалось.

const bool X_MIN_ENDSTOP_INVERTING = true;

const bool Y_MIN_ENDSTOP_INVERTING = true;

const bool Z_MIN_ENDSTOP_INVERTING = true;

const bool X_MAX_ENDSTOP_INVERTING = true;

const bool Y_MAX_ENDSTOP_INVERTING = true;

const bool Z_MAX_ENDSTOP_INVERTING = true;


Изменение направления вращения шаговых двигателей , значения false или true . Правильные перемещения сопла относительно стола:

  • По оси X - влево "-", вправо "+".

  • По Y - вперёд "+", назад "-".

  • По оси Z - сближение "-", удаление "+".

  • Экструдер. Extrude - выдавливание нити, Reverse (retract) - откат, втягивание нити.

#define INVERT_X_DIR false
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
#define INVERT_E0_DIR true

Установка габаритов перемещения , после инициализации в положении HOME . Здесь мы задаём габариты максимальных перемещений по осям X и Y, а также настройку сопла относительно стола.
Если при касании стола соплом срабатывает концевой выключатель (MIN ), как у Ultimaker Original, то поднастройка сопла относительно стола выполняется перемещением концевого выключателя, а в "#define Z_MAX_POS" записываем значение координаты при максимальном удалении сопла от стола. Координату можно узнать по команде М114 или посмотрев на экран дисплея.
Если концевой выключатель по Z срабатывает при максимальном удалении сопла от стола (MAX ), то нужно найти габарит по Z самостоятельно. Устанавливаем значение "#define Z_MAX_POS" изначально больше нормы, например 250 при габарите 200 мм. Опускаем сопло до касания стола и на дисплее (или по команде M114 ) видим координату больше нуля, теперь вычтем из установленного большого значения полученную координату и получим габарит по Z, который теперь запишем в "#define Z_MAX_POS". По итогам печати первого слоя можно будет подкорректировать это значение.

Можно подкорректировать скорость перемещения в положение HOME . Обычно занижают скорость по оси Z, если стоят кривые шпильки.

#define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0} // set the homing speeds (mm/min)

Переходим к самому важному. Настройка шагов перемещения по осям . Экструдер тоже ось. Мои настройки:

#define DEFAULT_AXIS_STEPS_PER_UNIT {(200*16)/(2.0*20),(200*16)/(2.0*20),200*1 6/1.25,(3200 * 39.0)/(11.0 * 6.75 * 3.45)}

Теперь посмотрим, как я их получил . По всем осям стоят шаговые двигатели 200 шагов на оборот, 16 микрошагов на шаг (устанавливается перемычками на плате), приводной ремень GT2 с шагом 2 мм, 20-ти зубые шкивы, итого получаем формулу (200*16)/(2.0*20). По оси Z стоят шпильки М8 с шагом резьбы 1,25 мм, итого формула 200*16/1.25.

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

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

Шкив

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

Настройка экструдера зависит от коэффициента редукции и диаметра подающей шестерни. Подберём экспериментально, после первой заливки прошивки в 3D принтер. Откручиваем сопло и уменьшаем ограничения минимальной температуры сопла до 5 градусов "#define EXTRUDE_MINTEMP 5". Теперь экструдер будет работать при холодном сопле , что нам и нужно. Пока не меняем настройки экструдера. Для настройки я использую программу . Для начала ставим 50 мм и скорость 100 мм/сек. 50 мм - это длина прутка, проходящего через экструдер. Измеряем длину прутка прошедшего через экструдер линейкой или штангенциркулем.

Подбирая настройку экструдера добиваемся точной цифры на разумной длине прутка, например 300 мм. После настройки вернём ограничения минимальной температуры "#define EXTRUDE_MINTEMP 170" .

Следующие цифры - это ограничение максимальной скорости перемещения по осям . На X и Y я ставлю 200 мм.

#define DEFAULT_MAX_FEEDRATE {200, 200, 5, 25}

Настройка ускорения перемещений по осям . При больших ускорениях возможны пропуски шагов. Можно подбирать, гоняя в программе Pronterface по осям на заданной скорости. Вот мои настройки.

#define DEFAULT_MAX_ACCELERATION {1000,1000,100,10000}
#define DEFAULT_ACCELERATION 1500

Осталось активировать LCD дисплей с SD картой . Свой дисплей я нашёл на RepRap.org и идентифицировал как RepRapDiscount Smart Controller .

Раскомментируем следующие строки. То есть убрать двойные слэши. Строка за "//" не используется и является только комментарием. Когда убираем слэши строка принимает участие в компиляции прошивки и задействует её функции.

#define ULTRA_LCD
#define SDSUPPORT
#define ULTIPANEL
#define REPRAP_DISCOUNT_SMART_CONTROLLER

Для подключения LCD к Ultimaker нужно раскомментировать только одну строку

#define ULTIMAKERCONTROLLER

Есть ещё один твик для повышения точности срабатывания некоторых концевых выключателей. При настройке нуля по Z столкнулся с тем, что после каждой инициализации HOME положение сопла над столом немного менялось. Порывшись в прошивке нашёл параметр отвечающий за длину отката при инициализации концевых выключателей. Переходим во вкладку

Рекомендуем почитать

Наверх