数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 7111|回复: 43

[外设] USB邮箱灯折腾手记:定位驱动、重写高层并实现编译指示灯(原创)

  [复制链接]
发表于 2021-6-21 01:26:25 | 显示全部楼层 |阅读模式
某宝剁手的时候入了几个 USB 邮箱灯,外形颇为精致。原单是外贸货,店家并未折腾成功,故无资料。
本想买来拆外壳玩,不料居然在 Win10 下成功驱动了起来,特来分享之。

【剁手】

USB 邮箱灯是个邮箱形状的红色小灯,一端有 USB 插头,尺寸非常迷你:


原本设计的是用来提醒新邮件的,插在 USB 口上由 PC 软件控制:


但也许是时间过于久远,店家这批邮箱灯配套的 CD、驱动软件都已丢失,于是廉价处理。
入手后这包装也是满满的小清新风格,仿佛要把整张图纸都画上一样:



【分析驱动:USB-HID】

虽然从最开始就已做好拆壳准备,但还是在笔记本上插了一下,结果 Win10 x64 居然成功安装了驱动:



不得不说 Win10 自带的 USB 驱动是真的很全,这么偏的硬件居然可以免驱运行。
为了安全起见(例如防止硬件内部短路),我把邮箱灯插在了外供电集线器上,这样一来想要找到新增硬件也略微费劲。

Usb Device Viewer 搞起来,很快就在 USB 树下找到了设备,信息如下:



从 Device Information 报告来看,设备在 USB 物理传输层没毛病,可以正确向 PC 报告设备自身信息。
再仔细分析设备信息 Open_Pipe=1,Interface=HID,基本可以确认邮箱灯使用了单传输通道的 HID 协议。
难怪可以在 PC 层直接免驱运行,HID 协议(常用于鼠标键盘)也算是 Windows 着重关照的一类设备。

虽说可以直接使用 libusb 之类开源库重编写驱动,但由于并不知道高层控制协议,只得求助网络。
这一查不要紧,原来老外早就有了开源项目,已完整破解了高层控制协议,并有直接 C# 编写的控制台驱动。

分享来开源驱动包的项目地址:
http://www.java2s.com/Open-Sourc ... d_Stress_Button.htm

为防止网址被墙,C# 源码驱动包也转来:

直接运行代码包中可执行文件,提示需要使用控制台脚本加参数,同时居然提示找不到设备:



查看源码发现,默认邮箱灯访问的是 Vid/Pid=0x1d34/0x0004,而设备报告的是 Vid/Pid=0x1d34/0x000a.
想来是山寨厂家修改了 PID 来做独立驱动,结果最后厂子也黄了,产品也被处理给了剁手怪....

还好驱动已经考虑到了这种情况,直接指定 device 参数即可设定。编写了一个简单的 bat 脚本果然成功驱动:

  1. DreamCheekyLED.exe  device="0x1D34,0x000A,0"  testblink
  2. pause
复制代码


另存 bat 文件后,放在 DreamCheekyLED.exe 目录运行脚本效果如下:



附上几个写好的 bat 脚本,可直接运行:


【重写高层:监视编译器】

至此获得了一只可控的硬件 LED,但仍缺少高层事件源。原设计是通过 PowerShell 脚本接收新邮件通知,但如今邮箱用的太少故作罢。
不过既然外形这么可爱,不指示点啥实在浪费颜值,思前想后决定做一个 CPU 负担指示器。

经常写高层、HDL层程序的各位,可能经常会被慢如老牛的编译器折腾到崩溃,如果拿此灯指示编译进行中,想来比较新鲜。
至于原理也并不复杂:后台监控 CPU 负担,当负担达到了设定的阈值即亮灯,待负载降下来再熄灭。MFC走起来:



简单获取 CPU 负担,并与现有设定阈值比较,超负荷后使用 WinExec 调用 C# 写好的底层驱动,界面外观如下:



调整下阈值,就可以灵敏地监测编译器工作了。例如监视 Quartus 编译过程(编译中亮灯,完成后熄灭):



附上可执行文件及源码:

这个 USB 邮箱灯说白了就是个自定义 HID 协议的双色硬件灯,可以通过 HID 驱动或者现成 C# 驱动控制。
至于高层的事件源,可以是原新邮件通知,也可以使用 PC 本地数据。编写不同的事件捕获器,即可实现任意门通知。

--------------------------------------------------------

以上,剁手了一批 USB 接口的邮箱指示灯,通过分析 USB 报告配合网上开源代码,实现了 HID 层的点灯驱动。
顺手写了一个 CPU 负担监控器,负担超限后点亮邮箱灯,可用于监控编译器工作状态,终得物尽其用。

最后祝大家折腾愉快!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 9家元 +161 收起 理由
snowrose2000 + 20 謝謝分享
兔包公 + 20 膜拜大婶
kkdkj + 20 謝謝分享
jf201006 + 20 原創內容
hfsp + 20 謝謝分享

查看全部打赏

发表于 2021-6-21 01:47:21 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2021-6-21 02:01:30 来自手机浏览器 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-21 02:35:23 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-21 02:36:47 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2021-6-21 08:08:29 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2021-6-21 08:32:55 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2021-6-21 08:33:11 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2021-6-21 08:45:54 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2021-6-21 09:14:38 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2021-6-21 09:19:14 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2021-6-21 10:29:30 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-21 10:58:19 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-21 10:58:54 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-21 10:59:40 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-21 11:01:02 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-21 11:01:39 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-21 11:06:17 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-21 11:06:58 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 2021-6-21 13:58:05 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-12-22 14:23 , Processed in 0.140400 second(s), 14 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表