打破延迟极限的 FPGA 机械键盘

在机械键盘爱好者和硬件开发者的世界里,追求极致性能的设计总是令人兴奋。今天,我们要介绍的是一款由 Portland.HODL 开发的开源项目------Nyan Keys,这是一款基于 FPGA 的机械键盘,旨在实现尽可能低的输入延迟。

项目背景与目标

Nyan Keys 的设计目标是构建一款具有超低输入延迟的机械键盘,兼容 Cherry MX 及其兼容轴体(如 Kailh 和 Gateron)。该项目的灵感来源于 Wooting 60HE 和 Pok3r 60% 键盘,结合了前者的高性能特性和后者的开源可定制性。

技术实现

1. FPGA 实现每键独立处理

Nyan Keys 使用 Lattice iCE40HX4K FPGA,为每个按键分配一个独立的处理核心。每个核心包含一个 8 位计数器,用于实现去抖动逻辑。当计数器达到预设值时,按键状态才会改变,从而有效防止按键抖动带来的误触发。

这种设计允许每个按键直接连接到 FPGA 的独立 IO 引脚,省去了传统键盘矩阵设计中所需的二极管等元件,简化了硬件结构。

2. 高速 USB 通信

为了实现高速数据传输,Nyan Keys 采用 STM32F723 微控制器,支持 USB 2.0 High Speed(480Mbps)通信。通过设置 USB 的 bInterval 为 1,实现了 8000Hz 的轮询率,即每 0.125 毫秒进行一次数据传输。

在最坏情况下,从按键按下到数据传输完成的总延迟约为 155 微秒,远低于传统 USB 2.0 Full Speed 键盘的 1 毫秒延迟。

3. 开源硬件与软件

Nyan Keys 的硬件设计和固件均已开源,采用 Apache 2.0 许可证。项目包括 FPGA 比特流、STM32 固件、Web 配置工具等,方便开发者进行定制和扩展。

设计文件

  • 硬件设计文件

https://github.com/russeree/nyan-keys-hardware

  • FGPA比特流

https://github.com/russeree/nyan-keys-ice40hx4k-bitstream

  • Nyan 操作系统 (NOS) - STM32 固件

https://github.com/russeree/nyan-keys-stm32-firmware

  • Nyan DFU(STM32 引导加载程序)

https://github.com/russeree/nyan-keys-dfu-bootloader

  • Nyan OS Web 配置工具

https://russeree.github.io/

  • Nyan OS Web 配置工具 - 源代码

https://github.com/russeree/nyan-keys-gui\]

  • 总体

https://github.com/portlandhodl/russeree

总结

Nyan Keys 项目展示了在机械键盘设计中追求极致性能的可能性。通过 FPGA 的并行处理能力和高速 USB 通信,该项目实现了目前已知最低的输入延迟,为硬件爱好者和开发者提供了一个值得探索和学习的开源平台。

相关推荐
Turing_kun11 小时前
基于FPGA的实时图像处理系统(1)——SDRAM回环测试
fpga开发
OBOO鸥柏商用液晶显示厂家18 小时前
OBOO鸥柏丨75寸/86平板企业办公会议触控一体机核心国产化品牌招投标参数
计算机外设·电脑·大屏端·信息发布系统·会议一体机
python-行者1 天前
akamai鼠标轨迹
爬虫·python·计算机外设·akamai
I'm a winner1 天前
新手入门Makefile:FPGA项目实战教程(二)
笔记·fpga开发
我爱C编程1 天前
基于FPGA的8PSK+卷积编码Viterbi译码通信系统,包含帧同步,信道,误码统计,可设置SNR
fpga开发·通信·8psk·帧同步·snr·卷积编码·维特比译码
I'm a winner2 天前
新手入门 Makefile:FPGA 项目实战教程(三)
fpga开发
范纹杉想快点毕业2 天前
嵌入式 C 语言编程规范个人学习笔记,参考华为《C 语言编程规范》
linux·服务器·数据库·笔记·单片机·嵌入式硬件·fpga开发
lazyduck2 天前
从半年到一年的 bug 往事:TCP modbus的卡死与补救
fpga开发·modbus
范纹杉想快点毕业3 天前
《嵌入式 C 语言编码规范与工程实践个人笔记》参考华为C语言规范标准
服务器·c语言·stm32·单片机·华为·fpga开发·51单片机
大Mod_abfun3 天前
多显示器窗口分布规律探索(包括WorkerW的区域)
计算机外设·显示器布局·桌面背景层·workerw