Настройка Marlin для принтера Creality3D CR-10S

Небольшой мануал по конфигурированию прошивки 3D принтера Creality3D CR-10S. Писал его для себя, как шпаргалку. Буду рад, если мои инструкции пригодятся кому-то еще.

Для тех, кто не хочет разбираться в тонкостях настройки прошивки, можно воспользоваться уже готовыми пакетами обновления. Инструкция, как это сделать находится здесь – Как просто прошить 3D принтер Creality CR-10S

В принтере Creality 3D CR10S используется прошивка Marlin. Ее отличительная особенность – открытый исходный код. Это позволяет пользователю производить тонкую настройку параметров принтера. Я несколько дней изучал этот вопрос и теперь попытаюсь собрать и систематизировать информацию в этой статье.

План действий:

  • Скачиваем необходимое программное обеспечение и прошивку.
  • Редактируем прошивку под наш принтер.
  • Компилируем hex файл.
  • Подсоединяем принтер к компьютеру и загружаем прошивку.

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

Скачиваем Arduino IDE. Это среда разработки, в которой будем править код прошивки (Ссылка: https://www.arduino.cc/en/Main/Software).

Скачиваем последнюю прошивку Marlin (Ссылка: http://marlinfw.org/meta/download/)

Подготовительные работы:

1. Устанавливаем Arduino IDE. Стандартная процедура, описывать не буду.

2.  Устанавливаем библиотеку U8glib в Arduino IDE.

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

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

3. Заходим в папку прошивки: …\Marlin-1.1.x\Marlin\

Готовые файлы конфигурации для принтера CR-10S находятся здесь: …\Marlin-1.1.x\Marlin\example_configurations\Creality\CR-10S\

Для адаптации прошивки под наш принтер необходимо скопировать файлы из папки …\Marlin-1.1.x\Marlin\example_configurations\Creality\CR-10S\ в папку …\Marlin-1.1.x\Marlin\ с заменой.

4. Открываем файлы прошивки в Arduino IDE.

Файл > Открыть > Marlin-1.1.x\Marlin\Marlin.ino

CR10S_nastr_03.png

5. Переходим на вкладку Configuration.h и начинаем редактирование конфигурации под себя.

Для удобства включите показ номеров строк в редакторе кода: Файл > Настройки > Показать номера строк.

Файл Configuration.h

Строка 136: #define CUSTOM_MACHINE_NAME "XXX"

В кавычках можно написать что угодно. Эта информация будет отображена на мониторе принтера в главном меню.

Строка 350: #define HEATER_0_MAXTEMP 260

Максимальная температура на хотэнде. На стоковой прошивке можно было ставить 260 градусов, а может и больше. Здесь эта цифра ограничена 250 градусами.

Стал разбираться с этой информацией. На официальном сайте ничего не нашел. В других источниках максимальная температура для принтера CR10S указывается в пределах 250-270 градусов.

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

Я выставил 260 градусов, но стараюсь не выходить за пределы 250-и градусов.

Строка 355: #define BED_MAXTEMP 110

Параметр указывает максимальную температуру стола. На официальном сайте такой информации нет. Из других источников можно найти цифру – 90 градусов.

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

Строка 480: #define THERMAL_PROTECTION_HOTENDS

Строка 481: #define THERMAL_PROTECTION_BED

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

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

Строка 608: #define DEFAULT_AXIS_STEPS_PER_UNIT   {80, 80, 400, 89 }

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

Первые три цифры параметра относятся к осям X, Y, Z соответственно. Третий параметр отвечает за подачу пластика.

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

Я изменил только последнюю цифру (подача прутка). Точность перемещения по осям X, Y, Z меня вполне устраивает.

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

Мои значения:

  • #define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 400, 94.74 } – значения после калибровки для стоковой версии принтера.
  • #define DEFAULT_AXIS_STEPS_PER_UNIT   {80, 80, 400, 406.03 } – для Dual Drive Extruder.

Строка 615: #define DEFAULT_MAX_FEEDRATE {250, 250, 5, 25 }

Указывает максимальную скорость перемещения по осям. На официальном сайте указанна скорость в 100 мм/с. Из других источников нашел цифру в 200 мм/с.

В прошивке стоит 300 мм/сек. Я взял среднее значение – 250 м/сек.

Строка 633:  #define DEFAULT_ACCELERATION          500

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

Я сменил колесики на линейные направляющие, чем заметно утяжелил стол. Мне пришлось снизить это значение до 500, чтобы избежать эффект смещения слоев.

Line 634: #define DEFAULT_RETRACT_ACCELERATION  500

Ускорения при ретракте. По умолчанию стоит 1000. Я нашел информацию, что на значении 500 заметно убирается паутина.

Строка 635: #define DEFAULT_TRAVEL_ACCELERATION   500

Ускорение движения на холостые перемещения, т.е. когда принтер не печатает. По умолчанию стоит 1000. Говорят, что на значении 500 заметно снижается шум. Я поставил это значение, но какого-то эффекта не заметил. 

Строка 848: #define INVERT_X_DIR true //(по умолчанию false)

Строка 849: #define INVERT_Y_DIR true //(по умолчанию false)

Строка 850: #define INVERT_Z_DIR true //(по умолчанию true)

Строка 855: #define INVERT_E0_DIR false //(по умолчанию false)

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

//Строка 976: #define AUTO_BED_LEVELING_BILINEAR

Комментируем эту строку. Можно выбрать только один способ калибровки.

Строка 978: #define MESH_BED_LEVELING

Убираю «//» из строки. Это включает параметр #define MESH_BED_LEVELING, который определяет способ калибровки стола 3D принтера.

Функция полезна для тех, кто не пользуется датчиками для калибровки уровня стола. Теперь калибровка будет проходить по 9-и точкам. Для каждой точки, с помощью энкодера («крутилки» возле экрана), можно выставить свой уровень нуля. Это позволит печатать на кривом столе.

Число точек можно увеличить параметрами #define GRID_MAX_POINTS_X и #define GRID_MAX_POINTS_Y.

Строка 1461: #define ENCODER_PULSES_PER_STEP 4

Убираю «//» из строки. Параметр отвечает за чувствительность регулятора (энкодера) управления. Настраивается индивидуально.

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

Строка 1467: #define ENCODER_STEPS_PER_MENU_ITEM 3

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

На этом настройки в файле Configuration.h завершаю.

Настройка Configuration_adv.h

Строка 798:  //#define ARC_SUPPORT

Эту строку комментирую.

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

Настройка PINS_RAMPS.H

Здесь настраиваем контакты на плате.

Строка 74: #define X_MAX_PIN        -1

Строка 282: #define FIL_RUNOUT_PIN    2

Переназначаем правильный контакт на датчик прутка.

Строка 427: #define SD_DETECT_PIN     -1

Строка 439: #define SD_DETECT_PIN     -1

Эти пины не используются на нашей плате.

Компиляция файла прошивки

Вообще прошивку можно загружать сразу из Arduino IDE. Но я компилирую HEX файл и только затем загружаю его в принтер.

  • В Arduini IDE выбираю плату для прошивки: Инструменты > Плата > Arduino/Genuino Mega or Mega 2560
  • В Arduini IDE выбираю процессор: Инструменты > Процессор > ATMega2560
  • В Arduini IDE нажимаю на Скетч > Экспорт бинарного файла

Компиляция файла прошивки

Если все пройдет удачно, то в папке с прошивкой появится новый файл – Marlin.ino.mega.hex

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

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

Перед прошивкой рекомендуют очистить EEPROM (Энергонезависимую память).

На этом пока все. По возможности буду редактировать статью.

Добавить комментарий