aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras/display/display.cfg
blob: 38b3d925cf2f45a338094f3d12b03e5aadcc22e6 (plain)
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
# This file defines the default layout of the printer's lcd display.


######################################################################
# Helper macros for showing common screen values
######################################################################

[display_template _heater_temperature]
param_heater_name: "extruder"
text:
  {% if param_heater_name in printer %}
    {% set heater = printer[param_heater_name] %}
    # Show glyph
    {% if param_heater_name == "heater_bed" %}
      {% if heater.target %}
        ~animated_bed~
      {% else %}
        ~bed~
      {% endif %}
    {% else %}
      ~extruder~
    {% endif %}
    # Show temperature
    { "%3.0f" % (heater.temperature,) }
    # Optionally show target
    {% if heater.target and (heater.temperature - heater.target)|abs > 2 %}
      ~right_arrow~
      { "%0.0f" % (heater.target,) }
    {% endif %}
    ~degrees~
  {% endif %}

[display_template _fan_speed]
text:
  {% if 'fan' in printer %}
    {% set speed = printer.fan.speed %}
    {% if speed %}
      ~animated_fan~
    {% else %}
      ~fan~
    {% endif %}
    { "{:>4.0%}".format(speed) }
  {% endif %}

[display_template _printing_time]
text:
  {% set ptime = printer.idle_timeout.printing_time %}
  {% set progress = printer.display_status.progress %}
  {% if progress >= 0.05 and ptime % 12 >= 6 %}
    # Periodically show time remaining
    {% set rtime = (ptime / progress) - ptime %}
    { "-%02d:%02d" % (rtime // (60 * 60), (rtime // 60) % 60) }
  {% else %}
    {% set msg = "%02d:%02d" % (ptime // (60 * 60), (ptime // 60) % 60) %}
    { "%6s" % (msg,) }
  {% endif %}

[display_template _print_status]
text:
  {% if printer.display_status.message %}
    { printer.display_status.message }
  {% elif printer.idle_timeout.printing_time or printer.gcode.busy %}
    {% set pos = printer.toolhead.position %}
    { "X%-4.0fY%-4.0fZ%-5.2f" % (pos.x, pos.y, pos.z) }
  {% else %}
    Ready
  {% endif %}


######################################################################
# Default 16x4 display
######################################################################

[display_data _default_16x4 extruder]
position: 0, 0
text:
  {% set active_extruder = printer.toolhead.extruder %}
  { render("_heater_temperature", param_heater_name=active_extruder) }

[display_data _default_16x4 fan]
position: 0, 10
text: { render("_fan_speed") }

[display_data _default_16x4 heater_bed]
position: 1, 0
text: { render("_heater_temperature", param_heater_name="heater_bed") }

[display_data _default_16x4 speed_factor]
position: 1, 10
text:
  ~feedrate~
  { "{:>4.0%}".format(printer.gcode.speed_factor) }

[display_data _default_16x4 print_progress]
position: 2, 0
text: { "{:^10.0%}".format(printer.display_status.progress) }
[display_data _default_16x4 progress_bar]
position: 2, 1 # Draw graphical progress bar after text is written
text: { draw_progress_bar(2, 0, 10, printer.display_status.progress) }

[display_data _default_16x4 printing_time]
position: 2, 10
text: { render("_printing_time") }

[display_data _default_16x4 print_status]
position: 3, 0
text: { render("_print_status") }


######################################################################
# Alternative 16x4 layout for multi-extruders
######################################################################

[display_data _multiextruder_16x4 extruder]
position: 0, 0
text: { render("_heater_temperature", param_heater_name="extruder") }

[display_data _multiextruder_16x4 fan]
position: 0, 10
text: { render("_fan_speed") }

[display_data _multiextruder_16x4 extruder1]
position: 1, 0
text: { render("_heater_temperature", param_heater_name="extruder1") }

[display_data _multiextruder_16x4 print_progress]
position: 1, 10
text: { "{:^6.0%}".format(printer.display_status.progress) }
[display_data _multiextruder_16x4 progress_bar]
position: 1, 11 # Draw graphical progress bar after text is written
text: { draw_progress_bar(1, 10, 6, printer.display_status.progress) }

[display_data _multiextruder_16x4 heater_bed]
position: 2, 0
text: { render("_heater_temperature", param_heater_name="heater_bed") }

[display_data _multiextruder_16x4 printing_time]
position: 2, 10
text: { render("_printing_time") }

[display_data _multiextruder_16x4 print_status]
position: 3, 0
text: { render("_print_status") }


######################################################################
# Default 20x4 display
######################################################################

[display_data _default_20x4 extruder]
position: 0, 0
text: { render("_heater_temperature", param_heater_name="extruder") }

[display_data _default_20x4 heater_bed]
position: 0, 10
text: { render("_heater_temperature", param_heater_name="heater_bed") }

[display_data _default_20x4 extruder1]
position: 1, 0
text: { render("_heater_temperature", param_heater_name="extruder1") }

[display_data _default_20x4 fan]
position: 1, 10
text:
  {% if 'fan' in printer %}
    { "Fan {:^4.0%}".format(printer.fan.speed) }
  {% endif %}

[display_data _default_20x4 speed_factor]
position: 2, 0
text:
  ~feedrate~
  { "{:^4.0%}".format(printer.gcode.speed_factor) }

[display_data _default_20x4 print_progress]
position: 2, 8
text:
  {% if 'virtual_sdcard' in printer and printer.virtual_sdcard.progress %}
    ~sd~
  {% else %}
    ~usb~
  {% endif %}
  { "{:^4.0%}".format(printer.display_status.progress) }

[display_data _default_20x4 printing_time]
position: 2, 14
text:
  {% set seconds = printer.idle_timeout.printing_time %}
  ~clock~
  { "%02d:%02d" % (seconds // (60 * 60), (seconds // 60) % 60) }

[display_data _default_20x4 print_status]
position: 3, 0
text: { render("_print_status") }