Обновление прошивки Marlin - Пошаговое руководство

Примечание: Этот вопрос предназначен как вики-страница для включения всех шагов, необходимых для обновления вашего принтера с помощью самонастраиваемой версии прошивки Marlin. Ответ-это wiki, которая в настоящее время находится в разработке и может быть просмотрена (и отредактирована) всеми пользователями.


У меня есть принтер, и мне нужно обновить прошивку Marlin , чтобы сделать кое-что по своему вкусу, особенно убедиться, что у меня есть TRP, есть восстановление потерь энергии, а затем сделать PID-настройку. Я также не уверен, что загрузчик прошит. Итак, мне нужно пошаговое руководство, чтобы:

  • подготовьте мой принтер к перепрошивке
  • настройте мою прошивку Marlin
  • поставьте мою новую прошивку Marlin на мой принтер

, 👍1


1 ответ


Лучший ответ:

6

Шаг 0: извлечение старых настроек и настройка

Первый шаг-это получить себе печать программное обеспечение, которое имеет консоль или терминал , как в Repetier-хост, Pronterface (в рамках тираж программный пакет), OctoPrint или любой другой инструмент (например, последовательное соединение замазкой также строительство), что позволяет взаимодействовать с принтером, чтобы извлечь параметры у нас уже есть. Как только мы установим программное обеспечение и подключим принтер, отправьте M503 и скопируйте старые настройки в файл для последующего использования.

Далее, нам нужно наше окружение развития. Как правило, вы хотите использовать среде разработки Arduino (но PlatformIO плагин как часть Visual Studio кода может быть использован как для Ардуино на основе микропроцессоров, как 32-разрядных процессоров), но для этого нужно знать, какие борту платы управления принтера выводится из-за некоторых советов родной Иды, которые работают лучше для них.

Шаг 1: Выбор прошивки

По некоторым показателям начала 2020 года около 80% всех отгруженных машин, работающих под управлением Marlin, так или иначенуждаются в цитировании. Наиболее плодовитые версии Marlin на тот момент часто упоминаются как 1.1.9 и 2.x. Поскольку все, что было до 1.1.9, очень устарело и в любом случае нуждается в обновлении, мы рассмотрим только 1.1.9 и 2.x. Версия 2.x была разработана для включения 32-битных микропроцессоров, но совместима с 8-битными микропроцессорными печатными платами. Однако, как показывает скачок версии, 2.x-это в значительной степени полная переписка, так что сделайте свой выбор и перейдите к правильному следующему шагу.

Марлин 1.1.x

Как правило, вы начинаете с того, что хватаете пустой Marlin 1.1.9. Следующий шаг - изменить статические настройки принтера, чтобы они соответствовали вашим в конфигурации.h-лучше всего использовать настройки из того, что мы вытащили ранее через M503 в качестве старта. Кроме того, вы можете искать конфигурацию вашего принтера между известными конфигурационными файлами. Вам нужно, по крайней мере, настроить их:

Для связи и диаметра нити:

#define BAUDRATE 250000

// Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc.
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.0

Выберите правильные температурные таблицы и обязательно включите ту, что стоит за столом, если она у вас есть!

#define TEMP_SENSOR_0 1
[...]
#define TEMP_SENSOR_BED 0

Далее идут два блока, которые устанавливают температурную зону "это нормально" для хотендов и стола соответственно (только хотенд показан здесь).

// Extruder temperature must be close to target for this long before M109 returns success
#define TEMP_RESIDENCY_TIME 10  // (seconds)
#define TEMP_HYSTERESIS 3       // (degC) range of +/- temperatures considered "close" to the target one
#define TEMP_WINDOW     1       // (degC) Window around target to start the residency timer x degC early.

Следующий слот является важной функцией безопасности: Mintemp и Maxtemp. Если вы серьезно, положительно знаете, что ваш hotend может сделать больше, чем 275 °C (что означает, что у вас есть цельнометаллический hotend), НЕ трогайте Maxtemp, но вы можете установить Mintemp в 0 °C, если хотите.

Далее идут настройки PID-тюнинга, с ними нужно работать только в том случае, если вы знаете, что делаете.

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

#define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders
#define THERMAL_PROTECTION_BED     // Enable thermal protection for the heated bed

