Содержание

Как победить 3D-печать

Или история о том, как интересно провести 2 месяца жизни всего за 13 500 р. :)

Статья об особенностях сборки, прошивки, подключения и запуска 3D-принтера на базе RepRap Mendel в Linux и не только. Но подходы и приёмы, описанные в этой статье, подойдут ко всем типам 3D-принтеров и операционным системам.

В данной статье мы постарались описать весь свой опыт и все решения, найденные в ходе упорной двухмесячной работы по запуску 3D-принтера в Нижегородской Радиотехническом Колледже (НРТК), в помещении хайтек-сообщества CADR.

История, или как это случилось

Вдохновение и апатия

В марте 2014-го года мы в Нижегородском Радиотехническом Колледже решились заказать из Китая для нас на то время совершенную новинку и пик технологий - 3D-принтер. Почему из Китая? Потому, что мы слышали, что там можно заказать принтер за приемлемую сумму денег.

Особую благодарность хотелось бы выразить администрации колледжа Пронину Геннадию Михайловичу и Кормщиковой Ирине Александровне за готовность пойти на достаточно рисковый шаг, и поддержку нашего предложения о заказе и покупке 3D-принтера.

Сразу хочу оговориться, что на то время мы совершенно ничего не представляли о 3D-печати, кроме видео в интернетах. Мы слышали о проекте RepRap, почитали информацию на сайте http://reprap.org/. Мы знали, что существует несколько разновидностей - моделей. И выбор принтера для покупки делали несколько не осознанно. Больше ориентируясь на цену и некую эфемерную единицу "качество печати".

Наш заказ принтера на aliexpress

Заказ мы сделали на сайте AliExpress и принтер пришел достаточно быстро, за две недели. Мы получили сам принтер и бобину с PLA-пластиком.

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

Пришло все в трёх коробках. Все было аккуратно упаковано. И мы приступили к сборке. Сборкой занимались сотрудники вычислительного центра Нижегородского Радиотехнического Колледжа. Виктор Бондаренко сделал аккуратную и качественную сборку каркаса принтера. Электроникой занимались Владимир Слугин и Никита Блынский. И вот, через два дня, у нас был полностью готовый к подключению к компьютеру 3D-принтер.

По поводу особенностей сборки -- сейчас уже сложно что то вспомнить. Но в интернете можно найти много инструкций, и на диске, идущем с принтером, были подробные инструкции по соединению элементов. За что стоит особенно отметить китайцев, в комплекте было всё в нужном количестве! Это было очень приятно и важно для нас - впервые собирающих 3D-принтер!

Сборкой рамы принтера занимаются Виктор Бондаренко и Никита Блынский
Подключением электроники занимались Владимир Слугин и Сергей Сатушев
3D-принтер в Нижегородском радиотехническом колледже в полном сборе

Вообще стоит сказать, что сборка -- достаточно утомительный процесс. Пока вы собираете крупные детали -- всё идет быстро и просто, а вот когда дело доходит до мелочей, крепления шаговых двигателей, размещения блока питания и пр, всё становится не очевидно и утомительно. Лучше всего заниматься сборкой 3D-принтера в команде! Это позволит меньше "париться" и избежать ошибок.

После сборки мы приступили к подключению. Мы в НРТК широко используем свободное ПО, и первое что мы попробовали - подключить принтер к Ubuntu 12.10. После консультаций с Борисом Терещенковым мы уже знали, что для управления принтером нужно использовать Repetier. Но у нас на принтере не было прошивки.

На диске мы нашли архив с прошивкой под названием Melzi-Sprinter. На тот момент мы уже знали, по информации с сайта reprap.org, что на плате принтера используется стандартный микроконтроллер Atmega, но не знали, какая именно. Если посмотреть на чип поближе, то можно рассмотреть маркировку Atmega 1284p. И вся плата построена по принципу плат Arduino, которые у нас в колледже используются на практиках у студентов достаточно давно. Поэтому было понятно, что для прошивки нам потребуется среда разработки Arduino с сайта http://arduino.cc/en/Main/Software .

Мы все скачали, установили, распаковали прошивку, открыли в среде файл .ino. Мы даже вычитали, что нужно установить специальный набор файлов для прошивки конкретно этого микроконтроллера (об этом подробнее в разделе о прошивке). Но вот незадача, при попытке компиляции прошивки среда выдавала ошибку, отсутствия библиотеки time.h.

С Никитой Блынским мы смогли избавиться от этой ошибки, отключив опции работы с SD-картами и некоторые другие функции, для которых нужна была эта отсутствующая библиотека, и получили рабочую прошивку Sprinter-Melzi!

Мы успешно прошили принтер и установили Repetier на компьютер с Ubuntu 12.10. Нажали кнопку "Подключить", и процесс соединения с принтером прошёл успешно. Мы, с замиранием сердца, в ручном режиме поуправляли движением экструдера по осям. И это для нас было равносильно магии! Мы увидели, что принтер "шевелиться" и работает!!!

Рисуем модель в Blender для пробной печати на нашем принтере в НРТК

У нас включался разогрев экструдера, разогрев стола, и управлялась скорость вращения вентилятора. Это было просто замечательно!

Мы решили опробовать принтер в деле. Взяли среду 3D-моделирования Blender и нарисовали незамысловатую модель. По внешнему виду модель напоминала логотип игры Quake :)) Среда Repetier принимает модели в формате stl, а Blender умеет прекрасно в него экспортировать! Чем мы и воспользовались!

Загружаем модель в Repetier и делаем слайсинг с помощью Slic3r

Загрузили модель в формате stl в Repetier, выполнили слайсинг с помощью программы slic3r (она идет в комплекте, вместе с Repetier) и попытались выполнить печать. И вот тут нас ждала первая и большая проблема. Принтер перемещал экструдер в начальные позиции по всем осям, и на этом останавливался. Прогрев экструдера и стола проходил успешно, но процесс печати не начинался. При этом в окне с командами и ответами принтера в Repetier появлялась ошибка "Error: Checksum mismatch, Last Line: 19". И это происходило каждый раз!

