aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2020-03-04 19:08:01 -0500
committerKevin O'Connor <kevin@koconnor.net>2020-03-13 21:46:36 -0400
commitf2dd4b001db3055632dce7ac6706a27ae571337e (patch)
treec195e201f57459e78088df3b0cb0a7e4a40f6a73
parent0ba83c5b04dd6b4e7a32ab40b7f4fb06ab85cd7e (diff)
downloadkutter-f2dd4b001db3055632dce7ac6706a27ae571337e.tar.gz
kutter-f2dd4b001db3055632dce7ac6706a27ae571337e.tar.xz
kutter-f2dd4b001db3055632dce7ac6706a27ae571337e.zip
display: Use a separate display group for 16x4 multiple extruders
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r--klippy/extras/display/display.cfg130
1 files changed, 73 insertions, 57 deletions
diff --git a/klippy/extras/display/display.cfg b/klippy/extras/display/display.cfg
index cf694c9f..cac49319 100644
--- a/klippy/extras/display/display.cfg
+++ b/klippy/extras/display/display.cfg
@@ -2,7 +2,7 @@
######################################################################
-# Display templates
+# Helper macros for showing common screen values
######################################################################
[display_template _heater_temperature]
@@ -30,6 +30,31 @@ text:
~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 %}
@@ -52,77 +77,68 @@ text: { render("_heater_temperature", param_heater_name="extruder") }
[display_data _default_16x4 fan]
position: 0, 10
-text:
- {% if 'fan' in printer %}
- {% set speed = printer.fan.speed %}
- {% if speed %}
- ~animated_fan~
- {% else %}
- ~fan~
- {% endif %}
- { "{:>4.0%}".format(speed) }
- {% endif %}
+text: { render("_fan_speed") }
-[display_data _default_16x4 row1col0]
+[display_data _default_16x4 heater_bed]
position: 1, 0
-text:
- {% if 'extruder1' in printer %}
- # A multi-extruder setup uses an alternate screen layout
- { render("_heater_temperature", param_heater_name="extruder1") }
- {% else %}
- { render("_heater_temperature", param_heater_name="heater_bed") }
- {% endif %}
+text: { render("_heater_temperature", param_heater_name="heater_bed") }
-[display_data _default_16x4 ro1col10]
+[display_data _default_16x4 speed_factor]
position: 1, 10
text:
- {% if 'extruder1' in printer %}
- # A multi-extruder setup uses an alternate screen layout
- {% set progress = printer.display_status.progress %}
- { "{:^6.0%}".format(progress) }
- {% else %}
- ~feedrate~
- { "{:>4.0%}".format(printer.gcode.speed_factor) }
- {% endif %}
+ ~feedrate~
+ { "{:>4.0%}".format(printer.gcode.speed_factor) }
-[display_data _default_16x4 row2col0]
+[display_data _default_16x4 print_progress]
position: 2, 0
-text:
- {% if 'extruder1' in printer %}
- # A multi-extruder setup uses an alternate screen layout
- { render("_heater_temperature", param_heater_name="heater_bed") }
- {% else %}
- {% set progress = printer.display_status.progress %}
- { "{:^10.0%}".format(progress) }
- {% endif %}
+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:
- {% set ptime = printer.idle_timeout.printing_time %}
- {% set progress = printer.display_status.progress %}
- {% if progress >= 0.05 and ptime % 12 >= 6 %}
- {% 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 %}
+text: { render("_printing_time") }
[display_data _default_16x4 print_status]
position: 3, 0
text: { render("_print_status") }
-[display_data _default_16x4 progress_bar]
-position: 3, 16 # Render graphical progress bar after text is written
-text:
- {% set progress = printer.display_status.progress %}
- {% if 'extruder1' in printer %}
- # A multi-extruder setup uses an alternate screen layout
- { draw_progress_bar(1, 10, 6, progress) }
- {% else %}
- { draw_progress_bar(2, 0, 10, progress) }
- {% endif %}
+
+######################################################################
+# 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") }
######################################################################