-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbed_fans.cfg
121 lines (106 loc) · 3.36 KB
/
bed_fans.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
## This is a simple include for the Bedfans. To use it with your printer, edit
## the pin definition in line 16 so it matches your printer.
## What you get:
## - a generic fan "Bedfans" which is adjustable in GCODE and in Mainsail/Fluidd
## - Commands in your 12864-controller to turn the fan on/off or adjust in 10%-steps
## - a Macro to turn the fan off some time after the print.
##
## Slicer integration: Add "SET_FAN_SPEED FAN=Bedfans SPEED=1" in your start-macro
## (or less fan depending on your needs, like SPEED=0.8)
## in your end print code, add "UPDATE_DELAYED_GCODE ID=bedfans_off DURATION=180"
## this keeps your Bedfans running for 180s after the print finishes to clean the chamber a bit more.
[fan_generic Bedfans]
## Bedfans - FAN5 on Octopus
## Adjust if you use a different board or a different terminal.
pin: P2.5
max_power: 1
kick_start_time: 0.100
off_below: 0.1 ; no airflow below 10%
[menu __main __control __bedfansonoff]
type: command
name: Bedfans {'ON' if printer['fan_generic Bedfans'].speed > 0 else 'OFF'}
enable: {'fan_generic Bedfans' in printer}
gcode:
TOGGLE_BEDFANS
[menu __main __control __bedfansspeed]
type: input
enable: {'fan_generic Bedfans' in printer}
name: Bedfans %: {'%3d' % (menu.input*100)}%
input: {printer["fan_generic Bedfans"].speed}
input_min: 0
input_max: 1
input_step: 0.1
gcode:
SET_FAN_SPEED FAN=Bedfans SPEED={menu.input}
[delayed_gcode bedfans_off]
gcode:
SET_FAN_SPEED FAN=Bedfans SPEED=0
################ Enable/disable #####################
[gcode_macro BEDFANS_ON]
gcode:
RESPOND TYPE=echo MSG='BEDFANS_ON'
UPDATE_DELAYED_GCODE ID=BEDFAN_LOOP DURATION=1
[gcode_macro BEDFANS_OFF]
gcode:
RESPOND TYPE=echo MSG='BEDFANS_OFF'
UPDATE_DELAYED_GCODE ID=BEDFAN_LOOP DURATION=0 # Cancel bed fan loop if it's running
SET_FAN_SPEED FAN=Bedfans SPEED=0
[gcode_macro TOGGLE_BEDFANS]
gcode:
{% if printer['fan_generic Bedfans'].speed > 0 %}
BEDFANS_OFF
{% else %}
BEDFANS_ON
{% endif %}
################ Monitoring loop #####################
[delayed_gcode BEDFAN_LOOP]
gcode:
{% set CHAMBER = printer['temperature_sensor chamber'].temperature %}
{% set fanspeed = 0.0 %}
{% if CHAMBER >= 30 %}
{% set fanspeed = 0.175 %}
{% endif %}
{% if CHAMBER >= 35 %}
{% set fanspeed = 0.2 %}
{% endif %}
{% if CHAMBER >= 40 %}
{% set fanspeed = 0.25 %}
{% endif %}
{% if CHAMBER >= 45 %}
{% set fanspeed = 0.5 %}
{% endif %}
{% if CHAMBER >= 48 %}
{% set fanspeed = 0.6 %}
{% endif %}
{% if CHAMBER >= 50 %}
{% set fanspeed = 0.7 %}
{% endif %}
{% if CHAMBER >= 52 %}
{% set fanspeed = 0.8 %}
{% endif %}
{% if CHAMBER >= 53 %}
{% set fanspeed = 0.7 %}
{% endif %}
{% if CHAMBER >= 54 %}
{% set fanspeed = 0.6 %}
{% endif %}
{% if CHAMBER >= 55 %}
{% set fanspeed = 0.5 %}
{% endif %}
{% if CHAMBER >= 56 %}
{% set fanspeed = 0.4 %}
{% endif %}
{% if CHAMBER >= 57 %}
{% set fanspeed = 0.35 %}
{% endif %}
{% if CHAMBER >= 58 %}
{% set fanspeed = 0.3 %}
{% endif %}
{% if CHAMBER >= 59 %}
{% set fanspeed = 0.2 %}
{% endif %}
{% if CHAMBER >= 63 %}
{% set fanspeed = 0.1 %}
{% endif %}
SET_FAN_SPEED FAN=Bedfans SPEED={fanspeed}
UPDATE_DELAYED_GCODE ID=BEDFAN_LOOP DURATION=10