跟思兼学Klipper(39.1)解决 QIDI Q2 主板散热风扇开机即转、待机不停的风扇噪音问题

Part1: 解决 QIDI Q2 主板散热风扇开机即转、待机不停的风扇噪音问题

前言

原创文章,转载引用请务必注明链接,水平有限,如有疏漏欢迎指正交流。

文章如有更新请访问 DFRobot 社区及 cnblogs 博客园,前者内容较全,后者排版及阅读体验更佳。

前段时间体验 QIDI Q2 3D 打印机时,发现其软件层面存在不少可优化空间,遂根据自己的经验,以及网友的一些改进方法,整理成文,分享给读者。原本计划待 Q2 相关优化方案测试验证完成后,以一键脚本的形式提供给大家使用,但近期家中添了宝宝,精力实在有限,故先将部分优化思路整理成文,希望能起到抛砖引玉的作用。需要说明的是,目前所有优化思路均未在 QIDI BOX 上测试(暂无该设备)。

在此,先向官方提出几点优化建议:

  1. 采用静音电源,确保无打印任务时室内环境的安静性;
  2. 提供 probe_air 调平器的 x86_64 二进制 so 文件,方便用户更换高性能上位机;
  3. 配备更具质感的灯带照明;
  4. 升级 Klipper 固件,以支持更精准的共振抑制测定及更高效的加速度计数据传输;
  5. 升级至 Python 11+ 版本,获取显著的性能提升。

本文核心内容为优化主板散热风扇的运行策略,从而降低打印机待机时的噪音。成文原因主要是看到B站 UP 主 石頭a强拖幻者 的视频:《【Qidi起迪Q2 配置教程系列】(一) 3D打印机Klipper配置,如何降低待机时的风扇噪音,主板风扇设置及使用详解》,但视频中有一个问题:Plus4 采用二合一主板(上位机与下位机集成一体),而 Q2 采用分体式设计(下位机位于机身背部,上位机位于打印舱内)。若沿用 Plus4 “以上位机 CPU 温度作为下位机散热风扇控制依据”的方案,就如同“靠品尝勺子里的汤来调整判断整锅汤的咸淡”,逻辑存在偏差。因此,本文将针对 Q2 的分体式结构,补充适配的风扇优化方案。

另外附上优化预告:

截至2025年10月22日,优化内容如下,具体见附件:

一、问题原因

我们接下来分析 ”主板散热风扇开机后持续运转且无法关闭” 的核心原因,重点关注两个核心配置文件:gcode_macro.cfg 与 printer.cfg。

首先查看主板散热风扇的原始定义:

[controller_fan board_fan]
pin:PA9
max_power:1.0
shutdown_speed:1.0
cycle_time:0.01
fan_speed: 1.0
stepper:stepper_z,stepper_z1

各选项意义如下:

控制器风扇(Controller fan)是一种关联式风扇,当所关联的加热器或电机处于活动状态时,风扇自动启动;当设备进入空闲超时(idle_timeout)状态后,风扇会自动停止,确保被监控组件完全冷却后不会因过热受损。其基础配置模板如下:

[controller_fan my_controller_fan]
# fan_speed: 1.0   # 加热器或电机启用时的风扇转速(取值范围 0.0~1.0)
# idle_timeout:    # 加热器/电机失能后风扇持续运行时间(单位:秒),默认 30 秒
# idle_speed:      # 空闲超时倒计时期间的风扇转速(取值范围 0.0~1.0),默认与 fan_speed 一致
# heater:          # 关联的加热器名称(可多个,用逗号分隔)
# stepper:         # 关联的电机名称(可多个,用逗号分隔)。

注:若未指定 heater 或 stepper 参数,默认关联“extruder 加热器”及所有电机;若指定多个加热器/电机名称,只要其中任意一个处于启用状态,风扇即会启动。

基于原始配置,此时主板散热风扇仅在打印头热端及双 Z 电机启动时工作。但结合 Q2 实际使用场景,由于其采用 24V 热床(主板 MOS 发热量大),且 XY 电机为主要发热部件,需将这两者也纳入风扇关联范围,理想配置应为:

[controller_fan board_fan]
heater: extruder, heater_bed

除配置缺失外,原始逻辑设计存在矛盾,核心问题出在 gcode_macro.cfg 的宏定义中:

# 开机启动宏
[delayed_gcode PRINTER_INIT]
initial_duration:0.2
gcode:SET_STEPPER_ENABLE STEPPER=stepper_z enable=1SET_STEPPER_ENABLE STEPPER=stepper_z1 enable=1BED_MESH_CLEAR      DETECT_INTERRUPTIONDISABLE_ALL_SENSOR# 关闭电机宏
[gcode_macro M84]
rename_existing:M84.1
gcode:M84.1SET_STEPPER_ENABLE STEPPER=stepper_x enable=0SET_STEPPER_ENABLE STEPPER=stepper_y enable=0SET_STEPPER_ENABLE STEPPER=stepper_z enable=1SET_STEPPER_ENABLE STEPPER=stepper_z1 enable=1SET_STEPPER_ENABLE STEPPER=extruder enable=0# 打印结束宏
[gcode_macro PRINT_END]
gcode:M400save_zoffsetSET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout}CLEAR_PAUSEM106 P2 S0M106 P0 S0M106 P3 S0DISABLE_BOX_HEATERM104 S0M140 S0M141 S0M220 S100M221 S100M84

正常逻辑预期

  • 打印开始时,电机与加热器启动,主板散热风扇同步工作;
  • 打印结束后,M84 宏关闭所有电机,TURN_OFF_HEATERS(或 M104、M140、M141)关闭所有加热器,风扇在 idle_timeout 设定时间内持续运行散热,超时后自动停止,从而实现待机静音。

Q2 实际逻辑偏差

  • 系统启动就绪后,即使没有打印任务处于待机状态,PRINTER_INIT 宏也会自动使能双 Z 电机,导致主板散热风扇立即启动;
  • 打印结束后,被覆写的 M84 宏仅关闭 X、Y、挤出机电机,保留双 Z 电机持续使能状态,使得风扇因关联电机未失能而持续运转,最终导致 “开机即转、待机不停” 的噪音问题。

二、优化方案

针对上述问题,核心优化思路为三点:1. 取消开机自动使能双 Z 电机;2. 扩展风扇关联范围,包含热床及 XY 电机;3. 保留打印前自动校准双侧 Z 轴等高功能(Z_TILT_ADJUST)。具体修改步骤如下:

修改 gcode_macro.cfg 文件

# 禁用开机自动使能双 Z 电机,简化开机初始化流程
[delayed_gcode PRINTER_INIT]
initial_duration:0.2
gcode:BED_MESH_CLEARDETECT_INTERRUPTIONDISABLE_ALL_SENSOR# 取消 M84 宏覆写,恢复原生 M84 关闭所有电机的功能
# [gcode_macro M84]
# rename_existing:M84.1
# gcode:
#   M84.1
# 	SET_STEPPER_ENABLE STEPPER=stepper_x enable=0
# 	SET_STEPPER_ENABLE STEPPER=stepper_y enable=0
# 	SET_STEPPER_ENABLE STEPPER=stepper_z enable=1
#   SET_STEPPER_ENABLE STEPPER=stepper_z1 enable=1
# 	SET_STEPPER_ENABLE STEPPER=extruder enable=0
  1. 修改 printer.cfg 文件(主板散热风扇配置):
# 主板散热风扇 (不包括上位机) | FAN3
[controller_fan board_fan]
pin: PA9
max_power:1.0
shutdown_speed: 1.0
cycle_time: 0.01
fan_speed: 1.0
heater: extruder,heater_bed

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/997599.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

251210今天居然被妹妹鼓励到了

妹妹初中的时候学习不太行,感觉比较迷糊。 今天突然和我讲获得了励志奖学金,6000元,还给了我2000,说支持我。 哇那一瞬间突然觉得小丫头长大了呢。 我也真的要努力加油,不要反而拖后腿啊。别成为伤仲永 话说,那某…

One Year XTOOL X100 PADS Update Service: Keep Your Tool Updated for EU/US Vehicles

Why Staying Updated Matters: The XTOOL X100 PADS One Year Update Service In today’s rapidly evolving automotive landscape, vehicle technology advances at an unprecedented pace. From electric powertrai…

[Flink] Flink 安装部署篇

1 概述:Flink 安装部署篇 1.0 前置知识 1.0.1 Flink 概述Apache Flink 概述 - 博客园/千千寰宇1.0.2 Flink Demo JobFlink Demo Job : WordCount - 博客园/千千寰宇1.1 Windows下安装 Flink 1.9.3 Step0 版本规划未来…

AI元人文构想:从统一描述语言到文明的操作系统

AI元人文构想:构建价值与技术的统一描述语言 引言:智能时代的认知分裂与元问题 我们正处在一个认知分裂的智能时代。技术系统以惊人效率优化着数据与算法,追求准确率、响应速度和能耗比的极致;而人类社会则为公平性…

2025辽宁法律服务律所TOP5评测!专业团队+权威认证榜单发布,全面守护您的合法权益 - 全局中转站

随着社会经济的不断发展,法律事务在各个领域的重要性日益凸显,市场对专业法律服务机构的需求持续增长。本榜单基于专业团队实力、业务覆盖范围、服务质量与口碑、荣誉资质及客户群体五大维度,结合行业调研与客户反馈…

US$94.05 One Year Update Service for Xtool D7 / D7S / D7W

Why Your Xtool D7 Series Needs a One-Year Update Service to Stay Competitive In today’s automotive landscape, diagnostic tools must evolve as rapidly as the vehicles they service. For European and Ame…

Unlock Full VOLVO Diagnostic Capabilities with VXDIAG Authorization License for VCX SE Multi Series

Overcoming VOLVO Diagnostics Challenges: The VXDIAG Authorization License Solution For European and American automotive repair shops and VOLVO owners, diagnosing modern Volvo vehicles can feel like sol…

洛谷P10953 逃不掉的路 题解 边双连通分量(缩点)+ LCA

题目链接:https://www.luogu.com.cn/problem/P10953 解题思路: 缩点之后是棵树,答案是两点对应的的点在树上的距离。 因为缩点之后的树上的每一条边都对应一座桥。 示例程序: #include <bits/stdc++.h> usin…

STM32-bootloader引导程序跳转机制笔记 - 教程

STM32-bootloader引导程序跳转机制笔记 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &q…

深入解析:心率变异性计算算法(HRV)

深入解析:心率变异性计算算法(HRV)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mona…

Unlock Super Remote Diagnosis on Launch Smartlink C with 1-Time Activation Card

Problem: Remote Diagnostics Barriers in European/American Auto Repair In the dynamic world of automotive repair, European and American mechanics and car owners alike face a common challenge: complex ve…

.gitignore 的匹配规则

.gitignore 是使用 Git 的日常开发时一个非常常见的文件。它负责告诉 Git 哪些文件或目录应当被忽略,不被加入版本控制。必须掌握。 基本规则.gitignore 文件对其所在目录以及所有子目录生效。每行一条规则:空行:无…

无法在Debian13 VSCode中使用fcitx5输入中文

根据 https://fcitx-im.org/wiki/Setup_Fcitx_5/zh-cn 编辑下面两个文件,然后重启电脑 vim /etc/environmentXMODIFIERS=@im=fcitx GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitxvim /etc/profileexport XMODIFIERS=@im=fc…

Debian 13安装rime中文输入法

删除无关输入法,并安装fcitx5-rime sudo apt purge --autoremove fcitx* fcitx5* ibus* sudo apt install fcitx5-rime图形设置,启用输入法 安装白霜拼音输入方案和词库。重启 systemctl reboot本文来自博客园,作者…

[LabVIEW随笔-10] -基础知识3

1、列表框1.1 创建列表框列表框同简单控件一样,有“新式”、“系统”和“古典”三种不同风格。列表框控件位于“列表与表格”控件选板中列表框的外观与一般的字符串控件比较相似,列表框控件内含的数据类型是 132,它…

0_C++的基础语法(上)

今天这个C++基础语法上面部分我们就假设你有c语言基础,不会去重复讲C语言一样的内容,然后只讲算法比赛中会用到的内容,不讲类,对象之类的内容。本次不讲STL,STL部分我会放在下一篇部分讲的。恋爱可以不谈,算法不能…

linux进线程

进线程 1. 什么是进程,什么是线程,区别在那?进程是系统资源分配的基本单位,线程是程序执行的最小单位,一个进程可以包含多个线程 进程有自己独立的地址空间,每新建一个进程,系统都会给进程分配独立的地址空间,…

Codeforces Round 1069 (Div. 2)

因为各种原因,最近几天的做题量与强度有所下降,时间不多了希望未来可以更加努力,以此为戒 B 这一套的难度感觉划分的不太对,这个B题反而比C题难得多 这个B题的思维还是挺巧妙的,显然是个构造,我竟然没有想出来 异…

Old-Java类集框架随笔

结构 Map ├── HashMap │ └── LinkedHashMap ├── SortedMap (接口) │ └── TreeMap └── Hashtable (遗留类,线程安全) Collection ├── List(ListIterator可用) │ ├── ArrayList │ ├…

第51天(中等题 数据结构)

打卡第五十一天 2道中等题题目:思路:前缀和+哈希表,同余定理 代码: int subarraysDivByK(vector<int>& nums, int k) {unordered_map<int,int> cnt; // 哈希表int ans = 0, s = 0; // 答…