Heavy Aluminum bed too slow for autotune.
-
I've got an Objet 3D printer that I'm repurposing for FFF. I can't autotune the bed heater because the thermal mass of the bed is too high to respond fast enough for M303. I get "auto tune cancelled because temperature is not increasing" or "auto tune cancelled because temperature is not falling". Realistically, I can expect the bed to heat around .1C/s when it's really going. It does not heat this quick until it's been on for about 5 minutes. It is even slower to cool. Is there a way for me to get around this? Is there a way to make M303 more tolerant on rise/fall rate?
I've tried a gain as low as 60, a C value as high as 10000, and a D of 99; for example:
M307 H0 A60 C10000 D99 B1More on the printer:
For the build plate, the objet has a 120V 600W silicone heater pad sandwiched between a total of ~20lbs of Aluminum. I have my Duet 3 controlling a 120V SSR to power the bed. A single thermistor is located at the edge of the bed and is screwed into it. The design of this bed was to hit temp slowly and maintain it - it takes 40 min for the bed to passively cool down from 60C without a fan on it. It's also thick enough that it maintains a pretty even temperature across the surface. If you're not familiar with the machine - it's an XY extruder gantry with a bed traveling in the Z. -
You are W A Y W A Y W A Y under powered. Just as an example, I am using 1200 Watts and I might have maybe 2 kg worth of build plate.
While slow and steady may win the race, it will cause you nothing but grief in this situation. There are a couple of things that will catch you right away - generally, the first layer is put down with extra bed temperature. In your case you have zero control over the bed temperature as shutting off the heater will not drop the temperature in a reasonable amount of time. Also, you will find that the heater has insufficient power to overcome temperature losses from the environment. It will increase in temperature (slowly) until losses equalize the gains but you might find yourself in a situation where the heater never shuts off because it can never reach set temperature.
Yes you might be able to bypass the safeties but what you have is not workable! -
dead time of 99 seconds is likely still much too low for the bed heater. For the initial tuning, you can artificially increase the dead time substantially to get it to tune successfully. Once it's tuned once it will have an accurate model of the heater and you'll get a true D value.
so try D999 or more
https://duet3d.dozuki.com/Wiki/Tuning_the_heater_temperature_control#main
-
@jens55 said in Heavy Aluminum bed too slow for autotune.:
you will find that the heater has insufficient power to overcome temperature losses from the environment.
I think the objet is enclosed so environmental losses might not be an issue.
And higher temps for the initial layer may not be necessary for the same reason.
It's definitely a slow heater for that amount of mass, but if time isn't at a premium then that's not an issue, and it might also be intrinsically more safe since it can't get to dangerous temps in a fault condition.
-
@Phaedrux , I don't share your optimism unless he is not printing plastic.
Mind you, when I first read the post I thought he had said 300W but on re-reading it was 600. If the printer is enclosed and is actively heated then dissipation isn't as much of an issue, you are right. I myself depend on the extra heat of the first layer in order to stick the bead to the glass surface. There is a fine balance (in my case) between sticking and not sticking. This is often seen within 5 degrees. With the first layer not able to cool, I suspect that there will be artifacts that rear their ugly head.
I suppose it might work (definitely try with a longer dead time) but this just raises all manner of red flags in my mind. YMMVtjhinton I am curious - what's the size of the plate and what is thickness ?
-
"You are W A Y W A Y W A Y under powered. Just as an example, I am using 1200 Watts and I might have maybe 2 kg worth of build plate. While slow and steady may win the race, it will cause you nothing but grief in this situation."
I appreciate your position on this. Unfortunately, it's not really something I can change - this printer is built like a tank, and it's much easier to just make this bed work for my needs. And this machine was designed with plenty of environmental control in mind - it doesn't drop temp when you put a fan on the bed. I don't need more than 60C, and I'm not actually doing much FFF, but I would like the ability to warm the bed to at least 60C with the Duet's firmware.
"There are a couple of things that will catch you right away - generally, the first layer is put down with extra bed temperature. In your case you have zero control over the bed temperature as shutting off the heater will not drop the temperature in a reasonable amount of time."
My understanding is that tuning catches this, assuming you do it right and set up the tune in an appropriately controlled situation - such as in an enclosed print volume.
"Also, you will find that the heater has insufficient power to overcome temperature losses from the environment. It will increase in temperature (slowly) until losses equalize the gains but you might find yourself in a situation where the heater never shuts off because it can never reach set temperature.
Yes you might be able to bypass the safeties but what you have is not workable!"The build volume is enclosed. Even without the enclosed build volume, I've been printing PLA without issue, but I have to manually override the heating commands to get the bed up to temp - I would like to have the firmware take control for me, as it is designed to do. Thermal losses do not hamper this machine like you might be thinking - I don't entirely know if I'm missing something or not, but the bed is VERY stable with a cooling fan - much moreso than the other 5 machines I have.
-
Wait, isn´t the Objet a Polyjet machine that prints with resin?
Can you share a picture? -
The build plate is 330 x 340 x 35mm. Basically solid. Top plate is a milled/ground slab of aluminum with a pocket on its bottom for the heater. The bottom half is the "lifter" plate (also aluminum) and is fixed to 3 leadscrews.
-
@Phaedrux said in Heavy Aluminum bed too slow for autotune.:
https://duet3d.dozuki.com/Wiki/Tuning_the_heater_temperature_control#main
Maybe you missed my post?
If auto tuning fails with a message that the temperature is not rising fast enough, this indicates that either you are using too low a P value in the M303 command, or the dead time in the existing model is much too low for your heater. You can increase the dead time using the M307 command. For example, sending M307 H0 D30 will increase the dead time to 30 seconds. The actual dead time will be known after a successful auto tuning.
-
It is. I've removed the polyjet head from a broken objet and put ... lol ... a prusa i3 mk3s extruder I had lying around on it.
-
-
@tjhinton You may need to use an extreme value for D for the initial tuning. 99999. Once it tunes successfully once you'll have the actual D value.
And yes, it looks like there is a typo in that section. P=D. I'll fix that, thanks.
-
@Phaedrux said in Heavy Aluminum bed too slow for autotune.:
And yes, it looks like there is a typo in that section. P=D. I'll fix that, thanks.
Actually, no. That's not a typo. The P value is the PWM value. And it's saying that having a reduced PWM value can also cause that error message to occur.
-
Even with an extreme D value, I get "auto tune cancelled because temperature is not falling"
This is because the bed heater turns off, but heat is still diffusing outward toward that peripheral thermistor. There's a delay before the temp starts to drop appreciably.
-
For reference, I'm at P1, or 100% PWM. and it's an SSR, so I wouldn't want to PWM it fast anyway for M303, right?
-
Image of the machine.
-
@tjhinton Well there's two parts to that. There is the PWM duty cycle and the PWM frequency. 100% duty cycle is what you should be using (and sounds like you are.) Frequency is 10hz by default I believe, which should be perfectly fine for an SSR.
Is there any way to move/add a thermistor to be in closer contact to the heating pad rather than just at the edge of the plate? Having a tighter feedback loop would probably solve your problem.
-
@tjhinton said in Heavy Aluminum bed too slow for autotune.:
"There are a couple of things that will catch you right away - generally, the first layer is put down with extra bed temperature. In your case you have zero control over the bed temperature as shutting off the heater will not drop the temperature in a reasonable amount of time."
My understanding is that tuning catches this, assuming you do it right and set up the tune in an appropriately controlled situation - such as in an enclosed print volume.No, tuning assumes that the heater has some real control, that the bed cools when you remove power and that it heats when you apply power. What you have is a giant hunk of aluminum that does what it wants and only takes slight hints from the heater.
If you are not doing FFF then all my comments do not apply !
-
I could do that. And I've thought that it would fix my issue. It's not simple to do. But it would mean the edge temp of the bed isn't correct, and it's not addressing the underlying problem - I can't use a bed that's lagging. That should be possible, right? All beds lag to some extent. I'm just outside the tolerance of M303 as is.
-
Yes you would be trading one problem for another, but the new problem can be worked around more easily.
Personally, I think the heater control loop should be as tight as possible to the heat source. That allows for best control of the actual heater. In order to compensate for the lag time of heat saturation of the large plate you can simply add a wait time. The amount of time needed can be measured and should stay constant. That could be handled with a simple G4 dwell command in your startup gcode or preheat macro.
With RRF3 and the ability to use conditional gcode and sensor pins, you could use both thermistors in tandem and control the heater pad with one, and then wait to start the print when the plate is at the right temp.