После успешного обновления прошивки для Prusa i4 на свежий Marlin-1.1.1 я получил ряд сообщений от людей использовавших эту прошивку о невозможности разогреть heatbed до нужной температуры. В какой-то момент выскакивало сообщение Heating failed и принтер повисал. Давайте разберёмся в чём тут было быть дело.
Инцидент довольно неожиданный и неприятный. У себя я такого не наблюдал и это осложняло дело (позже, когда разобрался в чём дело смог симитировать такую ситуацию). Однако поковырявшись в прошивке проблему я нашёл довольно быстро.
Кто виноват?
Виновником оказалась срабатывание защиты от перегрева. Как оказалось в старой оригинальной прошивке ничего подобного не было в принципе и такая проблема возникнуть не могла просто по определению. Что же это за защита такая? Суть защиты в том, что если температура перестаёт нарастать система предполагает, что сломался датчик температуры, а нагреватель по прежнему работает, что теоретически может привести к пожару. Но в прошивке на мой взгляд с тим делом сильно перемудрили и защита реагирует не только на отсутствие изменения температуры, но и на скорость нагрева.
К сожалению в Prusa i4 нагреватель стола работает на пределе и лично на моём экземпляре стол вообще не разогревается выше 90-95 градусов. Человек с которым мы решали проблему со срабатыванием защиты сообщил, что у него стол греется до 110 градусов, но он делал дополнительную термоизоляцию стола.
Ну и соответственно т. к. стол нагревается фактически до максимума своих возможностей, то вполне логично, что чем ближе к максимум тем скорость нарастания температуры будет ниже и в итоге как показала практика она оказывается ниже скорости указанной в marlin-е по умолчанию (2 градуса в минуту), что в итоге и приводит к срабатыванию защиты.
Что делать?
По счастью в прошивке имеются настройки, позволяющие подкрутить требуемые параметры.
Отключить к чёрту эту защиту
С учётом того, что такой защиты не было как таковой в предыдущих версиях прошивки это вполне себе вараинт. Вырубить и забыть.
1 |
Соответственно нужно закомментировать данные строчки в файле Configuration.h
, чтобы добиться требуемого эффекта.
Настроить параметры защиты
Это уже вариант для настоящих гурманов. Если уж разработчики предоставили нам возможность использовать защиту видимо стоит ей воспользоваться. Нужно лишь разобраться что к чему. Мы же не ищем лёгких путей — только жесть — только хардкор.
Итак заветные настройки лежат в файле Configuration_adv.h
.
Для hotend-а:
1 |
И соответственно для кровати:
1 |
В моём случае человеку (который и обратился за помощью с этой проблемой) помогло увеличение WATCH_BED_TEMP_PERIOD
в 2 раза. Но сам я потом в ходе экспериментов просто засекал скорость изменения температуры ближе к максимумальной температуре кровати и прописывал соответствующее значение в прошивку. Но у меня и стандартное значение работало и в итоге его и оставил.
Итого проблема решена. Может быть пригодится кому-то ещё.
Комментарии