SYS NOMINAL

CHANNEL 01 / ANIM

Anim

Knowledge Bureau · 嵌入式系统与技术档案

DOC NO. ANIM-20250505-C7 TRANSMISSION REV 4.5.1 PAGE 01 / 01

TRANSMISSION ANIM-20250505-C7

智能散热小桌板

TCV3 4.5.1 使用与更新:NASA 朋克主题、关机散热、固件 OTA,以及一套从 Windows 到 CW32L010 的桌面散热链路。

CONTENTS / 目录7 LABELS

一句话:电脑热了,小桌板自己把风扇开大;电脑关机,它还能按设定继续吹一会儿。

当前桌面端 4.5.1.0,参考固件 1.2.4 / 协议 1.1 / 引导程序 0.1.4。

固件侧的实现细节,见 4KB RAM 里的三路风扇。

智能散热小桌板是一套软硬件结合的桌面散热系统。Windows 端 TCV3 读取 CPU / GPU 温度,通过 BLE 把风扇档位发给桌板;桌板上的 CW32L010 控制三路 12V 风扇。

它不追求“把风扇转起来”这么简单。现在这一版里,真正占分量的东西是:温度策略、断电后的独立倒计时、蓝牙状态回传,以及一条能安全把固件送进 20KB 应用区的 OTA 链路。

当前版本与关键能力

层 当前版本 说明
TCV3 桌面端 4.5.1.0 本文对应的上位机版本
下位机固件 1.2.4 风扇、关机散热、状态回传
通信协议 1.1 模式指令、版本查询、关机散热
引导程序 0.1.4 负责 OTA 写入、校验与启动闸门
能力 现在的状态
温度监测 Intel / AMD CPU + NVIDIA GPU;读取失败时显示占位,不崩
风扇控制 自动 / 静音 / 全速三档;自动模式按温度平滑调速
关机散热 1–10 分钟;倒计时由下位机独立完成
固件升级 关于页 OTA;逐帧传输 + 双道校验
界面 Qt Quick / QML;默认风格 + NASA 朋克风格
桌面集成 系统托盘、开机自启、系统通知
蓝牙 WinRT BLE,DX-BT24-T 透传模块

成品与硬件

小桌板成品

温度控制板

组件 型号
主控 CW32L010F8(Cortex-M0+,8MHz,4KB RAM / 64KB Flash)
蓝牙 DX-BT24-T 透传模块
风扇 12V 直流风扇(利民 TL-C12)
上位机 Windows 10 / 11 x64,C++20 + Qt 6.11.1 / QML

系统要求

要求 说明
操作系统 Windows 10 / 11 64-bit
运行库 VC++ Redistributable x64
CPU 温度 Intel 需要 PawnIO 驱动;AMD 需要 AMDRyzenMaster 驱动
GPU 温度 NVIDIA,通过随程序释放的 nv_dll
权限 程序需要管理员权限读取温度传感器,首次启动会触发 UAC
硬件 已烧录固件的桌板 + 已配对好的蓝牙模块

安装

  1. 打开 GitHub Releases,下载最新的 TemperatureControlV3_v4.5.1.0_Setup.exe 或更新版本。
  2. 运行安装包,按提示完成安装;安装和启动都需要管理员权限。
  3. 首次启动会释放运行时 DLL、检查驱动。Intel 平台按提示安装 PawnIO;AMD 平台按提示部署 RyzenMaster 驱动;NVIDIA 不需要额外安装。
  4. 先在 Windows 设置里把桌板的 BT24-T 配对,再启动 TCV3。首次配对必须在系统里完成,程序只负责连接。
  5. 打开程序的「关于」页,确认桌面端版本与下位机固件版本。

从旧版本升级时建议直接覆盖安装;配置会保留。如果安装后界面起不来,先确认不是 4.5.0 的安装包——那一版曾漏掉 QtQuick.Shapes,4.5.1 已修复。

