项目简介
本项目是专门为ErgoDox键盘开发的可用固件。初始开发目的是实现I²C功能,从而避免在键盘两半之间使用16针连接器。这不仅是开发者首个纯C项目,也是在硬件编程领域的首次尝试。项目致力于提供稳定、功能丰富且易于理解的固件,便于用户更新键盘固件以及进行二次开发。
项目的主要特性和功能
- 按键响应特性:支持6KRO,符合USB启动规范,扫描速率约167Hz(大部分时间用于I²C通信)。
- 硬件适配:适配Teensy 2.0和MCP23018 I/O扩展器。
- 功能按键:具备多种媒体按键(播放/暂停、上一曲、下一曲、停止、静音、音量增大、音量减小)以及粘滞键功能。
- 分层设计:固件级别的层,激活时压入栈顶,停用则从栈中弹出,按键时顶层确定操作。
- 按键函数化:每个按键的按下和释放对应不同函数,可执行多种操作,支持“透明”功能。
安装使用步骤
环境准备
按照PJRC的入门指南设置AVR编程环境,确保使用C语言和Make进行编译。同时,需要安装git。
固件加载
- 将Teensy通过USB连接到计算机,安装Teensy加载器应用程序,了解Teensy上的“复位按钮”。
- 运行Teensy加载器程序,点击“自动”按钮。
- 找到
.eep
和.hex
文件,若没有可从此处下载。 - 将
.eep
文件拖放到Teensy加载器窗口,按下并释放Teensy复位按钮。 - 将
.hex
文件拖放到Teensy加载器窗口,再次按下并释放Teensy复位按钮。
编译源码
创建新的按键映射
- 参考相关文件:
- 键码宏:参考
src/lib/usb/usage-page/keyboard--short-names.h
和src/lib/usb/usage-page/keyboard.h
。 - 键盘功能:参考
src/lib/key-functions/public
文件夹中的所有文件。 - 模板布局文件:参考
src/keyboard/ergodox/layout
文件夹中的QWERTY按键映射源文件。
- 键码宏:参考
- 在
src/makefile-options
中设置LAYOUT
变量为新布局文件的基本名称。 - 在
.h
布局文件中定义控制键盘LED含义的宏,在.c
布局文件中定义每个按键和每个层的键码、按下和释放函数。
添加不同类型键盘的代码
- 确保以下文件包含所需的函数原型和宏定义:
src/keyboard/ergodox/controller.h
src/keyboard/ergodox/layout.h
src/keyboard/ergodox/matrix.h
- 在
src/makefile-options
中设置KEYBOARD
变量为新键盘文件夹的名称,并可根据需要更改其他选项。 - 确保上述
.h
文件存在于新键盘目录的顶级位置,避免循环包含。 - 注意
src/makefile
中的SRC
变量,确保所有.c
文件都被编译。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】