-
-
Save eddwatts/eb7c40dcf5eaf6c7441161b5bbe986db to your computer and use it in GitHub Desktop.
Klipper macros for drying filament using the heated build plate of a 3D printer
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; An idea for using the heated bed of a 3D printer as a filament dryer. | |
; Adds GCODE command: START_DRYER TIME=T TEMPERATURE=C | |
; (T is time in seconds, C is bed temperature in Celsuis) | |
; To stop drying early, use STOP_DRYER. | |
; Also defined some utility macros: DRY_PLA, DRY_PETG and DRY_ABS. | |
; Edit these with your own preferred defaults. | |
[gcode_macro START_DRYER] | |
description: Start the heated bed filament dryer. | |
gcode: | |
{% set ChamberTemperature = params.CHAMBER | default(25.0) | float %} | |
{% set BedTemperature = params.TEMPERATURE | default(50.0) | float %} | |
{% set DryTime = params.TIME | default(14400) | int %} | |
; turn the heaters on, however you do that. | |
M140 S{BedTemperature} ; Sets the print bed temperature without waiting. | |
M141 S{ChamberTemperature} ; [OPTIONAL] Sets the enclosure temperature. | |
; then finally, | |
SET_GCODE_VARIABLE MACRO=DRYER_STATUS VARIABLE=time_remaining VALUE={DryTime} | |
SET_GCODE_VARIABLE MACRO=DRYER_STATUS VARIABLE=bed_temperature VALUE={BedTemperature} | |
SET_GCODE_VARIABLE MACRO=DRYER_STATUS VARIABLE=chamber_temperature VALUE={ChamberTemperature} | |
UPDATE_DELAYED_GCODE ID=DRYER_TIMER DURATION=1 | |
[gcode_macro STOP_DRYER] | |
gcode: | |
; Turn off heaters etc. here | |
M140 S0 ; Disable bed heater | |
M141 S0 ; [OPTIONAL] Disable enclosure heater/fan | |
SET_GCODE_VARIABLE MACRO=DRYER_STATUS VARIABLE=time_remaining VALUE=0 | |
UPDATE_DELAYED_GCODE ID=DRYER_TIMER DURATION=0 ; Stop the timer. | |
M117 Drying Stopped | |
[gcode_macro DRYER_STATUS] | |
variable_time_remaining: 0 | |
variable_bed_temperature: 0 | |
variable_chamber_temperature: 0 | |
gcode: | |
{% if time_remaining > 0 %} | |
M140 S{bed_temperature} ; Reset bed temperature (prevents timeout) | |
SET_GCODE_VARIABLE MACRO=DRYER_STATUS VARIABLE=time_remaining VALUE={time_remaining - 1} | |
M117 Drying {time_remaining} | |
{% else %} | |
STOP_DRYER | |
{% endif %} | |
[delayed_gcode DRYER_TIMER] | |
gcode: | |
UPDATE_DELAYED_GCODE ID=DRYER_TIMER DURATION=1 | |
DRYER_STATUS | |
[gcode_macro DRY_PLA] | |
gcode: | |
START_DRYER TEMPERATURE=50 CHAMBER=25 TIME=14400 | |
[gcode_macro DRY_PETG] | |
gcode: | |
START_DRYER TEMPERATURE=55 CHAMBER=30 TIME=18000 | |
[gcode_macro DRY_ABS] | |
gcode: | |
START_DRYER TEMPERATURE=65 CHAMBER=40 TIME=14400 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment