diff --git a/printer_mods/Ellis/Bed_Fans/Klipper_Macros/bedfans-dualcontrol.cfg b/printer_mods/Ellis/Bed_Fans/Klipper_Macros/bedfans-dualcontrol.cfg index 377793ae8..4add9c873 100644 --- a/printer_mods/Ellis/Bed_Fans/Klipper_Macros/bedfans-dualcontrol.cfg +++ b/printer_mods/Ellis/Bed_Fans/Klipper_Macros/bedfans-dualcontrol.cfg @@ -95,7 +95,10 @@ gcode: M140 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %} # Set bed temp - TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={S|int} MAXIMUM={S|int + 5} # Wait for bed temp within 5 degrees + + {% if S != 0 %} + TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={S|int} MAXIMUM={S|int + 5} # Wait for bed temp within 5 degrees + {% endif %} # Post-heating fan speeds {% if S >= THRESHOLD %} diff --git a/printer_mods/Ellis/Bed_Fans/Klipper_Macros/bedfans.cfg b/printer_mods/Ellis/Bed_Fans/Klipper_Macros/bedfans.cfg index 13f73664e..2c37d850f 100644 --- a/printer_mods/Ellis/Bed_Fans/Klipper_Macros/bedfans.cfg +++ b/printer_mods/Ellis/Bed_Fans/Klipper_Macros/bedfans.cfg @@ -83,7 +83,10 @@ gcode: M140 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %} # Set bed temp - TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={S|int} MAXIMUM={S|int + 5} # Wait for bed temp within 5 degrees + + {% if S != 0 %} + TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={S|int} MAXIMUM={S|int + 5} # Wait for bed temp within 5 degrees + {% endif %} # Post-heating fan speeds {% if S >= THRESHOLD %} diff --git a/printer_mods/Ellis/Bed_Fans/README.md b/printer_mods/Ellis/Bed_Fans/README.md index 7877037b3..2a396b4a6 100644 --- a/printer_mods/Ellis/Bed_Fans/README.md +++ b/printer_mods/Ellis/Bed_Fans/README.md @@ -1,46 +1,63 @@ -## Macros and Usage -See bedfans.cfg or bedfans-dualcontrol.cfg* for klipper macros. +## Information +I created these macros because none of Klipper's fan control options (like `[temperature_fan]`) did quite what I wanted. -1) Place the .cfg file in the same directory as your printer.cfg file. +These macros are automatically invoked when your target bed temp is changed (and ONLY then). Because of this, you do not need to add anything to your other macros. -2) Add `[include bedfans.cfg]` to your printer.cfg. +They have a pretty simple behavior. All they do is: +- Automatically set the bed fans to `variable_slow` speed while the bed is heating up. +- Automatically set the bed fans to `variable_fast` speed once target bed temp is reached. +- Automatically turn off the bed fans when the bed is turned off. -3) Change `pin` for your fans in the second section. This is intentionally left blank so that it will error if you don't fill it in. +These macros do NOT read the chamber temperature. If your chamber is getting too hot, simply lower the fan speeds. -4) Configure the options in the first section: +If the above is not the behavior you desire, you have some other options: +- Configure your bed fans as `[fan_generic]` and control them manually with `SET_FAN_SPEED` in your `PRINT_START`/`PRINT_END` etc. +- Use one of Klipper's other fan control methods like `[temperature_fan]`. +- Modify these macros to achieve your desired custom behavior (or write new ones). +## **Setup** -* `variable_threshold` sets the target bed temperature at which your bed fans will activate. -* `variable_slow` sets the "slow" fan speed for when the bed is heating to the target temp. -* `variable_fast` sets the "fast" fan speed for when the bed is at temperature. - * This may have to be lower than 100% fan speed, especially with quad fans. - * If you get "Heater heater_bed not heating at expected rate" errors, then you have set this too high. +**Please see the ["Information"](#information) section first.** -The macros will intercept bed heating commands, so you do not need to add anything to your other macros. +**1)** Place the .cfg file (located in the [Klipper_Macros](./Klipper_Macros) folder) in the same directory as your printer.cfg file. -\* Optionally allows for setting inner and outer fan speeds separately, for a quad fan configuration. I like to set my inner fans to be run slightly slower to try and keep the airflow somewhat even. +**2)** Add `[include bedfans.cfg]` to your printer.cfg. -## 5015 Fan Mount +**3)** Change `pin` for your fans in the second section. +- This is intentionally left blank so that it will error if you don't fill it in. + +**4)** Configure the options in the first section: + +- `variable_threshold` sets the bed temp threshold at which your bed fans will be used. + - Default is 100C (so it does not enable for PLA) +- `variable_slow` sets the fan speed for when the bed is **heating.** +- `variable_fast` sets the fan speed for when the bed is **at temperature.** + +### Tips +- `bedfans-dualcontrol.cfg` optionally allows for setting inner and outer fan speeds separately, for a quad fan configuration. +- If you get *"Heater heater_bed not heating at expected rate"* errors, then you have one or both of your fan speeds set too high. +- `variable_slow` can be set to 0 if you prefer the fans to remain off during heatup. +## **5015 Fan Mount** Bill of materials (per fan): - 1x 5015 fan - 1x M3x25 - 1x M3x20 - 1x M3 heat set insert -- 1x M3x8 or M3x10 (optional, I only mount with one screw) +- 1x M3x8 or M3x10 *(optional, I only mount with one screw)* ![5015 Fan Mount](Images/5015_mount_isolated.png) -## FAQ +## **FAQ** #### How much difference does it make? * My chamber now reaches about 60-66C with a quad fan configuration, whereas it only reached roughly 48-50C previously. Chamber temp is also reached more quickly. #### Can I push it further? -* Technically your bed heater is not being run at full power with the default configs, however I do not recommend pushing it. Since you can't control max power at runtime, your bed will run at too high of a power while heating, risking warping your bed. +* Technically your bed heater is not being run at full power with the default configs, however I *do not recommend pushing it.* Since you can't control max power at runtime, your bed will run at too high of a power while heating, risking warping your bed. -* I also do not recommend tinkering with your verify_heater (thermal runaway protection) settings. +* *I also do not recommend tinkering with your verify_heater (thermal runaway protection) settings.* #### What power should I run my bed heater at? @@ -71,7 +88,7 @@ If you have a 750 watt heater, that's 48% power, or 0.48 max_power. #### Should I use single, dual or triple/quad fans? -* Triple/quad fans is more for even airflow than raw airflow. In fact you will likely not be able to run them at 100% without outrunning your bed heater. I personally prefer triple/quad fans to avoid any possibility of "tacoing" my bed due to uneven temperatures. Triple fans is probably the "sweet spot". +* Triple/quad fans is more for *even* airflow than *raw* airflow. In fact you will likely not be able to run them at 100% without outrunning your bed heater. I personally prefer triple/quad fans to avoid any possibility of "tacoing" my bed due to uneven temperatures. Triple fans is probably the "sweet spot". #### Is "dual control" necessary? @@ -80,8 +97,8 @@ If you have a 750 watt heater, that's 48% power, or 0.48 max_power. #### I insist on running quad fans at 100%, why am I having a bad time? * No. Stop it. Bad. -## Images +## **Images** -(looks a bit tight since CAD is for a 250mm) +*(looks a bit tight since CAD is for a 250mm)* ![5015 Triple](Images/5015_triple.png) ![5015 Quad Installed](Images/5015_quad_installed.png) \ No newline at end of file