Первые косяки с новым Marlin-ом
После успешного обновления прошивки для Prusa i4 на свежий Marlin-1.1.1 я получил ряд сообщений от людей использовавших эту прошивку о невозможности разогреть heatbed до нужной температуры. В какой-то момент выскакивало сообщение Heating failed и принтер повисал. Давайте разберёмся в чём тут было быть дело.
Инцидент довольно неожиданный и неприятный. У себя я такого не наблюдал и это осложняло дело (позже, когда разобрался в чём дело смог симитировать такую ситуацию). Однако поковырявшись в прошивке проблему я нашёл довольно быстро.
Виновником оказалась срабатывание защиты от перегрева. Как оказалось в старой оригинальной прошивке ничего подобного не было в принципе и такая проблема возникнуть не могла просто по определению. Что же это за защита такая? Суть защиты в том, что если температура перестаёт нарастать система предполагает, что сломался датчик температуры, а нагреватель по прежнему работает, что теоретически может привести к пожару. Но в прошивке на мой взгляд с тим делом сильно перемудрили и защита реагирует не только на отсутствие изменения температуры, но и на скорость нагрева.
К сожалению в Prusa i4 нагреватель стола работает на пределе и лично на моём экземпляре стол вообще не разогревается выше 90-95 градусов. Человек с которым мы решали проблему со срабатыванием защиты сообщил, что у него стол греется до 110 градусов, но он делал дополнительную термоизоляцию стола.
Ну и соответственно т. к. стол нагревается фактически до максимума своих возможностей, то вполне логично, что чем ближе к максимум тем скорость нарастания температуры будет ниже и в итоге как показала практика она оказывается ниже скорости указанной в marlin-е по умолчанию (2 градуса в минуту), что в итоге и приводит к срабатыванию защиты.
По счастью в прошивке имеются настройки, позволяющие подкрутить требуемые параметры.
Отключить к чёрту эту защиту
С учётом того, что такой защиты не было как таковой в предыдущих версиях прошивки это вполне себе вараинт. Вырубить и забыть.
Соответственно нужно закомментировать данные строчки в файле Configuration.h , чтобы добиться требуемого эффекта.
Настроить параметры защиты
Это уже вариант для настоящих гурманов. Если уж разработчики предоставили нам возможность использовать защиту видимо стоит ей воспользоваться. Нужно лишь разобраться что к чему. Мы же не ищем лёгких путей — только жесть — только хардкор.
Итак заветные настройки лежат в файле Configuration_adv.h .
И соответственно для кровати:
В моём случае человеку (который и обратился за помощью с этой проблемой) помогло увеличение WATCH_BED_TEMP_PERIOD в 2 раза. Но сам я потом в ходе экспериментов просто засекал скорость изменения температуры ближе к максимумальной температуре кровати и прописывал соответствующее значение в прошивку. Но у меня и стандартное значение работало и в итоге его и оставил.
Итого проблема решена. Может быть пригодится кому-то ещё.
Come to our new Forum at forum.toms3d.org
- HomeForums3D PrintingSoftware
- Search
Error: Printer halted. kill() called! on homing (Marlin 1.1.9)
Error: Printer halted. kill() called! on homing (Marlin 1.1.9)
Post by Arakahn » Fri Sep 21, 2018 2:49 am
Building my first printer, and every time I try to home any axis (or start a print job for that matter), I get this error when the axis arrives at it’s home position. I have no mechanical endstop, using a MKS GEN1.4 board.
Attached here is my config and my printer settings in Repetier Host. If anyone is able to help I’ll be eternally grateful!
Re: Error: Printer halted. kill() called! on homing (Marlin 1.1.9)
Post by oakdesign » Fri Sep 21, 2018 1:13 pm
Всем привет! Вчера, на середине печати мой принтер написал ошибку и прекратил печать!
Термисторы стоят китайские..
Пытался ставить минимальную температуру в 5 градусов, не помогло.
READ: Error:Thermal Runaway, system stopped! Heater_ID: bed
READ: Error:Printer halted. kill() called!
Вот вырезки из конфига:
//#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_0 5
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_3 0
//#define TEMP_SENSOR_BED 0
#define TEMP_SENSOR_BED 1
// The minimal temperature defines the temperature below which the heater will not be enabled It is used
// to check that the wiring to the thermistor is not broken.
// Otherwise this would lead to the heater being powered on all the time.
#define HEATER_0_MINTEMP 5
#define HEATER_1_MINTEMP 5
#define HEATER_2_MINTEMP 5
#define HEATER_3_MINTEMP 5
#define BED_MINTEMP 5
// When temperature exceeds max temp, your heater will be switched off.
// This feature exists to protect your hotend from overheating accidentally, but *NOT* from thermistor short/failure!
// You should use MINTEMP for thermistor short/failure protection.
// Ограничение максимальной температуры хотэнда