Дополнительные настройки в Marlin
Некоторые настройки включены по умолчанию, и я опущу их описание, кое-какие выкинул из-за крайней редкости (на мой взгляд) использования. Также я не стал описывать настройки отдельных редких драйверов ШД - те, кто покупают такие драйверы, уже точно знают, чего хотят и как их настраивать. Большинство настроек все равно довольно специфичны, но часть из них может пригодиться и рядовому пользователю. Наиболее интересные будут перечислены в конце статьи. Настройки будут обозреваться по порядку их следования в configuration_adv.h. Поехали.
Дополнительные настройки термоконтроля горячего стола:
#define BED_HYSTERESIS 2 //просто выключает подогрев стола, если T>*целевая температура*+BED_HYSTERESIS и включает его, если T<*целевая температура*-BED_HYSTERESIS
#define BED_CHECK_INTERVAL 5000 //мс между проверками температуры в режиме bang-bang
Контроль за работоспособностью нагрева: система ожидает в течение заданного периода времени, когда командой M104 или M109 повышается целевая температура. Если температура не увеличилась в конце этого периода, то целевая температура сбрасывается в 0. Это поведение может быть обнулено с помощью еще одной команды M104/M109. Эта проверка также срабатывает только тогда, когда целевая и текущая температуры различаются хотя бы на параметр WATCH_TEMP_INCREASE, умноженный на два.
#define WATCH_TEMP_PERIOD 40000 //40 секунд для повышения температуры
#define WATCH_TEMP_INCREASE 10 //нагрев хотя бы на 10 градусов за 20 секунд
Это добавляет экспериментальный дополнительный коэффициент к мощности нагрева, пропорциональный скорости экструзии. Если Кс выбран верно, то необходимая мощность для расплавления будет добавлена пропорционально скорости экструзии
#define PID_ADD_EXTRUSION_RATE
#define DEFAULT_Kc (1) //мощность подогрева=Kc*(скорость_экструзии)
Автоматическая температура: целевая температура хотэнда вычисляется исходя из всех строк g-кода в буфере. Максимум буферных шагов в секунду ШД экструдера в буфере называется 'se'
Включается этот режим командой M109 S<мин_температура> B<макс_температура> F<фактор>
Целевая температура устанавливается в значение мин_температура+фактор*se[шагов/сек] и ограничивается в пределах мин_температуры и макс_температуры
Отключается с помощью ввода команды М109 без F. Также, если температура установлена в 'мин_температура', то она не меняется с помощью этой функции
#define AUTOTEMP
#define AUTOTEMP_OLDWEIGHT 0.98
Показ ADC-значений температуры. Команда M105 вместо привычной информации выдаст ADC-значения, прочитанные с датчиков температуры
#define SHOW_TEMP_ADC_VALUES
Предотвращение износа экструдера. Если принтер простаивает, и температура выше, чем MINTEMP, экструдер будет выдавливать некоторое количество филамента с периодом, указанным в параметре SECONDS
#define EXTRUDER_RUNOUT_PREVENT
#define EXTRUDER_RUNOUT_MINTEMP 190
#define EXTRUDER_RUNOUT_SECONDS 30.
#define EXTRUDER_RUNOUT_ESTEPS 14. //мм филамента
#define EXTRUDER_RUNOUT_SPEED 1500. //скорость экструзии
#define EXTRUDER_RUNOUT_EXTRUDE 100
Это поможет откалибровать датчик AD595, в случае, если он неправильно измеряет температуру.
измеряемая температура определяется как 'текущая_температура = (измеренная температура * TEMP_SENSOR_AD595_GAIN) + TEMP_SENSOR_AD595_OFFSET'
#define TEMP_SENSOR_AD595_OFFSET 0.0
#define TEMP_SENSOR_AD595_GAIN 1.0
Эта функция отвечает за контроль над вентилятором охлаждения драйверов ШД. Как подключить доп.вентиляторы читайте здесь. Вентилятор будет включаться тогда, когда хотя бы один из драйверов будет активен и выключаться через установленное время после отключения последнего драйвера.
#define CONTROLLERFAN_PIN -1 // Пин управления вентилятором (-1 для отключения)
#define CONTROLLERFAN_SECS 60 //Сколько секунд будет вращаться вентилятор после отключения последнего драйвера
#define CONTROLLERFAN_SPEED 255 // == полная скорость. Можно поставить меньше, если задействованы выходы с PWM.
При первом старте вентилятора он запускается на полной скорости на некоторое время. Это дает уверенный старт перед установлением пониженного PWM-значения (не работает с программным PWM на Sanguinololu). Примечание: это правило, возможно, действительно только для того вентилятора, который включается по команде M106
#define FAN_KICKSTART_TIME 100 //кол-во мс полной скорости
Вентиляторы охлаждения тепловых барьеров экструдеров. Настройте пины-выходы для автоматического включения/выключения, когда соответствующий экструдер достигает температуры выше/ниже указанной в параметре EXTRUDER_AUTO_FAN_TEMPERATURE. Несколько экструдеров могут быть назначены на один и тот же пин, и вентилятор будет включаться тогда, когда любой из экструдеров достигает указанной температуры. О подключении доп.вентиляторов, опять же, смотрите здесь.
#define EXTRUDER_0_AUTO_FAN_PIN 4 (-1 для отключения)
#define EXTRUDER_1_AUTO_FAN_PIN -1
#define EXTRUDER_2_AUTO_FAN_PIN -1
#define EXTRUDER_3_AUTO_FAN_PIN -1
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
#define EXTRUDER_AUTO_FAN_SPEED 255 // == полная скорость. Можно поставить меньше, если задействованы выходы с PWM.
При включении этой настройки концевые выключатели используются только для парковки
#define ENDSTOPS_ONLY_FOR_HOMING
Включает драйвер ШД оси Z в последний момент. Нужна в случае перегрева соответствующего драйвера ШД.
#define Z_LATE_ENABLE
Обычно используется один драйвер ШД для управления двумя моторами на оси Z. Раскомментируете для использования раздельных драйверов на каждый ШД Z-оси. Такую функцию поддерживают лишь некоторые платы, например, RAMPS, у которой есть поддержка 2 экструдеров (используется второй, обычно неиспользуемый драйвер ШД) Пины управления указаны для RAMPS, в случае другой платы исправьте их на свои. На 5-драйверной плате включение этой функции ограничит вас возможностью использования только одного экструдера
#define Z_DUAL_STEPPER_DRIVERS
То же самое для Y-оси
#define Y_DUAL_STEPPER_DRIVERS
Раскомментируйте, если есть необходимость, чтобы ШД по Y врашались в разные стороны
#define INVERT_Y2_VS_Y_DIR true
Функция поддержки принтеров с двойной Х-кареткой. Подобная конструкция имеет преимущество, т.к. неактивный экструдер может быть запаркован, что предотвратит вытекание горячего пластика из сопла, который загрязняет печать. Также это снижает общий вес каждой Х-каретки, позволяя печатать с более высокими скоростями
#define DUAL_X_CARRIAGE
Конфигурация для второй Х-каретки
Примечание: первая Х-каретка - это та, которая паркуется в концевой выключатель минимального положения, а вторая всегда паркуется в концевой выключатель максимального положения.
#define X2_MIN_POS 80 // устанавливает минимальное расстояние, при котором вторая Х-каретка не задевает запаркованную первую Х-каретку
#define X2_MAX_POS 353 // максимальное расстояние между соплами, когда обе каретки запаркованы
#define X2_HOME_DIR 1 // вторая каретка всегда паркуется в концевой выключатель максимальной позиции
#define X2_HOME_POS X2_MAX_POS // позиция парковки по умолчанию - это максимальная позиция второй каретки
Однако в этом режиме значение EXTRUDER_OFFSET_X для второго экструдера предоставляет программное переопределение для X2_HOME_POS. Это также позволяет выполнить рекалибровку расстояния между концевыми выключателями без модификации прошивки (через команду M218 T1 Xn).
Помните: вы должны установить смещение второго экструдера равным нулю в вашем слайсере.
Пины для драйвера ШД второй Х-каретки (задаются здесь, чтобы не усложнять pins.h)
#define X2_ENABLE_PIN 29
#define X2_STEP_PIN 25
#define X2_DIR_PIN 23
Есть несколько режимов движения для двойной Х-каретки, которые можно выбирать через команду M605 S<режим>
Режим 0: Полный контроль. Слайсер полностью контролирует обе Х-каретки и может достичь оптимальных траекторий, но только если он поддерживает двойные X-каретки. (M605 S0)
Режим 1: режима авто-парковки. Прошивка будет автоматически парковать и снимать с парковки Х-каретки при 'смене инструмента', поэтому отдельная поддержка слайсером не требуется. (M605 S1)
Режим 2: режим дупликации. Прошивка будет копировать все действия первой каретки второй кареткой. Это позволяет печатать 2 одинаковых модели одновременно. (смещение по X и разница температур задается как M 605 S2 [Xnnn] [Ryyy]. Обратите внимание, что параметр R, отвечающий за температуру, задается в относительных величинах. Например, при значении R2 второй объект будет напечатан пластиком, нагретым на 2 градуса выше).
Эта строка определяет режим по умолчанию для двойной Х-каретки, который может быть позже сменен командой М605.
#define DEFAULT_DUAL_X_CARRIAGE_MODE 0
Настройки по умолчанию в режиме авто-парковки
#define TOOLCHANGE_PARK_ZLIFT 0.2 // величина подъема Z при парковке экструдера
#define TOOLCHANGE_UNPARK_ZLIFT 1 // величина подъема Z при снятии с парковки экструдера
Смещение по умолчанию для оси Х в режиме дупликации (обычно устанавливается в половину ширины печатной области)
#define DEFAULT_DUPLICATION_X_OFFSET 100
При парковке каретка каждой из осей активирует концевой выключатель, а затем отъезжает обратно на указанную ниже дистанцию прежде, чем медленно запарковаться снова:
#define X_HOME_RETRACT_MM 5
#define Y_HOME_RETRACT_MM 7
#define Z_HOME_RETRACT_MM 3
#define QUICK_HOME //при активации этого параметра по команде G28 X Y оси одновременно совершат парковку, а не по отдельности.
Отсчет в относительных величинах для осей X, Y, Z, E
#define AXIS_RELATIVE_MODES {false, false, false, false}
По умолчанию драйверы на основе А4988 требуют сигнал высокого уровня для шага. Однако, некоторые мощные драйверы могут требовать сигнал низкого уровня. Инверсия сигналов делается установлением параметра в true:
#define INVERT_X_STEP_PIN false
#define INVERT_Y_STEP_PIN false
#define INVERT_Z_STEP_PIN false
#define INVERT_E_STEP_PIN false
Время, по истечению которого отключаются драйверы ШД в простое. Выставьте 0 для отключения.
#define DEFAULT_STEPPER_DEACTIVE_TIME 60
Подачи для ручных движений с панели (X Y Z E) (для ultipanel)
#ifdef ULTIPANEL
#define MANUAL_FEEDRATE {50*60, 50*60, 4*60, 60} // устанавливает скорость для ручных движений (мм/мин)
Если файл распечатан, то функция отключает все шаговики
#define SD_FINISHED_STEPPERRELEASE true
Возможно, ось Z нужно будет удерживать, поэтому оси можно отключить по отдельности
#define SD_FINISHED_RELEASECOMMAND 'M84 X Y Z E'
Функция для съемки процесса печати
#define CHDK 4 //пин для срабатывания CHDK, чтобы сделать фото. Как этим пользоваться см. здесь.
#define CHDK_DELAY 50 //насколько долго в мс пин будет находиться в логической единице перед переходом в ноль
Показывать полосу прогресса печати на дисплеях HD44780 при печати с SD
#define LCD_PROGRESS_BAR
(только для функции #define LCD_PROGRESS_BAR)
Определяет, сколько времени в мс будет показыватьсяполоса
#define PROGRESS_BAR_BAR_TIME 2000
Определяет, сколько времени в мс будет показываться сообщение статуса
#define PROGRESS_BAR_MSG_TIME 3000
Время (мс) удержания статус-сообщения (0=навсегда)
#define PROGRESS_MSG_EXPIRE 0
Раскомментируйте это для того, чтоюы сообщений показывались в течение времени MSG_TIME, а потом скрывались
#define PROGRESS_MSG_ONCE
Аппаратный 'наблюдатель' перезагрузит контроллер и отключит все выходы, если прошивка зависнет и не сможет выполнять регулировку температуры
#define USE_WATCHDOG
Если у вас случилась перезагрузка 'наблюдателем' в Arduino Mega2560, то устройство будет висеть 'вечно', т.к. перезагрузка 'наблюдателем' оставляет самого 'наблюдателя' включенным. Функция 'WATCHDOG_RESET_MANUAL' обходит это, не используя аппаратную перезагрузку. Однако, ЭТА ФУНКЦИЯ НЕБЕЗОПАСНА и будет работать только в том случае, если прерывания отключены. И код может зависнуть при выполнении прерывания с отключенными прерываниями.
#define WATCHDOG_RESET_MANUAL
Включает опцию остановки печати с SD при срабатывании концевых выключателей, требует включения через меню LCD-экрана при активации в прошивке.
#define ABORT_ON_ENDSTOP_HIT_FEATURE_ENABLED
Babystepping позволяет пользователю двигать осями в небольших пределах независимо от обычного процесса печати. Например, это может быть использовано для смены высоты по Z в реальном времени. Не зависит от концевых выключателей!
#define BABYSTEPPING
#define BABYSTEP_XY //не только по Z, но также и по XY в меню
#define BABYSTEP_INVERT_Z false //true для инверсии движений по Z
#define BABYSTEP_Z_MULTIPLICATOR 2 //более быстрые движения по Z
Адванс-константа экструдера. Или Velocity-режим экструдера. (Extruder advance constant (s2/mm3)) Эта настройка должна помочь избавиться от капель на периметрах детали при печати, может быть полезна для Bowden-экструдеров. Подробнее здесь, здесь, здесь и здесь Вкратце о ее работе: экструдер начинает и прекращает давить пластик несколько раньше, чтобы давление в сопле успевало нарастать и спадать в нужное время. Подобная функция есть в Slic3r и, возможно, других сласерах.
#define ADVANCE
#define EXTRUDER_ADVANCE_K .0 - адванс-константа
#define D_FILAMENT 2.85 - диаметр филамента
#define STEPS_MM_E 836 - кол-во шагов на 1мм филамента(?)
#define EXTRUSION_AREA (0.25 (диаметр сопла) * D_FILAMENT * D_FILAMENT * 3.14159) - площадь экструзии
#define STEPS_PER_CUBIC_MM_E (количество шагов экструдера/площадь экструзии)
И еще несколько интересных строк из configuration.h:
Увеличение частоты ШИМ вентилятора. Убирает назойливый звук, гл увеличивает нагрев мосфета/микроконтроллера
#define FAST_PWM_FAN
Светодиоды статуса температуры, которые показывают температуру сопла и стола. Если температура всех сопел и стола меньше 54°С, то горит синий светодиод, в ином случае - красный. Точность - плюс-минус 1°С. Только для платы Azteeg Х3(?). Кажись, баг в прошивке.
#define TEMP_STAT_LEDS
Использование программного PWM для управления вентилятором, как и для подогревателей. При этом используется очень низкая частота, которая не так раздражает (звуком). С другой стороны, если частота слишком мала, ее нужно увеличить параметром SOFT_PWM_SCALE.
#define FAN_SOFT_PWM
Увеличение этого параметра до 1 удвоит программную частоту ШИМ, которая управляет нагревателями и вентилятором, если включен FAN_SOFT_PWM. Однако, разрешение контроля будет сокращено вдвое для каждого увеличения. Для нулевого масштаба есть 128 эффективных контрольных значений, для 1 - 64 и т.д.
#define SOFT_PWM_SCALE 0
Еще одна функция для съемки процесса печати (активация командой M240) через эмуляцию Canon RC-1 Remote. Подробнее здесь #define PHOTOGRAPH_PIN 23
Поддержка кондитерского экструдера BariCUDA #define BARICUDA
Наиболее полезные, на мой взгляд, функции:
С помощью этих функций (и других, к ним относящихся) можно организовать полностью автоматическое охлаждение периферии - контроллера, тепловых барьеров и шаговых двигателей.
#define CONTROLLERFAN_PIN -1
#define EXTRUDER_0_AUTO_FAN_PIN 4
Пара мелочей, которые, возможно, будут нужны при использовании вентилятора обдува на низкой скорости
#define FAN_KICKSTART_TIME 100
#define FAN_SOFT_PWM
Можно поиграться с величиной ретракта при парковке, чтобы чуточку ускорить этот процесс
#define X_HOME_RETRACT_MM 5
#define Y_HOME_RETRACT_MM 7
#define Z_HOME_RETRACT_MM 3
Эта команда значительно ускоряет парковку
#define QUICK_HOME
Уже неоднократно перезапускал печать из-за неправильного значения z-offset. С помощью этой функции можно будет в реальном времени опустить каретку и не перезапускать печать снова
#define BABYSTEPPING
Эта функция, вероятно, поможет побороться с рассинхроном Z-оси на Prusa i3
#define Z_DUAL_STEPPER_DRIVERS
Настройки filament sensor'а не стал включать потому, что им будет посвящена отдельная статья.
Adios
Еще больше интересных статей
PrusaSlicer + Klipper + WEB-морда.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
( https://3dtoday.ru/...
BQ Hurakan - доброе утро, у тебя стол откис.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Настраиваем прошивку Marlin и заливаем её в 3D принтер
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Комментарии и вопросы
А сколько по времени греется с...
CFM моделирование подходит тол...
«Чистый» - это вы про новый об...
Собственно суть и есть. П...
Всех Приветствую, возникла сле...
Попадались кому-то цифры-испыт...
Ситуация следующая. Такая кони...