Skip to content

Latest commit

 

History

History
277 lines (205 loc) · 14.2 KB

readme.md

File metadata and controls

277 lines (205 loc) · 14.2 KB

Подключение нагревателя камеры принтера

При печати высокотемпературными пластиками одним из необходимых параметров для успешной печати является стабильно высокая температура в камере.

Если вы установили Helper Script пункт 9 chamber fan - объедениние температурного датчика камеры принтера и заднего вентилятора. При превышении пороговой температуры по умолчанию 35 градусов задний вентилятор включается высасывая излишне теплый воздух и подкачивая холодный, таким образом стабилизируя температуру печати. Однако этот пункт хорошо работает до температур 45-47 градусов, что далеко не всегда достаточно. Если ваша цель печать на температурах 50-60 градусов то данное руководство для вас.

Не забудьте почитать про 9 пункт Helper Script тут

Установка нагревателя

Нам потребуется несколько проводов, кримпер для обжима разьема, 2pin PH2.0 разьем от него 2 провода:

соблюдайте полярность! сверху на фото +(красный) снизу -(черный)

пойдут они до твердотельного реле например SSR-25DA, Твердотельное реле 220В, коммутация AC 24-380В / 25А, управление DC 3-32В

сперва я хотел использовать простые реле типа таких:

но после того как проработав пару минут умерло 2 штуки я решил что лучше один раз заплатить за нормальное реле.

я использовал нагреватель с вентилятором такой с креплением таким

Но не могу его рекомендовать так как работает он из рук вон плохо, однако в сети уже есть несколько проектов которые на вид внушают доверие. например этот

Cуть особо не меняется, у нас есть выход на 24 вольта на наш вентилятор и подключаемое реле которое коммутирует цепь 220 вольт. 220 вольт удобно взять на клеммах входа блока питания.

При установке нагревателя, не забывайте о габаритных размерах стола, проверяйте чтобы оставался зазор как от стола до нагревателя, так и от входа вентилятора до стенки принтера.

Помните, все работы по подключению проводяться на отключенном питании принтера. Не выключателем! Отключайте кабель физически! Спички детям не игрушки и высокое напряжение тоже. Изолируйте соединения, не трогайте контакты и провода при подключенном принтере.

если кто то перерисует схему буду благодарен, художник из меня так себе.

Правка конфигурационных файлов

К сожалению править файл который нам нужен мы не сможем и первым делом нам придется зайти через ssh в наш принтер и вызвав меню helper script
sh /usr/data/helper-script/helper.sh

Выбираем пункт 2 remove

и удаляем 9 пункт Fans Control Macros

выходим из консоли.

Не переживайте, часть функционала макроса мы скоро вернем с помощью наших файлов.

далее нам надо в вебпанели найти файл printer.cfg и внести в него несколько изменений.

Находим такой блок и удаляем его: или перед строчками ставим знак # чтобы закоментировать.

[duplicate_pin_override]
pins: PC0, PC5

[temperature_fan chamber_fan]
pin: PC0
cycle_time: 0.0100
hardware_pwm: false
max_power: 1
shutdown_speed: 0
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
min_temp: 0
max_temp: 70
control: watermark
max_delta: 2
target_temp: 35.0
max_speed: 1.0
min_speed: 0.0

После строки [include Helper-Script/KAMP/KAMP_Settings.cfg]

вписываем:

[include fan_control.cfg]

сохраняем файл без перезагрузки.

скачиваем файл fan_control.cfg

или если у вас проблемы со скачиванием то создаем новый файл в корневой папке конфига(рядом с printer.cfg) и называем его fan_control.cfg

открываем его для редактирования и копируем туда следующий блок:

########################################
# Fans Control
########################################

[respond]

[duplicate_pin_override]
pins: PC5, PB2, PC6, ADC_TEMPERATURE

[temperature_fan soc_fan]
pin: PB2
cycle_time: 0.0100
kick_start_time: 0.5
hardware_pwm: false
max_power: 1
shutdown_speed: 0
sensor_type: temperature_mcu
min_temp: 0
max_temp: 100
control: watermark
max_delta: 2
target_temp: 45.0
max_speed: 1.0
min_speed: 0.0
tachometer_pin:PC6

