- Solution
In theory that gcode shouldn't heat the bed any slower than just setting the target temperature initially - what it's basically saying is "wait for bed to reach 15°, wait for bed to reach 17°, wait for bed to reach 19°, etc." but it's not pausing when it waits (the difference may be if your printer uses a power curve to warm up the bed instead of just doing it linearly). Using hard-coded numbers like that in your startup gcode isn't a good idea in case you want to print at a different temperature, like the way you have it set up, if you only want the bed to be 60°, it'll warm up to 75° and immediately start printing before it cools - you need to use the R parameter instead of the S parameter if you want to wait for it to cool or heat (S only waits to heat, so since it's already above the target temperature it'll keep going immediately).
Unfortunately there isn't any gcode to control the rate at which the bed heats up. And while @jaysenodell means well and yes what they're suggesting can be done, OctoPrint is their solution to everything, and in many cases it's akin to using a sledgehammer to get a nail into wood (n.b. please don't try that).
I would try using startup gcode like this:
M190 S{material_bed_temperature_layer_0 * 0.1} ; Wait for bed to get to 10% of target G4 S3 ; Wait 3 seconds M190 S{material_bed_temperature_layer_0 * 0.2} ; Wait for bed to get to 20% of target G4 S3 ; Wait 3 seconds M190 S{material_bed_temperature_layer_0 * 0.3} ; Wait for bed to get to 30% of target G4 S3 ; Wait 3 seconds M190 S{material_bed_temperature_layer_0 * 0.4} ; Wait for bed to get to 40% of target G4 S3 ; Wait 3 seconds M190 S{material_bed_temperature_layer_0 * 0.5} ; Wait for bed to get to 50% of target G4 S3 ; Wait 3 seconds M190 S{material_bed_temperature_layer_0 * 0.6} ; Wait for bed to get to 60% of target G4 S3 ; Wait 3 seconds M190 S{material_bed_temperature_layer_0 * 0.7} ; Wait for bed to get to 70% of target G4 S3 ; Wait 3 seconds M190 S{material_bed_temperature_layer_0 * 0.8} ; Wait for bed to get to 80% of target G4 S3 ; Wait 3 seconds M190 S{material_bed_temperature_layer_0 * 0.9} ; Wait for bed to get to 90% of target G4 S3 ; Wait 3 seconds M190 S{material_bed_temperature_layer_0} ; Wait for bed to get to target
Okay that's still a lot of lines. But I get the feeling you're smart enough to figure out how to add/remove steps, change the target percentages or the wait times if you want it a bit more controlled than that. And yeah, those waits will add nearly 30 seconds to the process. But that's better the blowing the UPS in 30 seconds.
- 1
Recommended Posts
jaysenodell 18
Look into using octoprint to intercept the bed heat ups and replace with the right macro. There’s a section in the octo configuration screen for just this purpose.
a couple hints.
* read up on storing a variable for the temp so you can put in logic to differentiate between raising and lowering temps.
* simpler is better for the above… I’d lower just drop it.
* alternatively play with fire and create a hardware solution that switches between ups sourced power and direct line power for bed heating.
I like fires. You should probably not do that…
Link to post
Share on other sites