键盘鼠标外设 篇119:kbfirmware使用教程——以制作小太刀TEX Kodachi键盘为例
前言
这些天有值友在之前的制作键盘的原创中询问kbfirmware的详细使用教程,趁着最近在自制小太刀TEX Kodachi小红点机械键盘,就制作个详细kbfirmware使用教程好了。
PS:docs.qmk.fm有QMK固件的详细设置介绍,有兴趣的可以自己去看。
教程
小太刀Kodachi这款红点机械键盘最近很有名,TEX原版389元美刀,合计约2500元人民币。
而挂了ThinkPad标志的限量版售价则翻了一倍,高达4999元人民币,标志就是值钱。
小太刀的命名来自于ThinkPad X300,因为X300设计之初的研发代号为Kodachi。键位方面则是近似于ThinkPad的SK-8855和SK-8845键盘,所以联想的代号是SK-8865,相当于是一种延续。
根据TEX Kodachi的键列,在keyboard-layout-editor画好了布局图,细节上自己作了改变。
将keyboard-layout-editor生成的RAW数据,复制到kbfirmware中,点击Import。
这时候kbfirmware会自动生成一个一个键盘矩阵,接着就能进行固件的自定义设置。
WINRING 连线
因为机械键盘都有防冲二极管,所以要区分感知引脚和驱动引脚。红色线的Rows代表驱动引脚,灰色线的Columns代表感知引脚。自动生成的矩阵中,有15个感知引脚和8个驱动引脚。
Specify the diode direction指的是二极管方向。引用3dg12的图,大部分机械键盘的二极管负极接驱动引脚,正极接感知引脚,此时选项就是Column to Row。相反就是Row to Column。
单独点击按键,可以看到这个按键的感知引脚和驱动引脚。
kbfirmware不支持实时生成矩阵。如果修改了驱动引脚和感知引脚的数目,矩阵就会乱掉。
这时候需要一个一个按键修改,才能把矩阵修改回来。需要耐性,还要注意不要重复。
另外kbfirmware中线与线的连接都是点对点的连线,会造成线与线的相交,矩阵比较复杂的时候就会看起来好混乱。建议在Excel建立表格,确定每一个按键的驱动引脚和感知引脚的数字,再填到kbfirmware中。
图片中的Excel表格是我测试的某优联主控键盘矩阵,权当参考。
修改后的矩阵设定如图,将底部三大键的驱动引脚从7改成0,感知引脚改成5-7。最右下角的方向键驱动引脚从7改成6,感知引脚改成5-7。空格键的感知引脚改成9。如此一来可以节省一个接口。
PINS 引脚
引脚一般可以不管,kbfirmware可以自动生成。自己设定则有助于接线的整理。
kbfirmware支持ATmega32U2、ATmega32U4、AT90USB1286三款芯片。
ATmega32U4芯片的Arduino Pro Micro引脚定义图,P开头那些就是kbfirmware设置中所对应的接口。
AT90USB1286芯片的Teensy 2.0++引脚定义图。同样P开头那些就是kbfirmware设置中所对应的接口。
另外还可以设置指示灯的引脚。Num、Caps和Scroll就是常见的数字键盘锁、大小写锁和滚动锁。Compose是组合键指示灯,在Linux上比较常见。Kana是日文键盘假名输入模式。另外还有键盘背光的引脚,Backlight是轴的LED灯珠,WS2812 Strip是灯条。
KEYMAP 键列
kbfirmware支持全键盘自定义。
图层是指按键功能所在的层,键盘可以自定义多个层并进行切换。
点击需要修改的按键,就会显示其键值。例如我点击空格键,就会显示其键值KC_SPC。
点击键值可以进行修改。设置页面主要有PRIMARY主键位,SECONDARY辅助键位,KEYPAD数字键盘,LIGHTING背光,FN功能键,OTHER其他。
PRIMARY主键位
主要是常见的字母按键,符号按键和Ctrl、Win(GUI)、Alt按键等。
比较特殊的是NUBS、NUBS、TRNS、RESET和NO。NO最好理解,为不定义键值,无功能。
NUBS是EU键列的 和 | 。US键列为无功能按键。
NUHS是EU键列的 # 和 ~。US键列为无功能按键。
TRNS则是键值相当于前一个层中所定义的键值。
RESET为重置按键,相当于板子上的重置按键。按下后能进入刷机模式,可以重新刷入固件。
SECONDARY辅助键位
主要是一些符号,特殊按键,方向键和媒体按键。Fn1-Fn12是win系统的,Fn1-Fn24是mac系统的。
LEFT、DOWN、UP、RIGHT分别是左、下、上、右方向键。POWER电源,SLEEP睡眠,WAKE唤醒,MUTE静音,VOLD音量减少,VOLU音量增加,PLAY播放,STOP停止,PREV上一 首,NEXT下一首。
媒体按键还有很多,docs.qmk.fm有完整的媒体按键键值定义。
KEYPAD数字键盘
小数字键盘区域按键的键值定义,就是在前面加了P作区别。
LIGHTING背光
键盘背光的设置按键定义。分为单色和RGB背光两种。
BL_TOGG 开启或关闭背光。BL_DEC 背光亮度减弱。BL_INC 背光亮度增加。BL_STEP 亮度从暗到亮再到暗循环。
RGB_TOGG RGB灯开关。RGB_MOD RGB灯光模式切换。RGB_HUI RGB灯光色相数值增加,RGB_HUD RGB灯光色相数值减少。RGB_SAI RGB灯光饱和度数值增加,RGB_SAD RGB灯光饱和度数值减少。RGB_VAI RGB灯光亮度数值增加,RGB_VAD RGB灯光亮度数值减少。
灯光模式细分有RGB_M_P静态光,RGB_M_B呼吸灯,RGB_M_R彩虹灯,RGB_M_SW彩虹渐变,RGB_M_PRGB_M_SN贪吃蛇,RGB_M_PK霹雳侠,RGB_M_X圣诞灯,RGB_M_G单色渐变,RGB_M_T三色渐变。
FN功能键
功能按键区,包含一些组合按键和键列层转换的控制键。
组合按键主要是Ctrl、Alt、GUI的组合按键。
例如LCTL() 相当于左Ctrl加特殊按键,RCTL()、LALT()、LGUI()类似。
这种组合按键还可以叠加,进行一些快捷键的自定义。
另外固件有自定义多组合键,例如HYPR()相当于Ctrl + Shift + Alt + Gui +自定义按键。 MEH()相当于Ctrl + Shift + Alt + 自定义。LCAG()相当于Ctrl + Alt + Gui +自定义按键。ALTG()相当于Ctrl + Alt +自定义按键。
后续加_T的则表示长按触发组合键,短按触发自定义按键。例如MEH()设置为MEH_T(T),长按触发Ctrl + Shift + Alt + T,短按触发T。MT()长按为组合按键,短按为自定义按键。OSM()则是锁定组合按键直到下一次按下按键。例如OSM()设定为OSM(Shift),按下OSM()后,按1按键则输入!,再按1按键则输入1。OSL()则是切换到指定键列层,直到下一次按下按键。例如层0是某按键的键值是1,层1此按键的键值是2,按下OSM(1)后,按此按键则输入2,再按此按键则输入1。
图层转换按键中最常用MO(),相当于常见键盘的Fn按键。默认0键列层情况下,按下Mo按键加某按键,就会切换到下一个键列层,也就是1层的按键的键值。例如0层下某按键定义是A按键,1层下是B按键。按下MO加A按键,就会变成B按键。
LT(),长按是MO加自定义按键,短按则是自定义按键,例如LT()设定为A按键。长按是MO加A按键,短按则是A按键。TO(),切换到指定键列层。设定为TO(1)则是转换到1键列层,设定为2则是转换到2键列层。DF(),返回默认0键列层。TG(),指定图层切换。
OTHER其他
有些按键的键值kbfirmware的预设中没有定义,可以手动输入。
例如一下复制粘贴的快捷键。
还有鼠标的控制按键。KC_MS_WH为鼠标滚轮的设定,KC_MS_MS为鼠标光标的设定。KC_MS_UP、KC_MS_DOWN、KC_MS_LEFT、KC_MS_RIGHT分别是光标上移,下移,左移和右移。这些设定可以适用于小红点的光标移动。KC_MS_BTN1为鼠标左键、KC_MS_BTN2为鼠标右键,KC_MS_BTN3为鼠标中键。
MACEOS 自定义宏
kbfirmware支持记录宏脚本。Add Action是添加脚本,Record Macro是记录宏,Clear Marco则是删除宏。
理论上可以添加无限个脚本,实际没有测试最多多少个。
No Action为无动作。
Press为按下按键,Release为释放按键。
Set Interval为延时,Wait是等待。单位都是MS。
Type为点击指定按键。
点击Record Macro录取宏后,点击的按键会记录在脚本中,点击Stop Recording则停止记录。Clear Marco则会清除脚本。
Quantumb 编程
量子算法编程语言,可以在这个页面添加自己的代码,详细可以在docs.qmk.fm查看相关函数定义。一般人用不上,最好不要乱改。
Settings 设置
设置页面可以自定义键盘的名字,Windows系统能识别出这个名字。
固件大小,点击旁边的问号可以看到相关主板的名字以及固件大小。
WS2812 LEDs则是指灯条数量。Backlight Levels为背光的亮度级别。
设置完成后记得保存配置JSON文件到自己电脑中。下次想再编辑的时候,可以在首页的Upload上传JSON文件继续编辑。
Compile 编译
编译页面可以下载Hex文件和打包成zip压缩包的Hex文件。
如果固件设置有错误,是无法编译并下载hex文件的。
错误信息在Settings页面会有提示。错误符号的Not every key has a unique position in the wiring matrix. 指有按键的驱动引脚和感知引脚重复。感叹号的提示只是警告,可以不管,不影响编译hex。
后记
这篇文章主要是以制作小太刀TEX Kodachi为例,详细介绍kbfirmware的使用教程。以后还会写一篇小太刀TEX Kodachi红点机械键盘制作过程的原创文章,成本在100元左右,喜欢的可以关注一下。
PS:之前我也制作过一把60%键列的红点机械键盘。喜欢的也可以去浏览一下。
genechiu
校验提示文案
人丧嘴损心不脏
校验提示文案
执剑能天使
校验提示文案
ClegeA
校验提示文案
Insomnia317
校验提示文案
genechiu
校验提示文案
刘了个杰
校验提示文案
soultouch
校验提示文案
值友4061464868
校验提示文案
笑傲世间
校验提示文案
笑傲世间
校验提示文案
橙李仁
校验提示文案
矮脚长颈鹿
校验提示文案
值友5169858435
校验提示文案
devorak
校验提示文案
greslver
校验提示文案
Guishelley
校验提示文案
剑君
校验提示文案
SDXXB
校验提示文案
迷失的星星123
校验提示文案
值友9177296335
校验提示文案
值友5023779724
校验提示文案
值友5169858435
校验提示文案
值友9897645476
校验提示文案
仙剑无尘
校验提示文案
Xanthuz
校验提示文案
橙李仁
校验提示文案
笑傲世间
校验提示文案
笑傲世间
校验提示文案
柳艾洛
校验提示文案
naonao1231
校验提示文案
值友4061464868
校验提示文案
值友4061464868
校验提示文案
soultouch
校验提示文案
刘了个杰
校验提示文案
genechiu
校验提示文案
123qwertybobo
校验提示文案
逐一段醉生梦死的旅途
校验提示文案
妄念难熄
校验提示文案
Insomnia317
校验提示文案