DIY RP2040 PWM 风扇控制器:完美集成 FanControl 实现静音
在一台搭载高端 Intel i9 处理器和 RTX 3080 Ti 显卡、采用自定义水冷回路(配备两个三联风扇冷排)的 PC 主机中,总共有 9 个风扇。即使降低转速,在安静的公寓环境中,噪音依然明显。解决方案?动态关闭不需要的光扇:空闲时仅保留 2 个进风风扇和 1 个出风风扇,其余风扇完全断电。
市面上的现成控制器(如联力的 4 端口 PWM 集线器)无法让风扇完全停转,而纯软件方案又不够稳定。最终方案:基于 RP2040(Raspberry Pi Pico)定制控制器,实现对 PWM 信号和电源的全面控制。
平台选择与初版原型
ESP32 与 RP2040 之争:ESP32 更便宜,但配置较麻烦;RP2040 更易上手,且拥有更多 PWM 引脚。首个最小可行产品(MVP)基于开源电路图在面包板上搭建——风扇转速以百分比形式硬编码在程序中,每次调整都需重新烧录固件。

扩展到 4 个通道意味着需要增加对 CPU、GPU 和硬盘温度的监控。整合各厂商的驱动程序令人头疼。
通过插件集成 FanControl
最终选择了 FanControl:虽然是闭源软件,但对插件支持友好。通过 USB(RP2040 的 COM 端口)使用 JSON 进行通信。
- 握手协议:
{"action":"hellow"}—— 双向响应确认连接建立。 - 查询指令:
{"action":"fans"}、{"action":"temperature"}—— 返回包含 RPM 数据的端口列表。
FanControl 根据这些数据生成转速曲线。自动扫描所有 COM 端口的功能运行稳定,即使存在其他设备的潜在冲突也能正常工作。

硬件构建与风扇完全停转
要实现风扇完全停转,必须切断电源——仅靠 PWM 信号无法做到。在一位本地专家的帮助下,设计了使用晶体管进行电源开关的原型。PCB 板(20 块)在海外制造,元件从速卖通(AliExpress)采购。
- 焊接:第一块花了好几个小时,后来每天能焊 5 块。
- 测试:曾在机箱上发生短路惊险一幕后,改为在独立工作台上进行测试。
- 外壳:3D 打印制成,由于 USB 连接的复杂性,放弃了 Wi-Fi 模块化设计。

自 2023 年以来的元件短缺问题,意味着需要不断寻找替代品。
应用场景与改进
在 Avito(俄罗斯二手交易平台)上的销售经历揭示了真实的应用场景:
- 矿机: standalone 模式,利用水流传感器,转速曲线存储在控制器本地。
- 模组改装:白色机箱搭配 RGB 灯效。
- 服务器:独立供电,通过 COM 端口运行 UNIX 脚本控制。
- 多控制器支持:FanControl 支持同时连接多个控制器。
- 笔记本电脑:当与基站失去连接(ping 不通)时自动关闭。
曾有一个单元到货即损(DOA),在首次启动时变砖卡在引导加载程序中——随后无缝更换。
关键总结
- 通过晶体管电源开关实现风扇完全停转。
- 通过 COM 端口使用 JSON 协议集成 FanControl。
- 在 PWM 简易性和调试方面,RP2040 优于 ESP32。
- 具备无需宿主 PC 的矿机独立运行模式。
- 可扩展支持多个控制器。
— Editorial Team
暂无评论。