Solved Large Bed Heater Tuning Tips
bitskrieg last edited by
I've got a 1000mmx1400mm aluminum bed in an enclosed chamber with a 4400 watt heater on a Duet 2 WiFi running RRF 3.4.0.
I've noticed that when running autotune (M303 H0 S100), the first few measurement cycles take significantly longer to oscillate between 95 and 100 when compared to later cycles (which can take advantage of a 20C increase in chamber temperature, just based on how long the heater has been active) which are much shorter. As a result, when the tuning completes, it warns me that heater performance has been inconsistent and provides the new tuning values. When I apply those tuning values and run a print from a cold bed, it always throws a heater fault, presumably because those tuning values are favoring the later heating cycles during the autotune, which are taking advantage of much warmer ambient temperatures when compared to the beginning of the cycle, and thus the firmware is expecting it to act as if ambient is 20C warmer than it actually is.
My question is this - what is the technically correct way to account for this during the tuning process? I have had some success just leaving all of the doors on the enclosure open to allow the heat to dissipate during tuning, but it seems like there should be a more elegant solution.
Any tips are appreciated,
feeshfeud last edited by
The first thing I would try is to leave the chamber open, with a small fan if necessary to provide some ambient airflow. Don't cool the bed here, but try and keep the ambient temperature constant. This should give you a tune appropriate for door-open or first warmup. You'll then want to assess if you have any excess oscillation issues once everything is warm - if everything is tight enough (for me, within 1C or so would probably be fine, but it's your machine). You can try manually tweaking the parameters from here, or even try averaging 'open door' with 'closed door' parameters if performance isn't to spec.
Slightly more elegantly, but with a more involved integration, adding a prerun macro in the printing process to switch from 'warm-up' tune to 'steady-state' tune should be possible. You'd need to work out the cleanest way to integrate this into your slicing/printing workflow.
Then the kludgy option is to create a 'warm-up macro' for the first bed turn-on where temperature is ramped up slowly enough (e.g. 5C increments) that the heater fault doesn't occur.
An even kludgier option would be to reduce the max PWM of your heater. I'd wager you could get that bed up to temp with ~25-40% of 4400W. (Measuring your steady state wattage would give you a real number). This would obviously be slower to warm up, but might mitigate things like chamber temperature (which will now have time to equilibrate).
engikeneer last edited by
@bitskrieg you can set the max numer of tuning cycles (default 25 cycles) and the temperature difference (default 5C) for a tune. Maybe try playing with those to see if you get something more reasonable? I'm thinking do max 5-10 cycles so it stays cooler.
You could then do another one from a higher ambient temperature (and specify that in the tuning command) to see the difference.
You can also widen the heater fault tolerances in M143 for the bed to help account for the different response for different abient temperatures. Though obviously widening these too much will reduce the safety of the system somewhat.
@feeshfeud you could tune once to get the chamber warmed, then ignore that result and tune again immediately specifying the actual chamber temperature in the A parameter of the M303 command.
Alternatively, if you have a chamber heater then preheat the chamber to the temperature you typically use, then run bed heater tuning, again specifying the chamber temperature in the A parameter.
bitskrieg last edited by
Hi all - I took bits of all your responses and ended up making a tuning macro that brings the chamber temperature to my normal printing temperature first and then runs the autotune. When actually printing, I've adjusted my gcode to bring the chamber to temperature first (in serial) before heating the bed, rather than in parallel as I did previously. Overall print time has gone up a bit, but a single heatup in the morning and then leaving it like that all day isn't too bad.