Если ваш принтер CoreXY или аналогично использует 2 ремня для перемещения вдоль 2 оси, вы смотрите на вкладку Механические настройки и изменяете ее там, в противном случае мы переходим дальше к настройкам Endstop. Включите (удалите ведущий //) max-endstops, если они у вас есть, остальные обычно не нужны на большинстве машин потребительского класса, затем перейдите к настройкам движения. Из нашего M503 мы берем настройки, чтобы заполнить следующее:

#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 4000, 500 }
#define DEFAULT_MAX_FEEDRATE          { 300, 300, 5, 25 }

Если у вас есть зонд, вы просматриваете Параметры Z-зонда и следуете руководству 0scar здесь, в противном случае пропускаете его, пока не найдете следующий фрагмент. Закрепите его так, чтобы он соответствовал вашему столу и зоне движения. Возможно, вам придется установить значения для конечного упора на исходное расстояние стола. Эти смещения, X_MIN_POS и Y_MIN_POS, должны содержать правильные значения для центрирования стола; см. раздел "Как центрировать мои отпечатки на платформе сборки? (Повторная калибровка смещения самонаведения) ".

// Размер печатного стола
#define X_BED_SIZE 200
#define Y_BED_SIZE 200

// Ограничения хода (мм) после самонаведения, соответствующие позициям упора.
#define X_MIN_POS 0 // Значение нуля означает, что начало стола находится в конце
#define Y_MIN_POS 0 // Значение нуля означает, что начало стола находится в конце
#define Z_MIN_POS 0 
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 200

Затем раскомментируйте (удалите ведущую //) следующую строку:

//#define EEPROM_SETTINGS // Enable for M500 and M501 commands

Если вы хотите иметь специальную позицию паузы, раскомментируйте и определите ее в

//#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE)
  // Specify a park position as { X, Y, Z }
  #define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
  #define NOZZLE_PARK_XY_FEEDRATE 100   // X и Y оси скорость подачи в мм/с (также используется для дельта принтеров Z оси)
  #define NOZZLE_PARK_Z_FEEDRATE 5      // Z axis feedrate in mm/s (не используется для дельта-принтеров)
#endif

Мы на финишной прямой, осталось всего несколько вещей в этом файле! Выберите свой язык с помощью строки:

#define LCD_LANGUAGE en

Включите слот SD-карты, раскомментировав

//#define SDSUPPORT

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

Марлин 2.x

Снова возьмите 2.x marlin, либо пустую базу, либо предварительно настроенную версию. Для некоторых стилей принтера (например, Delta) вы должны взять специализированный набор. Затем мы смотрим на наш выход M503 и устанавливаем скорость связи и нашу материнскую плату (или плату, из которой она получена), затем количество экструдеров и диаметр нити филамента:

#define BAUDRATE 250000

#ifndef MOTHERBOARD
  #define MOTHERBOARD BOARD_RAMPS_14_EFB
#endif

#define EXTRUDERS 1

#define DEFAULT_NOMINAL_FILAMENT_DIA 3.0

Далее переходим к тепловым настройкам! Нам нужна правильная таблица датчика температуры для hotend и стола, возможно, мы могли бы снизить MINTEMP до 0. Не трогайте MAXTEMP, если вы не знаете, что делаете, и у вас есть полная металлическая настройка, и вы знаете, что ваша машина может взять больше.

#define TEMP_SENSOR_0 1
[...]
#define TEMP_SENSOR_BED 0

Наш следующий шаг-убедиться, что ГТО включен. Убедитесь, что в этих строках нет ведущих //

#define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders
#define THERMAL_PROTECTION_BED     // Enable thermal protection for the heated bed
#define THERMAL_PROTECTION_CHAMBER // Enable thermal protection for the heated chamber

Если принтер CoreXY или похож, включите стиль в области механические настройки.

Включите (удалите ведущий //) max-endstops, если они у вас есть, остальные обычно не нужны на большинстве машин потребительского класса, затем перейдите к настройкам движения. Из нашего M503 мы берем настройки, чтобы заполнить следующее:

#define DEFAULT_AXIS_STEPS_PER_UNIT   { 80, 80, 4000, 500 }
#define DEFAULT_MAX_FEEDRATE          { 300, 300, 5, 25 }

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

// The size of the print bed
#define X_BED_SIZE 200
#define Y_BED_SIZE 200

// Ограничения хода (мм) после самонаведения, соответствующие позициям упора.
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 200

Переходим к Дополнительным функциям! Давайте включим EEPROM, раскомментировав (удалив //)...

//#define EEPROM_SETTINGS // Постоянное хранилище с M500 и M501

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

#define LCD_LANGUAGE en

//#define SDSUPPORT

Наша последняя остановка при настройке основы-выбор ЖК-дисплея / контроллера. Нам нужно раскомментировать правильный вариант здесь. Если вы не найдете свой, используйте общий.

Шаг 2: Подготовка платы

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

2.1 - Загрузчик

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

Для прошивки загрузчика вам нужно иметь Arduino и несколько кабелей или другой инструмент программирования ISP или AVR. Полные инструкции можно найти здесь Greenonline и здесь Robert Lo Giacco и jpa.

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

2.2 - .hex файл

В этом случае нам не нужно ничего делать на этом этапе. Однако у нас будет другой процесс установки.

Шаг 3: Компиляция и установка прошивки

В зависимости от вашего выбора на предыдущем шаге, вы должны следовать соответствующей ветви здесь:

3.1 - Загрузчик

Если вы установили загрузчик, теперь установка прошивки так же проста, как подключение компьютера к принтеру с помощью прямого подключения и выполнение команды compile & Upload.

3.2 - .hex файл

После подготовки файла .hex вы можете загрузить его с одним из вариантов, показанных здесь Greenonline, Trish или Thomas Weller

Шаг 4: Последние штрихи

Посев

Сразу после установки нашей новой прошивки на принтере нам нужно заполнить наши настройки. Подключитесь к принтеру через любую консоль или терминал (см. Шаг 0) и используйте следующие команды

M502
M500

PID Tune

Затем мы запускаем ПИД-мелодию. Для первого экструдера мы отправляем:

M303 E0 S200 C3

Он будет запускать машину some и возвращать значения с именами Kp, Ki и Kd. Они непосредственно соответствуют P I & D. Сохраните их в EEPROM и сохраните следующим образом:

M301 P##.## I#.## D##.##
M500

,

Это следует обновить, так как 1.1.9 также очень устарел., @towe

@towe вот почему это вики-сайт сообщества. Сделай свое дело!, @Trish