[heater_generic chamber]
heater_pin:PA0
max_power:1.0
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
control: watermark
max_delta: 1
min_temp:-100
max_temp:65

[verify_heater chamber]
max_error: 900
check_gain_time: 300
hysteresis: 50
heating_gain: 1


[gcode_macro M141]
gcode:
    {% if printer["heater_generic chamber"] is defined %}
         {% set s = params.S|float %}
        SET_HEATER_TEMPERATURE HEATER=chamber TARGET={params.S|default(0)}
    {% endif %}


[gcode_macro M191]
description: Wait for Chamber Temperature to heat up
gcode:
  {% set s = params.S|float %}
  {% set chamber_temp = printer["heater_generic chamber"].temperature|float %}
  {% if s > 0 %}
    M141 S{s}
  {% endif %}
  {% if s > chamber_temp and s <= 65 %}
    M140 S100
    M106 P2 S210 # подключение боковой улитки для лучшей конвекции в камере
    RESPOND TYPE=command MSG="Waiting for the bed to heat up the chamber..."
    TEMPERATURE_WAIT SENSOR="heater_generic chamber" MINIMUM={s-2}
    RESPOND TYPE=command MSG="Chamber target temperature reached: {s}°C"
    M107 P2 S0 # отключение улитки при достижении нужной температуры
    M140 S{s}
  {% endif %}



[gcode_macro M106]
gcode:
  {% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %}
  {% set fan = 0 %}
  {% set value = 0 %}
  {% if params.P is defined %}
    {% set tmp = params.P|int %}
    {% if tmp < fans %}
      {% set fan = tmp %}
    {% endif %}
  {% endif %}
  {% if params.S is defined %}
    {% set tmp = params.S|float %}
  {% else %}
    {% set tmp = 255 %}
  {% endif %}
  {% if tmp > 0 %}
    {% if fan == 0 %}
      {% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan0_min) / 255 * tmp %}
      {% if printer['gcode_macro Qmode'].flag | int == 1 %}
        SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan0_min + value}
        {% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2  %}
          {% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %}
        {% else %}
          {% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %}
        {% endif %}
      {% else %}
        {% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %}
      {% endif %}
    {% endif %}
    {% if fan == 1 %}
      {% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan1_min) / 255 * tmp %}
      {% if printer['gcode_macro Qmode'].flag | int == 1 %}
        SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan1_min + value}
        {% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2  %}
          {% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %}
        {% else %}
          {% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %}
        {% endif %}
      {% else %}
        {% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %}
      {% endif %}
    {% endif %}
    {% if fan == 2 %}
      {% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) / 255 * tmp %}
      {% if printer['gcode_macro Qmode'].flag | int == 1 %}
        SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan2_min + value}
        {% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2  %}
          {% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %}
        {% else %}
          {% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %}
        {% endif %}
      {% else %}
        {% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %}
      {% endif %}
    {% endif %}
  {% endif %}
  {% if value >= 255 %}
    {% set value = 255 %}
  {% endif %}
  {% if params.P is defined and params.P|int == 3 %}
    {% set fan = 1 %}
  {% endif %}
  SET_PIN PIN=fan{fan} VALUE={value}

сохраняем, закрываем. Переходим к файлу gcode_macro.cfg

ищем макрос который начинается с [gcode_macro M106] удаляем либо закомментируем все строки в этом блоке. также поступаем с макросом [gcode_macro M141]. сохраняем и теперь уже с перезагрузкой. если все правильно то ваша панель температур будет выглядеть как то так:

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

Небольшое послесловие

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

  • Из-за недостаточного обдува вентилятора радиатора возможны пробки.

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

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

  • В материнской плате которая управляет мотором фидера и установлена в печатной голове принтера возможны сбои изза перегрева.

  • Учитывайте что обдув ваших моделей будет происходить внутри замкнутого пространства и той же повышенной температурой. Увеличивайте процент обдува нависаний.

В составе кода есть два макроса контроля температуры:

M141 как использовать контроль температуры в слайсере описание тут - 9 пункт Helper Script тут

M191 В отличии от обычного макроса который включает нагрев стола, мы включаем и стол и нагреватель и вентилятор боковой улитки для лучшей конвекции воздуха. Не начинаем печать до того как не набрали целевую температуру.