Печать детали на нашем принтере - проблема на высоте около 5 см, мажет по детали и срывает ее со стола :(

Было решено попробовать установить софт на Windows и попробовать печать оттуда. Мы получали туже ошибку в Repetier, но печать шла, и мы получили какие-то результаты.

Но здесь у нас обнаружилась вторая проблема: на высоте около 5 сантиметров экструдер начинал мазать по детали, и, в конце-концов, сорвал её со стола!


Мы смогли напечатать ещё несколько небольших деталей, но у нас начала появляться проблема с "забитием" экструдера. В начале печати нить из экструдера выходила хорошо, но после нескольких минут печати нить просто переставала выходить, и экструдер дальше двигался в холостую. Иногда помогало поддавить нить сверху, иногда -- нет. В какой-то момент мы решились разобрать экструдер. Отключили от него Hot-end часть и разобрали его (для этого достаточно открутить гайку сверху). В нем находится ptfe трубка и как нам тогда казалось забивалась именно она. Мы ее прочищали и вроде бы пластик снова шёл. Но проблема из раза в раз возвращалась :(
Чуть подробнее все это описано на Блоге вычислительного центра Нижегородского Радиотехнического Колледжа.

Вот здесь у нас наступил этап "перенасыщения" проблемами с 3D-печатью, навалилась очередная порция работы, и мы отложили принтер в сторону -- почти что год!

Второе дыхание

Вторым дыханием для нашего проекта по запуску 3D-принтера в Нижегородском радиотехническом колледжа стало создание по инициативе Артема Попцова и поддержке администрации колледжа CADR Space - помещения и сообщества людей по аналогии с HackSpace в европе.

У нас появилось новое место, новая идея и новое вдохновение вернуться к старому проекту с принтером. Не может же Нижегородский Hackspace жить без 3D-принтера!

И вот следующие два месяца, с начала февраля 2015 до середины марта 2015, стали самыми продуктивными и богатыми на знания и информацию о 3D-печати для нас! 18 марта 2015 года восхищенно крикнули "ДА, ОНО РАБОТАЕТ", когда у нас детали стали печататься надежно и точно.

Но до этого мы:

  • Выяснили что ошибка "Error: Checksum mismatch, Last Line: 19" возникает только в последних версиях Repetier и для корректной работы RepRap Mendel Pangu в Ubuntu 14.04 вам нужно использовать Repetie-Host 0.90D либо 0.84.
  • Столкнулись с не включающимся подогревом стола и некорректным отображением его температуры в прошивке Marlin. С этой проблемой нам помог справиться пользователь ysb с форума soliforum. Он сделал модификацию Marlin именно для Mendel Pangu!
  • Мы обнаружили что с модифицированной ysb прошивкой Marlin все работает замечательно, но при начале печати происходит перекос осей Z. Один из двигателей перестает вращаться! В ходе личной переписки с ysb выяснилось что такое происходит за за слишком высокой скорости перемещения по оси Z и при последовательном подключении z-двигателей эту проблему можно поправить в коде прошивки ( #define HOMING_FEEDRATE {50*60, 50*60, 2*60, 0} //chahge 3*60 to 2*60 ). Подробнее о всех изменениях в прошивке Marlin для Mendel Pangu в соответствующем разделе.
  • Ну и в конце было практически полное забитие экструдера. Мы даже попытались топить пластик вынув ptfe трубку (что было большой ошибкой!), после чего нам пришлось долго, методом "нагрева самореза" прочищать хот-энд что бы вернуть трубку на место (пластик поднялся и все забил, застыв при этом). Оказалось что нужно тонкой проволкой прочистить само нижнее отверстие диаметром 0,3мм. Засор был в нем. И что бы в дальнейшем засоров не появлялось нужно прочистить экструдер методом "холодной протяжки" описанной по ссылке и в соответствующем разделе. Мы просто вручную пропускали/топили нить через хот-энд, постепенно опуская температуру до минимальной, при которой пластик еще протягивается через хот-энд. С нашим PLA мы начали с 200 С и дошли до 135 С, когда струна уже практически не топилась.
  • Так же в ходе экспериментов мы выяснили что в наших условиях для печати нам лучше всего подходит PLA-пластик:
    • Для него нужна более низкая температура экструдера (в нашем случае 200 С в настройках Repetier).
    • Для него не нужно греть стол, что позволяет нам мазать его клеем-карандашом для лучшего прилипания первого слоя
    • Его нужно обдувать вентилятором во время печати, что избавляет нам от необходимости защиты принтера от сквозняка :)

И в ходе всех этих испытаний нам приходилось сохранять самообладание и хладнокровие, дабы не в пасть в стадию годовалой давности :)

Мы в CADR Space празднуем начало работы 3D-принтера!
Печать первой детали на принтере после долгого простоя
Качество детали на высоте
Печатаем на 3D-принтере визитницу с логотипом Нижегородского Радиотехнического Колледжа

Ну а теперь факты только факты и ничего кроме фактов и все по порядку!

Что нужно сделать в начале

Прежде чем приступать к поиску прошивки для вашего принтера нужно точно узнать что у вас за модель принтера.

Мы покупали принтер на aliexpress и честно считали что мы купили RepRap Mendel. Потом мы стали выяснять что у нас за плата на принтере и как видно на фото, у нас написано на ней Melzi Ardentissimo и мы тут подумали что у нас RepRap Mendel Prusa и честно пытались его прошить как Prusa.

Но за тем нашлась старая прошивка, которую мы взяли с диска, который шел с принтером, и в ней в самом начале файла Configuration.h увидел строчку #define RP3D.COM_PANGU и тут у нас появились мысли, может у нас что то не совсем Prusa. Как оказалось компания RP3D.COM производить RepRap Mendel, но для возможности использовать шаговые двигатели различного типа слегка изменила схему платы управления. И эта модификация называется RepRap Mendel Pangu. Вот для него то и нужна была прошивка.

Как только мы выяснили точную модель нашего принтера и платы все пошло гораздо быстрее и определеннее!

Прошивка

Надеемся вы прочитали пару предыдущих абзацев!

Для прошивки платы управления принтером вам понадобиться скачать вреду разработки Arduino с сайта http://arduino.cc/en/Main/Software
Если вы работаете в Ubuntu 14.04 или старше - доcтаточно установить среду разработки из репзитория командой apt-get install arduino

Подключаем плату к компьютеру USB-кабелем. В Linux у вас должно появиться устройство /dev/ttyUSB0. Появилось ли оно, можно узнать командой ls /dev/ttyUSB*, а лучше всего, после подключения платы к компьютеру ввести команду dmesg и посмотреть информацию от ядра Linux о том, как оно отреагировало на подключения этого устройства.

Теперь запускаем среду arduino, в настройках

Плата управления Arduentissimo Melzi, с микроконтроллером Atmega 1284p. Обратите внимание на пин переключения платы в режим прошивки!
Следующим этапом, вам нужно выяснить, какой тип микропроцессора Atmega используется на ваше плате. Просто посмотрите на самый большой чип на плате и прочитайте на нем маркировку. В нашем случае это была Atmega 1284p. И не забудьте переключить плату в режим прошивки - замкнуть два пина с помощью джемпера в указанном на фотографии месте платы. В различных инструкциях пишут что после прошивки для нормальной работы платы, нужно джемпер снять, но в нашем случае при снятом джемпере плата корректно не запускается, а точнее не определяется системой. Мы его так и оставили на месте с ним все прекрасно работает!

Программное Обеспечение для печати

Программа управления принтером

Слайсер

Пластик(и)

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

Великолепный способ быстро определить тип пластика мне подсказал все тот же пользователь ysb с форума soliforum. Вам нужно просто поджечь кусочек вашего пластика и посмотреть как он горит!

Сжигаем ABS пластик и видим много дыма
Сжигаем PLA и дымы вообще нет, но пластик капает

Мы определили тип пластика и теперь можно выяснять как настраивать слайсер на подготовку gcoda для печати модели именно вашим типом пластика.

Режимы печати с ABS

скачки температуры при попытке выставить температуру экструдера выше 240 С
Для ABS пластика потребуется более высокая температура хот-энде. По рекомендации ysb, я использовал 220 С для экструдера и 90 С для стола.

Для ABS-пластика вам потребуется физически отключить вентилятор!


Так же, по словам ysb нагреватель и сам экструдер в Pangu рассчитан на температуру не выше 240 С, иначе есть шанс расплавить ptfe-трубку внутри. К тому же, по нашим тестам, если попробовать выставить температуру выше 240 С вы будете получать очень большие прыжки темературы, вплоть до 320 С, после чего нагрев экструдера будет выключен по защите в прошивке. Мы испытывали проблему, как мы считали, с недогревом пластика и для тестов, нам пришлось повысить этот барьер в коде прошивки до 380 С ( #define HEATER_0_MAXTEMP 380 ), что бы иметь возможность греть экструдер до 260 С, но это не решило проблем, поэтому не рекомендуем!

Проверяем соответствие данных о температуры со встроенного термистора и данных с термопары подключенной к мультиметру http://www.youtube.com/watch?v=JwLsAoe7yio
Это очень важно. ABS очень не любит сквозняков и перепада температуры. Мы думали, не сделать ли нам корпус вокруг принтера. Но, забегая вперед, оказалось что этого не требуется с pla.

После некоторых экспериментов выяснилось что наш hot-end, а точнее термистор в нем не совсем точно показывает текущую температуру. Для проверки мы воспользовались мультиметром с подключенной термопарой. И у нас получились расхождения примерно в 30 С в меньшую сторону, т.е. если я на компьютере выставлял 220 С, то на мультиметре я видел всего 190.

Тут конечно сложно сказать кому верить, китайскому термистру в hot-end'е или китайской термопаре подключенной к китайскому мультиметру :) Но мне кажется что мультиметр ближе к истине (темболее что мы испытали его на кипящем чайнике с водой и он выдал нам 93...95 градусов С с термопарой помещенной в пакетик и опущенной в кипящую воду :)

Режимы печати с PLA

Prepare-table-for-print.jpg
С PLA пластиком все гораздо проще! Температура ему нужна пониже. Ysb советует 190 С для hot-end'a, но мы помня о предыдущих тестах с мультиметром используем в настройках слайсера 200 С.

А основная прелесть PLA в том, что стол вообще нагревать не нужно!!!

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

"Работа" с экструдером

Прочистка методом "холодной протяжки