пятница, 14 августа 2020 г.

Marlin и его защита от перегрева хотэнда и стола принтера

Столкнулся с тем, что Marlin ограничивает температуры нагрева. На хотэнд из g-кода приходит 255, но Marlin ограничивает на 245. В конфигурации лимит был указан как 260. Стал разбираться. Оказалось, что в файле menu-temperature.cpp явным образом используются числовые константы  (magic numbers/hard codes), равные 15 для хотэнда и 10 для стола, на величину которых уменьшаются соответствующие параметры:

#define HEATER_0_MAXTEMP

#define BED_MAXTEMP

Для того, чтобы скомпенсировать эту топорную защиту, удобно указывать максимальные температуры в виде выражений, а не констант. Например:

#define HEATER_0_MAXTEMP    (260+15)

#define BED_MAXTEMP         (110+10)


Комментариев нет:

Отправить комментарий

Ваш комментарий откроется после проверки и подтверждения.
Благодарю за понимание необходимости проверки!