Небольшой мануал по конфигурированию прошивки 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.
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 (Энергонезависимую память).
На этом пока все. По возможности буду редактировать статью.