What's new
VORON Design

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members!

NEW! Bed Fans Smart Monitoring Control System

FLYN

Member
Hi guys! Here’s a little something I’ve made & shared for any VORON 2.4 owners out there! 🤩🤩🤩
It’s a smart & adaptive bed fans monitoring & control system. It can be used as a stand-alone cfg on any system with bed fans, or part of my full VORON 2.4 macro pack, free links to that on the page.

Take a look & test it out, share it with friends & let me know how you get on with it. I put a lot of hours into this one. Hope you like it. 😊🤞👍

It’s fully automated so once setup it does it’s own thing & you don’t even have to think about it!
It has live preset adjustments that last for the duration of the print & full override control!

 
  • Like
Reactions: mkl
Nice Idea!

Does it monitor the bed temperature to prevent cooling it too much?

I use Bedfans on my V0 and have to regulate them carefully by myself to keep the Bed hot enough...
 
Nice Idea!

Does it monitor the bed temperature to prevent cooling it too much?

I use Bedfans on my V0 and have to regulate them carefully by myself to keep the Bed hot enough...
Hi, thanks. Yes it sure does, it compares the current bed temp with the set target & if the bed temp falls more than 5°c it’ll stop the fans to let the bed warm back up.

I tried to make this system as automated as possible, & as easy to use as possible.
 
Hi, thanks. Yes it sure does, it compares the current bed temp with the set target & if the bed temp falls more than 5°c it’ll stop the fans to let the bed warm back up.

I tried to make this system as automated as possible, & as easy to use as possible.
5 C??? I think you want to control the bed fan RPM to keep the bed dead on its set point. The bed-fan control loop would need to look at the measured chamber temperature and the desired chamber temperature and decide on how much power to "pull off the plate" based on the differences.. THis is a "PID controlled chamber regulator. But there would have to be limits to keep the bed at constant temperature.

I foubd this thread because I want a bed fan, but I am afraid of over-cooling. So I plan a bed heater upgrade. It is a V0,2 with a 60W heater and before I add the fan I will convert to a 100W heater

You would not be able to simply look at bed temperature to know to turn down the bed fan because the bed temperature is being held constant by a control loop. Maybe it might be best to watch the PWM setting on the heater and as it gets high (perhaps 85% duty cycle?) back off the bed fan.

The purpose of a bed fan is really to make the bed heater generate more heat, but still maintain a constant temperature.

Can this be done with a macro or is a Klipper extension required. I don't know.
 
  • Like
Reactions: mkl
5 C??? I think you want to control the bed fan RPM to keep the bed dead on its set point. The bed-fan control loop would need to look at the measured chamber temperature and the desired chamber temperature and decide on how much power to "pull off the plate" based on the differences.. THis is a "PID controlled chamber regulator. But there would have to be limits to keep the bed at constant temperature.

I foubd this thread because I want a bed fan, but I am afraid of over-cooling. So I plan a bed heater upgrade. It is a V0,2 with a 60W heater and before I add the fan I will convert to a 100W heater

You would not be able to simply look at bed temperature to know to turn down the bed fan because the bed temperature is being held constant by a control loop. Maybe it might be best to watch the PWM setting on the heater and as it gets high (perhaps 85% duty cycle?) back off the bed fan.

The purpose of a bed fan is really to make the bed heater generate more heat, but still maintain a constant temperature.

Can this be done with a macro or is a Klipper extension required. I don't know.
the macro has changed a bit since I posted that. I now have system that controls the fan both up & down around a calculated mid-point temperature. The fan power is also limited to a calculated percentage of maximum so it doesn't ramp up & outrun the bed heater during the print. I've been testing it over the last few weeks. For a non PID system it seems better than the previous hi/lo/on/off setup.
 
I´m testing your macro (v1.1) right now in my V0.

Works nicely, but it could be more smooth. :)

For a non PID system it seems better than the previous hi/lo/on/off setup
Are you sure you updated it on github?:D
 
Hey, i tried to use your macro "demon_bed_fans_monitor_v1.3.0.cfg", but I get the following Error, when running "_BED_FAN_SET":

Error evaluating 'gcode_macro _BED_FAN_SET:gcode': jinja2.exceptions.UndefinedError: 'extras.gcode_macro.GetStatusWrapper object' has no attribute 'gcode_macro _CORE_VARS'

The older Version 1.1 still works fine on another printer.
 
Hey, i tried to use your macro "demon_bed_fans_monitor_v1.3.0.cfg", but I get the following Error, when running "_BED_FAN_SET":

Error evaluating 'gcode_macro _BED_FAN_SET:gcode': jinja2.exceptions.UndefinedError: 'extras.gcode_macro.GetStatusWrapper object' has no attribute 'gcode_macro _CORE_VARS'

The older Version 1.1 still works fine on another printer.
That is because this new version is more tightly integrated into the macros so it’s looking for a variable that is not there on your system as you’ve pulled v1.3.0 out & using it by itself.

I’d recommend installing the full macro suite or continue using the old version.

 
  • Like
Reactions: mkl
Yes, but the version 1.3.0. contains a description to be used as standalone...

So, there is no fix for that?
 
Yes, but the version 1.3.0. contains a description to be used as standalone...

So, there is no fix for that?
Yes it does, it just needs some tweaking to make it work as a stand alone system. I haven’t got that far yet.

Add this to your bed fans file. Note it is untested but “should” work, you’ll just need to put….

_CHAMBER_SENSOR_DEFINE

Into the beginning of your start_print macro.

Edited - use version below.
 
Last edited:
Thanks, but it seems there is still something missing

Error evaluating 'gcode_macro _CHAMBER_SENSOR_DEFINE:gcode': jinja2.exceptions.UndefinedError: 'extras.gcode_macro.GetStatusWrapper object' has no attribute 'gcode_macro _START_VARIABLES'

Nevertheless the v1.1 is doing a great job, no need to hurry:D
 
Thanks, but it seems there is still something missing

Error evaluating 'gcode_macro _CHAMBER_SENSOR_DEFINE:gcode': jinja2.exceptions.UndefinedError: 'extras.gcode_macro.GetStatusWrapper object' has no attribute 'gcode_macro _START_VARIABLES'

Nevertheless the v1.1 is doing a great job, no need to hurry:D
aw man sorry try this version….

[gcode_macro _CORE_VARS]
variable_chamber_thermal_sensor: 0
gcode:

[gcode_macro _CHAMBER_SENSOR_DEFINE]
gcode:
{% set core_vars = printer["gcode_macro _CORE_VARS"] %}

{% if ('temperature_sensor Chamber_Temp' not in printer.configfile.config) and ('temperature_fan chamber' not in printer.configfile.config) %}
SET_GCODE_VARIABLE MACRO=_CORE_VARS VARIABLE=chamber_thermal_sensor VALUE=3

{% elif ('temperature_fan chamber' in printer.configfile.config) %}
SET_GCODE_VARIABLE MACRO=_CORE_VARS VARIABLE=chamber_thermal_sensor VALUE=1

{% elif ('temperature_sensor Chamber_Temp' in printer.configfile.config) %}
SET_GCODE_VARIABLE MACRO=_CORE_VARS VARIABLE=chamber_thermal_sensor VALUE=2

{% endif %}
 
  • Like
Reactions: mkl
Top