修改Klipper LCD的布局-添加腔室温度

显示屏添加腔室温度

本指南将引导你修改Klipper LCD的布局,以如下所示显示箱体温度:

非常感谢aMpeX插入Klipper PR使其变得如此简单!

使用说明

首先更新Klipper。本指南基于20206月8日合并的功能。

0. [Optional].cfg为与LCD相关的所有事物创建一个新文件

尽管您可以跳过此步骤,但是创建面向目标的.cfg文件使您可以将所有相关的配置项,宏等保存在一个易于查找的位置,并避免您printer.cfg变得混乱和笨拙。

  1. lcd_tweaks.cfg在与目录相同的目录中创建一个新文件printer.cfg
  2. 将该文件链接到您的配置,方法是添加[include lcd_tweaks.cfg]printer.cfg

1.定义箱体温度探针

有几种方法可以做到这一点。我没有与排气扇相互连接的温度探头,所以探头看起来像这样。

printer.cfg

[temperature_sensor chamber]
sensor_type: NTC 100K beta 3950
sensor_pin: z:P0.24
min_temp: 0
max_temp: 100
gcode_id: C

如果已经定义了腔室传感器或链接到腔室的温度风扇,请记下完整的配置部分名称。

2.定义室字形/图标

在这里,您告诉Klipper您想要chamber图标的外观。

将以下部分添加到lcd_tweaks.cfg

[display_glyph chamber]
data:
  ................
  ****************
  *....*....*....*
  *....*....*....*
  *....******....*
  *..............*
  *..............*
  *.....****.....*
  *.***.*..*.***.*
  *.....****.....*
  *......**......*
  *..............*
  *.************.*
  *...*......*...*
  ****************
  ................

可以通过这种方式定义多个自定义字形/图标。我们还将为串行状态显示行定义Voron徽标标志符号:

[display_glyph voron]
data:
 ......***.......
 ....*******.....
 ...*********....
 .*************..
 *****..***..***.
 ****..***..****.
 ***..***..*****.
 **..***..******.
 ******..***..**.
 *****..***..***.
 ****..***..****.
 ***..***..*****.
 .*************..
 ...*********....
 ....*******.....
 ......***.......

3.定义显示布局和数据字段

display_data通过将以下内容添加到您的帐户中,定义自定义“ Voron”组lcd_tweaks.cfg

[display_template _vheater_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 %}
        {% set frame = (printer.toolhead.estimated_print_time|int % 2) + 1 %}
        ~bed_heat{frame}~
      {% 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_data __voron_display extruder]
position: 0, 0
text: { render("_vheater_temperature", param_heater_name="extruder") }

[display_data __voron_display fan]
position: 0, 10
text:
  {% if 'fan' in printer %}
    {% set speed = printer.fan.speed %}
    {% if speed %}
      {% set frame = (printer.toolhead.estimated_print_time|int % 2) + 1 %}
      ~fan{frame}~
    {% else %}
      ~fan1~
    {% endif %}
    { "{:>4.0%}".format(speed) }
  {% endif %}

[display_data __voron_display bed]
position: 1, 0
text: { render("_vheater_temperature", param_heater_name="heater_bed") }

[display_data __voron_display progress_text]
position: 1, 10
text:
  {% set progress = printer.display_status.progress %}
  { "{:^6.0%}".format(progress) }
  
[display_data __voron_display progress_text2]
position: 1, 10
text:
  {% set progress = printer.display_status.progress %}
  { draw_progress_bar(1, 10, 6, progress) }

[display_data __voron_display printing_time]
position: 2, 10
text:
  {% set ptime = printer.idle_timeout.printing_time %}
  { "%02d:%02d" % (ptime // (60 * 60), (ptime // 60) % 60) }

#########################################################
# This section defines the actual chamber temp. field,
# replace 'temperature_sensor chamber' as necessary
#########################################################
[display_data __voron_display chamber]
position: 2, 0
text:
  {% set chamber = printer['temperature_sensor chamber'] %}
	~chamber~
	{ "%3.0f" % (chamber.temperature,) }
	~degrees~

[display_data __voron_display print_status]
position: 3, 0
text: 
  {% if printer.display_status.message %}
    { printer.display_status.message }
  {% elif printer.idle_timeout.printing_time %}
    {% set pos = printer.toolhead.position %}
    { "X%-4.0fY%-4.0fZ%-5.2f" % (pos.x, pos.y, pos.z) }
  {% else %}
    { "VX.xxx " }
	~voron~
  {% endif %}

重要说明 关于使用说明:temperature_fan需要['temperature_sensor chamber']在倒数第二个部分中将替换为['tempaure_fan chamber'],或者将您实际配置为config部分的内容替换为。同样,如果您将传感器命名为“ chamber”以外的其他名称。

通过将以下设置添加到您的[Display]部分来告诉Klipper您要使用我们刚刚定义的组printer.cfg

display_group: __voron_display

最后,保存更改您对制作printer.cfglcd_tweaks.cfg和执行固件重新启动。

4. [Optional]启用试验箱温度。在OctoPrint中显示

要在OctoPrint的温度图上显示箱体温度:

Octoprint Settings-> Printer Profiles-> Edit Profile(铅笔图标)->中Print bed & build volume,勾选Heated Chamber方框。  

完成!

愿上帝保佑,你应该能在显示屏上看到室温了!!

2
封面图
  • 评论3

    请先

    1. 愿上帝保佑 :biggrin:
      望海的猫咪12-29
    没有账号? 注册  忘记密码?

    社交账号快速登录