Basic Information:
Printer Model: Custom Core XY build
MCU / Printerboard: BTT Manta M8P V1.1
Host / SBC: CB1
klippy.log: No errors
I have a fully enclosed printer that I have been using with active chamber heat for a long time. I generally open the top when printing a material that does not require a heated chamber, but now want to keep the lid closed for all prints so I can filter out fumes and keep the noise level down.
I consume the chamber temperature from my slicer as I have that set for each material. I use this print chamber temp to control the heater (again…successful for a long time). I have successfully allowed the chamber Thermistor to be used for both heat and venting by using:
[duplicate_pin_override] pins: PB6
Here is the printer.cfg for my chamber fan:
[temperature_fan Chamber_venting_fan]
pin: PB8 # On fan 5 header M8P
max_power: 1.0
shutdown_speed: 0.0
cycle_time: 0.01
sensor_type: NTC 10K/B3950
sensor_pin: PA3
min_temp: 0.0 # Set this low, if this temp is reached system will shut down
max_temp: 90.0
off_below: 1.0
max_speed: 1
min_speed: 0.0
#target_temp: 30 # Set higher to keep fan off until print started
control: pid
pid_Kp: 2.0
pid_Ki: 5.0
pid_Kd: 0.5
Here is the current state of my M191 macro:
[gcode_macro M191] #This command optionally sets a new target chamber temperature
#and waits for the target temperature to be reached before proceeding.
#If the temperature is set with S then it waits only when heating.
gcode:
{% set target_chamber = params.CHAMBER_TEMP|default("24")|float %} # Get target chamber temp from gcode
#{% set target_chamber = params.CHAMBER_TEMP | float %}
{% set current_temp = current_chamber_temp|default("20")|float %} # Get current chamber temp from thermistor
#{% set current_temp = current_chamber_temp | float %}
{action_respond_info('Target chamber temp set to %.1fC.' % (target_chamber))}
{% if target_chamber < current_temp %} # Judging the actual chamber temperature
{action_respond_info('Chamber temp low %.1fC. Start heating' % (target_chamber))}
M117 Chamber Heating...
TEMPERATURE_WAIT SENSOR=heater_generic chamber_heater MINIMUM={target_chamber}
#SET_TEMPERATURE_FAN_TARGET temperature_fan=Chamber_venting_fan target=65
SET_TEMPERATURE_FAN_TARGET temperature_fan=Chamber_venting_fan target={(target_chamber-10)}
{% elif target_chamber >= current_temp %} # Judging the actual chamber temperature
{action_respond_info('Chamber temp high %.1fC. Start venting' % (target_chamber))}
M117 Chamber Venting...
#SET_TEMPERATURE_FAN_TARGET temperature_fan="Chamber_venting_fan" MIMIMUM=target={target_chamber}
SET_TEMPERATURE_FAN_TARGET temperature_fan="Chamber_venting_fan" target={target_chamber}
#{% endif %}
{% endif %}
My issue is twofold:
- At printer startup, I wish the chamber vent fan to be off until a print is sent stating the target chamber temperature. Since it is a temperature_fan, I am unable to configure it to off using the SET_FAN_SPEED in my startup gcode.
- If the chamber is heating, I need to ensure the chamber vent fan stays off for the duration of the print.
Appreciate all ideas!
…
klippy.log (7.4 MB)