Advanced temperature control. #551

ahmetcemturan opened this Issue Jul 22, 2012 · 7 comments


None yet

7 participants


There is a feature called autotemp in Marlin. I played around with it and got very good results, especially with high speed prints.
What it does is to check the buffer and see wheteher there is a big flow of filament coming up and increase the temperature...

The disadvantage of having it controlled by the FW is that it only sees whats in the buffer and that can be very little.. :)

The slic3r could do this much better... If You know how fast your extruder reacts to temperature changes (as in if you increase temperature 5c how many cc's of plastik do you extrude in that time..)

You could then place temperatur commands to into the Gcode depending on upcoming flowrate and your nozzle behaviour...

eras commented Jul 29, 2012

I think direct temperature adjustment commands would require a lot of information in Slic3r and would likely mess with the current PID controller operation in Marlin.

One alternative solution would be to have some commands in Marlin that would allow Slic3r to tell more information about the print to it. Such as "within next y seconds (or millimeters?) x mm of filament will be extruded". These kind of commands could be inserted during the creation of g-code or possibly during post processing and Marlin would be able to use those predictions to adjust the flow similarly as it does now with autotemp.


It's not difficult to implement an algorithm for required temp prediction.

I suggest a simple solution.
You need at least five new parameters:

  1. Specific heat of the filament
  2. Specific weight of the filament
  3. Delay - the response delay of the heat transfer from the time you set the resistor voltage until the filament goes to the hot-end .
  4. power efficiency - the percentage of the resistor heat absorbed by the filament.
  5. Ambient temperature. An extra thermometer may be needed, but I think it is safe to use the start-up temp as the ambient temperature.

Then you need to calculate the feed_per_second.

The required wattage needed to heat the filament at the requirement temperature is (specific weight * feed_per_second/1second) x Specific Heat x Temperature rise x 1second.

There is no need for a new PID controller.

jfpion commented Nov 20, 2012

may be it could be easier to see with the marlin dev team to increase the marlin buffer ?

alexrj commented Jan 11, 2014

This can be implemented as a post-processing script, since all needed information can be easily extracted from the file itself or comes from user anyway.


Going to close this, as it is fixable with a post-process script. If someone wants to write one and share it I'll add it, but I don't think this needs to go into the main slic3r UI either.

@lordofhyphens lordofhyphens added this to the Pull Request or Bust milestone Jun 2, 2016

Reopening issue to make it easily visible to someone looking at the PR milestone.

@lordofhyphens lordofhyphens reopened this Jun 2, 2016

Slic3r, knowing the layer time, has more knowledge about temperature requirements than does firmware. Just as the fan cooling is adjusted by layer time, it would be great to adjust temperature as well. Best process would be to vary cooling, extrusion temperature, and bed temperature from calculations of thermal mass and total energy deposition.

Ideally, the entire model should remain at a constant temperature throughout printing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment