Нагрев стола прекращается при остановке датчика биения филамента CR-10 S5

У моего CR-10 S5 есть функция, которая останавливает печать, когда нить заканчивается.

Однако, когда принтер делает паузу, стол остывает, и отпечаток шлепается на стол. Есть ли способ сказать принтеру, чтобы он продолжал нагревать стол, когда он остановлен (детектором биений)?

, 👍1

Обсуждение

если вы не пишете пользовательскую прошивку? Нет., @Trish

Имеет ли это отношение к "экономическому" режиму? Если да, то у вас есть свой ответ здесь. Я не знаю, отражает ли это последние версии прошивки., @0scar

@0scar nope, то есть часть кода сигнализации датчика биения нити, а не режим eco, @Trish

Охлаждается ли он сразу или это отдельный тайм-аут нагревателя после паузы?, @R.. GitHub STOP HELPING ICE


2 ответа


1

Нет простого способа держать стол нагретым во время паузы

Глядя на исходный код, я почти уверен, что текущая версия (29.10.2019) поддерживает нагретый стол при нужной температуре. Функции встроены в прошивку. Вам нужен Arduino и несколько проводов,чтобы записать новую прошивку на встроенный SOC. Корректировка кода должна быть такой же простой, как комментирование одной строки.

Это какой-то серьезный недостаток CR-10 S5! Я не могу представить себе причину, почему бы не оставить нагретый стол включенным.

Команда, которая поддерживает температуру нагреваемого слоя, находится в Marlin_main.cpp:5664: Ссылка на исходный код


,

какая это будет линия?, @Trish


1

Это в прошивке

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

Как работает М600?

Прошивка диктует, что делать в случае выхода филамента. Стандартные настройки в configuration.h могут выглядеть так:

//#define FILAMENT_RUNOUT_SENSOR
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
  #define NUM_RUNOUT_SENSORS   1     // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.
  #define FIL_RUNOUT_INVERTING false // Set to true to invert the logic of the sensor.
  #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
  //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.

  // Set one or more commands to execute on filament runout.
  // (After 'M412 H' Marlin will ask the host to handle the process.)
  #define FILAMENT_RUNOUT_SCRIPT "M600"

  // After a runout is detected, continue printing this length of filament
  // before executing the runout script. Useful for a sensor at the end of
  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
  //#define FILAMENT_RUNOUT_DISTANCE_MM 25

  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
    // Enable this option to use an encoder disc that toggles the runout pin
    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
    // large enough to avoid false positives.)
    //#define FILAMENT_MOTION_SENSOR
  #endif
#endif

Итак, мы должны увидеть, что делает М600. М600 сконфигурирован каким-то образом:

Настройки для этой команды можно найти в Configuration_adv.h.

Итак, вам нужно перенастроить поведение М600... Вот как правильно сделать это в 1.1.8/1.1.9 и как это на самом деле работает в первую очередь в 2.0?:

Во-первых, убедитесь, что строка #define ADVANCED_PAUSE_FEATURE не имеет ведущего // в configuration_adv.h.

Убедитесь, что у вас есть #define FILAMENT_RUNOUT_SENSOR без ведущего // в configuration.h. Как правило, он просто называет М600. Вы можете заменить эту строку любой другой строкой команд, например, заставить ее включить музыку или прервать печать, или просто задержаться на пару минут и трагически пискнуть. Заводская настройка для M600 содержит настройку безопасности: "Если вовремя не присутствовать - выключиться. Это включает в себя отключение обогреваемого стола.

Но где же определяется собственно М600? О, это тайно спрятано в Marlin_main.ccp для 1.1.9... и, как ни странно, он не вызывает выключения нагретого стола, если только не переходит в режим перезарядки did nothing.

,

Это не имеет никакого отношения к столу с подогревом, так что, не понижает ли новейшая версия прошивки температуру стола во время паузы? (Примечание "M600" - это универсальный сценарий паузы и смены филамента, он не ссылается на температуру рабочего стола) Кроме того, есть ли у Marlin 2.0.x `Marlin_main.cpp"?, @0scar

@0scar, что *ставит в тупик* меня - там *не должно* быть выключения, если только оно не установлено в дистрибутиве., @Trish

Я проверил текущую версию (2.0), и там в команде M600 вызывается manage_heater, который, в свою очередь, поддерживает температуру на рабочем столе. Я почти уверен, что у op есть более старая прошивка, где это не исправлено., @Hacky