连接蓝牙

  1. 桌板上电,Windows 蓝牙里找到 BT24-T 并完成配对。
  2. 启动 TCV3,程序会自动扫描并连接;连接成功后首页会显示“蓝牙连接”状态。
  3. 如果连接失败,点首页右侧的「重连」;仍然失败时,先关闭手机或其他主机上占用该设备的连接。
  4. 连接后程序会订阅 FFE1 特征值,并自动查询下位机固件版本;版本回传会显示在「关于」页。

服务与特征:

项 值
设备名 BT24-T
Service UUID FFE0
Characteristic UUID FFE1

使用

首页

  • 实时温度:CPU、GPU 两张卡片。超过警告阈值后读数与图标会变色;失败时显示占位,不会让界面卡住。
  • 风扇模式:自动、静音、全速。自动模式由温度驱动;静音固定低转速;全速固定满转。切换模式会同时取消正在进行的关机散热。
  • 数据发送延时:1–10 秒,点「应用」生效。温度不需要每秒上报一次,延时越长,BLE 写入越少。
  • 关机散热:选择 1–10 分钟,点「开始散热」,风扇立即满速,倒计时由桌板自己完成。

关机散热

这个功能解决的是一个很具体的场景:用户点了关机散热之后,Windows 开始关机,TCV3 退出,蓝牙断开——但风扇不能立刻停。

所以上位机只负责下发一次指令,倒计时在 MCU 里走:

  • 断电、退出程序、蓝牙断开,都不会中断;
  • 结束后下位机回 FIN,上位机自动切回自动模式;
  • 中途重新选择风扇模式,会取消散热(回 CAN);
  • 成功结束或指令下发失败,会弹系统通知;窗口最小化到托盘也可见;
  • 需要下位机固件支持(1.2.0 起);版本过旧时「关于」页会提示。

界面当前开放 1–10 分钟;下位机协议上限是 60 分钟,但日常使用没有把更长的档位放出来。

设置

  • 主题模式:跟随系统 / 浅色 / 深色。
  • 风格:默认 / NASA 朋克。风格和明暗是两个独立维度——选 NASA 后,亮暗仍由主题模式决定。
  • 背景材质:云母 / 亚克力 / 无。Windows 11 22H2 及以上效果最好,远程桌面或虚拟机可能自动降级。
  • 开机自启:写入当前用户的自启动项。
  • 系统通知:关机散热结束、指令下发失败时在右下角提醒。
  • 重置设置:删除配置文件并重启;适合排查配置问题。

关于页与 OTA

「关于」页集中放了三类信息:

  • 桌面端版本、下位机固件版本与协议版本;
  • 更新日志;
  • 支持与文档、固件升级入口。

固件升级(OTA)在 4.4.0.0 加入。流程是:应用受理升级请求 → 软复位 → 常驻引导程序接管 → 分帧传输 → 逐帧 CRC16 + 整镜像 CRC32 校验 → 激活。

升级时注意:

  1. 保持桌板供电和蓝牙连接,不要中途退出程序;
  2. 选择与硬件匹配的固件文件;
  3. 下位机必须已经烧录引导程序,应用运行在 0x5000;没有引导程序时 OTA 不会工作;
  4. 传输期间界面会显示阶段与百分比,可以取消;但进入“等待复位/激活”阶段后再取消,设备可能仍会进入升级模式,这是安全的,但需要重新连接确认状态;
  5. 升级完成后程序会自动重新查询固件版本,不需要手动重连。

OTA 的协议、暂存区、启动闸门与失败恢复设计,见 4KB RAM 里的三路风扇。

NASA 朋克主题

4.5.0.0 加入了 NASA 朋克风格:烤漆白底、NASA 蓝、金属灰细边、方角、深色仪表板标题栏、文档控制条与蓝图网格。它和本站现在的视觉语言是同一套。

几点实际使用上的说明:

  • NASA 亮 / NASA 暗不是两个独立模式。在「设置 → 风格」选 NASA,再用「主题模式」决定跟随系统、浅色或深色。
  • 字体按已安装才用:拉丁使用 Nasalization,中文使用 MapleMono。没有安装时自动回退系统字体,不影响功能。
  • 4.5.1.0 修正了字体族名识别:之前把族名写成 Nasalization Rg,而实际族名是 Nasalization,导致 NASA 主题的 Nasalization 一直没有真正生效;现在会从已安装字体里按候选名解析。
  • 温度与蓝牙图标已经改为 QML 矢量绘制,报警态直接换描边颜色,不再依赖位图着色。

