Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP


Advanced temperature control. #551

ahmetcemturan opened this Issue · 4 comments

5 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...


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.


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


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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.