April 9, 2021
Description
Thanks to JohnOCFII for pointing an update to klipper that makes this process much easier recently. I will soon simply delete this page as it's not really needed anymore.
TUNING_TOWER COMMAND=“SET_HEATER_TEMPERATURE HEATER=extruder” PARAMETER=TARGET START=225 STEP_DELTA=5 STEP_HEIGHT=10 SKIP=1.4
https://www.klipper3d.org/G-Codes.html?h=tuning_tower
(updated thanks to gregsan)
Here is the command to do a heat tuning tower with Klipper firmware
TUNING_TOWER COMMAND='SET_HEATER_TEMPERATURE HEATER=extruder' PARAMETER=TARGET START= FACTOR= BAND=
the calculated final value follow this formula:
value = start + factor * ((floor(z_height / band) + .5) * band)
as per the docs: https://github.com/KevinOConnor/klipper/blob/master/docs/G-Codes.md
Preferably use a tower that doesn't have an extra foot creating an offset (here the basic foot I made is part of the first level)
###Info we need:
- model overall height: here exactly 50mm (so each level is 10mm)
- Number of discrete values or levels: with this model we obviously have 5
- Wanted start value, let say 230C
- increment per level I'm going to start with -10C (positive if you want temp to go up as layer go up)
- layer height: 0.2mm (you can use anything you want, overhang are better with smaller values)
## BAND calculation:
height at which the temperature will change.
we want it to change at 10mm
or [overall height] / [number of level]
So in our example: (50mm / 5 levels) = 10mm
BAND = 10mm
## FACTOR calculation:
That's the amount of change per millimeter, more specifically Degree Celsius per mm
So we can just take our [increment per level] ( so -10C ) divide it by [BAND]
FACTOR = -10C/10mm = -1 C/mm
## START value:
You would think this was our wanted start value, but the formula used by Klipper is meant to use the average value between two levels the "+ .5)" in the formula, it will add half an increment to it.
[wanted start] + ( [increment] / 2 )
Instead of starting at 230 it will start at (230+(-10/2)) = 225
So to compensate we will simply remove half of an increment to our wanted start
[wanted start] - ( [increment] / 2 )
230-(-10/2) = 235
So in this case the final command will be:
####TUNING_TOWER COMMAND='SET_HEATER_TEMPERATURE HEATER=extruder' PARAMETER=TARGET START=235 FACTOR=-1 BAND=10
bottom level will be 230C, next 220C, 210C, 200C, 190C
start your print and run the command right away
one gotcha to avoid is having a 1st layer temp different from the rest in your slicer, otherwise the first level will go back to your slicer setting. No need to restart the print, just set the temp back up again.
License:
Creative Commons - Attribution