常见问题

蓝牙搜索不到桌板 / 连接失败

  • 确认桌板已上电,BT24-T 在范围内;
  • 先在 Windows 蓝牙设置里完成配对,再打开 TCV3;
  • 检查是否被手机或其他电脑占用;
  • 仍失败时重启桌板电源,再点「重连」;
  • 若提示服务或特征值错误,确认设备使用 FFE0 / FFE1。

温度显示“–”

  • Intel:确认 PawnIO 驱动已安装,程序以管理员权限运行;
  • AMD:确认 RyzenMaster 驱动部署成功,系统为 Windows 10 及以上;
  • NVIDIA:nv_dll 会随程序释放,不需要单独安装;
  • 偶发读取失败会自动恢复,不必反复重启。

风扇不转或不受控

  1. 确认首页蓝牙状态为已连接;
  2. 确认处于「自动」或手动模式,而不是正在关机散热;
  3. 检查「数据发送延时」是否已点「应用」;
  4. 切换一次模式,确认下位机没有停在旧的关机散热收尾状态。

点击关机散热没有反应

  • 多数是下位机固件过旧,不支持关机散热指令;
  • 连接后在「关于」页看固件版本,低于 1.2.0 会提示;
  • 未连接、正在连接时程序会提示指令没有发出,不会静默失败;
  • 需要先升级固件,再试。

OTA 失败

  • 确认下位机有引导程序,且应用运行在 0x5000;
  • 确认固件文件匹配当前硬件,不是错误项目的镜像;
  • 保持蓝牙连接,失败后可按提示重试;
  • 如果进入升级模式后无法退出,重新上电通常会回到引导程序或旧应用,具体取决于引导程序状态。

NASA 风格字体不对

  • NASA 风格优先使用系统已安装的 Nasalization 与 MapleMono;
  • 没有安装时会回退,不会报错,但字形会变成系统字体;
  • 安装字体后重启 TCV3 再切换风格。

安装后界面起不来

优先使用 4.5.1.0 或更新版本。4.5.0 的安装包曾因 QtQuick.Shapes 被错误排除,导致安装版启动失败;便携版不受影响。当前版本已在打包脚本里加入 QML import 与 Excludes 的交叉校验。

技术栈

技术 说明
语言 / 框架 C++20 + Qt 6.11.1(QML / Quick / Widgets / Concurrent / Network / Svg)
界面 QML 拆分组件,AppTheme 单例统一色板与样式令牌
线程 TCCore 温度采集线程 + BLEThread 蓝牙线程,QmlBridge 做唯一信号/槽中枢
蓝牙 WinRT BLE DLL,FFE1 写入 + 通知订阅
固件 CW32L010,纯中断驱动 + 主循环休眠,详见固件篇
打包 Inno Setup 7;内嵌 DLL 启动时提取并做 Authenticode 校验

版本历史

版本 主要变化
v4.5.1.0 NASA 字体族名修正;安装包补回 QtQuick.Shapes;打包期交叉校验
v4.5.0.0 NASA 朋克主题;主题设置拆成「模式 + 风格」;QML 矢量温度/蓝牙图标
v4.4.0.0 固件 OTA;QML 拆分;通知、图标与关闭对话框修复
v4.3.0.0 关机散热、系统通知、下位机状态回传、蓝牙写入结果查询
v4.0.0.0 UI 迁移到 Qt Quick / QML;Mica / Acrylic;深浅主题;资源提取安全加固

更早的版本和逐条修复记录,在程序内「关于 → 更新日志」里;这里不再维护一份容易过期的完整 changelog。

反馈与许可

  • 下载:GitHub Releases
  • 问题反馈:GitHub Issues
  • 反馈时请附上:Windows 版本、CPU / GPU 型号、TCV3 版本、固件版本,以及日志文件。

本项目代码使用 MIT 许可证;Qt 库按 LGPLv3 动态链接分发。