bhctsntrk/nut65-signalrgb
GitHub: bhctsntrk/nut65-signalrgb
这是一个SignalRGB社区插件,通过逆向VIA协议让Weikav NUT65键盘支持单键RGB控制及屏幕环境光同步。
Stars: 1 | Forks: 0
还可以看看 NUT-65 Pip-Boy —— Fallout 主题的桌面应用程序,直接在你的键盘 RGB LED 上运行 AI 控制的 Snake、Pong 和 Marquee。可独立运行,无需 SignalRGB。
# Weikav NUT65 — SignalRGB 插件
为 **Weikav NUT65** 机械键盘打造的社区版 [SignalRGB](https://signalrgb.com/) 插件。支持单键 RGB 控制、屏幕捕获环境光照明以及所有 SignalRGB 效果 —— 让键盘与显示器、游戏和音乐同步。
SignalRGB 官方并不支持 NUT65。该插件通过逆向工程 Weikav 网页版配置器的 VIA HID 协议构建而成。
## 功能特性
- **单键 RGB** — 67 颗按键独立控制
- **灯条** — 支持 15 段式前置灯条
- **屏幕捕获** — 呈现屏幕内容的环境光照明
- **所有 SignalRGB 效果** — 渐变、响应式、音频响应等
- **无需修改固件** — 兼容 NUT65 原厂固件
- **安全** — 仅写入 RAM,永不触碰 EEPROM
## 安装说明
1. 下载 [`Weikav_NUT65.js`](Weikav_NUT65.js)
2. 复制到 `C:\Users\
\Documents\WhirlwindFX\Plugins\`
3. 重启 SignalRGB
4. NUT65 应该会出现在设备列表中
## 系统要求
- Weikav NUT65 通过 **USB-C** 连接(仅限有线模式)
- 已安装 [SignalRGB](https://signalrgb.com/)
- Windows 10/11
蓝牙和 2.4G 无线模式不受影响 —— 插件仅在 USB 连接下激活。
## 工作原理
该插件通过 VIA RAW HID 端点 (`usagePage: 0xFF60, usage: 0x61`) 与 NUT65 进行通信。
| 步骤 | 命令 |
|------|---------|
| 设置直控模式 | `[0x07, 0x03, 0x02, 45]` |
| 设置单键颜色 (HSV) | `[0x07, 0x00, 0x03, 0x00, row, col, sat, hue]` |
| 将颜色刷新至显示 | `[0x07, 0x00, 0x02, 0x00]` |
SignalRGB 提供 RGB 颜色 → 插件转换为 HSV → 发送单键命令 → 每帧刷新一次。
### 性能表现
插件采用了多项优化策略,在流畅的 RGB 效果与极小的键盘输入延迟之间取得平衡:
| 优化项 | 说明 |
|-------------|-------------|
| **写入预算** | 每帧最多 10 次 HID 写入(防止固件在按键扫描期间出现 CPU 饥饿) |
| **微暂停** | 每写入 5 次暂停 1ms(为固件处理按键扫描留出喘息空间) |
| **优先更新** | 每帧扫描全部 82 颗 LED,按变化量排序 —— 视觉变化最大的优先发送 |
| **差值 + 滞后** | 未变化的 LED(色相/饱和度变化 ≤3)完全跳过 |
| **零分配数据包** | 预分配 65 字节缓冲区,供所有 HID 写入复用 |
实际效果:流畅效果约 12 fps,在繁重动画期间显著降低按键延迟。
### 局限性
- **不支持单键亮度** — 每键仅支持色相和饱和度控制。亮度为全局设置。
- **灯条同步** — 前置灯条拥有独立的固件控制器。它仅在特定键盘模式下响应单键命令。你可能需要手动将灯条模式(Fn + 灯条快捷键)切换至静态模式以实现完全控制。
- **仅支持 HSV** — 由于键盘无法显示单键低亮度,深色屏幕区域可能显示为白色。
## 技术详情
| 属性 | 值 |
|----------|-------|
| Vendor ID | `0x342D` |
| Product ID | `0xE51A` |
| HID 接口 | 1 |
| 报告大小 | 65 字节 |
| 矩阵 | 6 行 × 15 列 |
| 颜色格式 | HSV (色相 0-255, 饱和度 0-255) |
| 直控模式 | 45 ("Close All") |
## 故障排除
**无法检测到键盘:**
- 确保通过 USB-C 连接,而非蓝牙/2.4G
- 完全关闭 VIA 和 Vial
- 重启 SignalRGB
**按键保持白色:**
- 插件需要模式 45 才能工作。如果模式被外部更改,请重启 SignalRGB。
**灯条无响应:**
- 使用 Fn + 快捷键循环切换灯条模式,直到其与按键同步。
## 许可证
MIT
# Weikav NUT65 — SignalRGB Eklentisi
Weikav NUT65 mekanik klavye için topluluk tarafından yapılmış [SignalRGB](https://signalrgb.com/) eklentisi. Tuş başına RGB kontrolü, ekran yakalama ortam aydınlatması ve tüm SignalRGB efektlerini kullanmanızı sağlar — klavyenizi monitörünüz, oyunlarınız ve müziğinizle senkronize edin.
NUT65 resmi olarak SignalRGB tarafından desteklenmemektedir. Bu eklenti, Weikav'ın web tabanlı yapılandırıcısından VIA HID protokolü tersine mühendislik yapılarak oluşturulmuştur.
## 特性
- **Tuş başına RGB** — 67 tuş ayrı ayrı kontrol edilebilir
- **Işık çubuğu** — 15 segmentli ön ışık çubuğu desteği
- **Ekran yakalama** — Ekranınızı yansıtan ortam aydınlatması
- **Tüm SignalRGB efektleri** — Gradyanlar, reaktif, ses duyarlı vb.
- **Firmware değişikliği yok** — Orijinal NUT65 firmware'i ile çalışır
- **Güvenli** — Yalnızca RAM'e yazar, EEPROM'a dokunmaz
## 安装
1. [`Weikav_NUT65.js`](Weikav_NUT65.js) dosyasını indirin
2. `C:\Users\\Documents\WhirlwindFX\Plugins\` klasörüne kopyalayın
3. SignalRGB'yi yeniden başlatın
4. NUT65 cihaz listesinde görünmelidir
## 要求
- Weikav NUT65 **USB-C** ile bağlı (sadece kablolu mod)
- [SignalRGB](https://signalrgb.com/) yüklü
- Windows 10/11
Bluetooth ve 2.4G kablosuz modlar etkilenmez — eklenti yalnızca USB üzerinden çalışır.
## 工作原理
Eklenti, NUT65 ile VIA RAW HID uç noktası üzerinden iletişim kurar (`usagePage: 0xFF60, usage: 0x61`).
SignalRGB RGB renkleri sağlar → eklenti HSV'ye dönüştürür → tuş başına komut gönderir → çerçeve başına bir kez uygular.
### 性能
Eklenti, pürüzsüz RGB efektleri ile minimum tuş algılama gecikmesi arasında denge kurmak için çeşitli optimizasyonlar kullanır:
- **Yazma bütçesi** — Kare başına maks. 10 HID yazma, firmware'in tuş taraması için daha fazla CPU zamanı bırakır
- **Mikro-duraklama** — Her 5 yazmada 1ms mola, firmware'e tuş taramalarını işlemesi için nefes alanı verir
- **Öncelikli güncelleme** — 82 LED her karede taranır, delta büyüklüğüne göre sıralanır, en büyük görsel değişiklikler önce gönderilir
- **Delta + histerezis** — Değişmeyen LED'ler (ton/doygunluk delta ≤3) atlanır
- **Sıfır-tahsisli paketler** — Önceden ayrılmış 65 bayt arabellek tüm HID yazmaları için yeniden kullanılır
Sonuç: Efektler için ~12 fps, yoğun animasyonlarda belirgin şekilde azaltılmış tuş basma gecikmesi.
### 限制
- **Tuş başına parlaklık yok** — Yalnızca ton ve doygunluk kontrol edilebilir. Parlaklık globaldir.
- **Işık çubuğu senkronizasyonu** — Ön ışık çubuğunun ayrı bir firmware denetleyicisi vardır. Tam kontrol için ışık çubuğu modunu (Fn + kısayol) manuel olarak statik moda almanız gerekebilir.
- **Yalnızca HSV** — Koyu ekran alanları, klavye tuş başına düşük parlaklık gösteremediği için beyaz görünebilir.
## 故障排除
**Klavye algılanmıyor:**
- USB-C ile bağlı olduğundan emin olun (Bluetooth/2.4G değil)
- VIA ve Vial'ı tamamen kapatın
- SignalRGB'yi yeniden başlatın
**Tuşlar beyaz kalıyor:**
- Eklenti çalışması için mod 45 gereklidir. Mod harici olarak değiştirildiyse SignalRGB'yi yeniden başlatın.
**Işık çubuğu yanıt vermiyor:**
- Fn + kısayol ile ışık çubuğu modunu tuşlarla senkronize olana kadar değiştirin.
## 许可证
MIT标签:DNS解析, HID, NUT65, Per-key RGB, RGB灯光, SignalRGB, USB通信, VIA协议, Weikav, 云资产清单, 单键控制, 外设驱动, 客制化键盘, 屏幕取色, 开源项目, 插件, 数据可视化, 机械键盘, 桌面美化, 氛围灯, 游戏联动, 灯效同步, 端点可见性, 自定义脚本, 逆向工程