Chamber Heater Control
Hey guys,
I have an issue with the default inbuilt chamber heater controls that are built into RatOS.
My setup is an IDEX 500 V-Core4, with a 300w ptc heater and Vindr 5015 bed fans. I have two chamber thermistors, with the main one being used by RatOS mounted on the rear extrusion just above the VAOC module, and a lower one at the base of the extrusion that is just being used to compare lower chamber temps to upper chamber temps.
The main thing is that my printer is very well insulated. The main enclosure panels are 3mm ACM sheets either side of a 12mm insulation foam core, so 18mm total thickness. The door is still just 3mm acrylic at the moment, with plans to change that to 6mm polycarbonate. This enclosure will hold a 50° chamber temperature for 5 hours after all heaters have been switched off.
The problem I'm having is overheating the chamber, I'm not finding the RatOS macros are controlling chamber temperature at all. So far as I can see, all the default macros do is turn all of the heaters and fans on full blast on inital warmup, and then when target temperature is reached the ptc heater is turned down to a predefined temp offset to the target temp (default is chamber target temp + 25°). The chamber_heater_extra_fan (my 5015 bed fans) is never reduced, these just stay on 100% or whatever the defined variable is.
With this setup, this just sends the chamber temperatures higher and higher until Klipper eventually shuts down due to the stepper motors hitting their ADC cut off range. If I target a 50° chamber, it will get there in 10 minutes but then temps continue to climb during the print. I'll hit 75° chamber temps within an hour of a print starting.
18 Replies
Has anyone got a better approach to this? In my opinion the default approach is a bit backwards. The bed fans/heater are doing 90% of the work. The ptc heater aids a little bit in initial warm-up and especially in keeping those lower chamber temperatures even with the upper chamber temperatures, but once its warm in there you've got a 500mm 1600w heater holding 100°+ with two 5015's on full blast - the little 300w ptc heater can be turned off entirely and the upper chamber temps would barely notice.
Is there a reason we don't use the bed fans as a temperature_fan with inverted logic? So instead of the normal use case where Klipper turns the fan on to cool the defined temperature sensor, instead it turns the fan on to heat to target temperature and then once there the fans are controlled by PWM to maintain that temperature.
This would normally be a macro I'd be quite comfortable writing, however I'm not sure how to integrate that into RatOS neatly if I was to do it. And if there's an easier way to change the default macros to make it control temps then I would much prefer to use the already integrated macros!
Any suggestions?
What isolation do you use ? 😱 I want this 😁
Ah its called Foilboard, it's a foil backed fire-retardant polystyrene. This is an Australian product, I'm not sure what the international equivalents would be, but just look for foil backed FR-EPS
Thank you
Just wanting to pick up this conversation again here, though I'm not confident I'll get any response:
https://discord.com/channels/582187371529764864/949426783894245446/1368972639955193877
I'm so frustrated with this, this is such a simple bloody macro to write and I just can not get it to integrate into the RatOS START_PRINT routine
My config for the temperature fan is this:

I've verified this config works with this independant macro:

When calling this from the UI, I'm able to achieve target temperature within 10 minutes, and then hold that target temperature within 1 degree for minimum 6 hours (the extent of the test that I ran to verify):

To attempt to integrate that into the RatOS
START_PRINT
macro, I'm using these user hooks:
And these are the base macros that are being called there:

The problem is that no matter which user hook macro I use in the
START_PRINT
, the slicer CHAMBER_TEMP variable isn't being passed to this macro and it won't use the temperature defined in the slicer for the filament, it will only use the default parameter defined in that string
AAAAAAAAAAAAND in typing all of this out like this I have realised the problem 🤣The fix:

If anyone can suggest how I can refine this, I would really appreciate it. This works as intended now, but it feels extremely clunky, I don't like that the bed fans are the first parameter to come on at print start, I'd like them to change with the rest of the parameters. And I'm not able to utilise the hotends/part cooling fans as part of the preheat routine like this, because they only get passed much later in the routine
Very perplexing... I appreciate your effort and ingenuity. Out of curiosity have you tried hooking it at _USER_CHAMBER_HEATER_AFTER_PREHEATING ?
Using this hook would mean that the bed fans don't come on until after the chamber is at temperature, which would mean a very slow heat up time
So, total shot in the dark as I'm thinking way outside the box here. Not tested, but theoretically it should work if you find no other solution.
You'll need 3 fan outputs, a microrelay, and an upgrade to the high temp honeybadger 5015 3-wire PWM fans ($10 ea./fabreeko). You'll get better low speed control with these anyways.
Hook the fan pwr/gnd wires to a fan output and assign that to the chamber extra fan output, so power will always be applied during heated chamber operation.
Hook the fan's blue PWM wire to the open side of a 4 pin microrelay. Hook the relay driver +/- to a 100% PWM switched additional fan output that will turn on the relay at your macro hook, along with the bedfans. Hook the remaining pin of the relay to a PWM fan output. Assign that output as your PWM control for the bedfan.
When your chamber heater starts, the fan will see full voltage as extra chamber heating fan but with no PWM control signal it will run at 100%.
Once the chamber reaches temp, and
the macro hook fires off, the other fan driver energizes the relay and switches the fan PWM control over to your bedfan PWM signal, and the fan RPM is now controlled by that.
I've not got any spare fan ports on the board, they're all occupied
But I do like the thought!
Well... Another $20 you can pick up an expansion board with the 5015's.