目录

极简一体键盘

废话

明天你是否会想起,昨天说不折腾键盘的你,我也是偶然翻博客,才想起嘴硬的你:

感觉此后很长一段时间我都不会再折腾键盘了😜,因为我感觉Sofle目前基本就满足我的需要了,下次我再做键盘的话,估计就要等到我有动力学KiCad之后自己layout了,搞自己理想的键位布局,能换便宜的矮轴规格,能有超多的键帽选择的那种。

这回是真的去B站学习了KiCad几套教程,然后再看到一篇用ergogen来自动生成键位布局、配套外壳的超详细教程(真的太详细了,你看完你也会),再加上我留意到平时自己在使用Sofle分体时,基本是固定成一个角度来使用,就决定再做一把一体式的人体工学键盘,把自己最舒服的按键角度放进去。

还有个原因就是,这choc v1矮轴用着用着就感觉手感差点意思,想重新搞回MX轴,选择超多。

还有个原因就是,有段时间刚换了形码来打字,一般晚上抽空练一下,金粉v2按起来有点吵了,就做了一把一体式的sha键盘来专门练打字用:

/images/dkuni-keyboard/IMG_20260711_151148.jpg

后面看到Valvel v3觉得好好看呀,更人体工学,应该会更好手感吧,就又费了很大功夫做了一把:

/images/dkuni-keyboard/IMG_20260509_095720.jpg

然后发现按键有点太挤了,拇指又要悬空比较高,用了半小时就确定不适合我,挂闲鱼出掉给另一个键盘发烧友了,出掉之后看看Valvet作者的github,发现一个月前又出无线版本的了,于是连制作过程我都懒得写了(还是挺多坑的)。

设计

经过了这么多,终于还是确定自己想做一把一体式的MX轴,布局就用我熟悉的Sofle来小改一下:

/images/dkuni-keyboard/00-keylayout.jpg

中间很空是吧?本来想放个显示屏的,但再一想似乎没什么要显示的,为了简单低成本,不放了,贴个贴纸吧。

高度尽可能矮,我平时都是无手托使用的,键盘太高的话,手腕受不了。怎样才能做到尽量矮呢?已知MX轴本身都已经有18.5mm的高度了,只能是尽量将底板做薄

/images/dkuni-keyboard/MX_size.png

为了制作简单,放弃了热插拔,直接把轴焊接在PCB上,同时免去了定位板。

看上图已知底部针脚最长是3.4mm(算上公差),然后PCB板的厚度是1.6mm,那么轴固定到PCB上之后针脚会凸出1.8mm,我做个3mm底板,在轴下挖2mm应该够了吧?但考虑到3mm的板只剩1mm的话,怕强度不足,而且万一不同厂家的轴也有公差,预留0.2mm不够咋办?

然后我不知道3D打印能不能做到0.1mm精度,所以我决定看CNC加工铝合金做底板了。

再考虑了一下我要用螺丝来锁定PCB到底板上,由于不知道厂商对攻丝有什么要求,首次做就保守点,底板挖螺母孔好了,配合螺丝做锁定。看了一下M2的螺母厚度来到1.6mm了,再留点余量的话,得沉孔1.8mm才行。结合上面的挖2mm,那么我的螺母孔和轴下的开孔就要错开,不然挖穿了。

然后在刚开始PCB走线时,想到如果把主控模组放PCB背面的话,整个正面就一个Type-C母座插口,会更整洁,于是看了一下淘宝,发现有一家做的模组非常符合要求:

/images/dkuni-keyboard/pico_rp2040_module.jpg

我只要把它放到PCB中间顶部,然后在底板镂空这部分就好了

/images/dkuni-keyboard/01-pcblayout.png

但是这个模组厚度已经来到了3mm,我的底板也3mm的话,只要这个模组厚度稍超一点点,我的底板就必需加脚垫才能保证底部不会被模组顶起来。

思前想后还是决定用4mm的底板会比较大容错,各种尺寸不用算得那么紧张。最后组装起来的成品预计只比MX轴高4-1.8=2.2mm,已经很优秀了,计划通,开始执行!

在ergogen里生成外框和螺丝螺母孔位的dxf,导入Solidworks里做参考引用,就确保和pcb的尺寸位置一样了,做好的底板就是这个样子,导出step文件

/images/dkuni-keyboard/03-caserendering.png

在铨洲注册新用户送13.8的券,立即用掉不然过期,上传step文件估价81.8元,减掉券再加上运费,最后花了78元加工底板,相当实惠了,如果加阳极氧化处理的话,得加27,我这底板又不怎么看外观,就不花这个钱了

/images/dkuni-keyboard/bottomplate_order.jpg

下单等了几天到货了

/images/dkuni-keyboard/IMG_20260704_085613.jpg

/images/dkuni-keyboard/IMG_20260704_085634.jpg

/images/dkuni-keyboard/IMG_20260704_100935.jpg

/images/dkuni-keyboard/IMG_20260704_101043.jpg

/images/dkuni-keyboard/IMG_20260704_101130.jpg

/images/dkuni-keyboard/IMG_20260704_101018.jpg

表面确实有些划伤,还容易粘指纹和油脂,不过还好表面基本只有侧面是用户可见的,影响不大

接下来是PCB,KiCad渲染PCB效果:

/images/dkuni-keyboard/02-pcbrendering.png

然后出gerber文件交给嘉立创打样,最少数量5块,要收132.5元,贵啊!还是分体的好,能正反设计,板子小便宜多了。

/images/dkuni-keyboard/jlc_order.jpg

组装

等了几天,实物到了

/images/dkuni-keyboard/IMG_20260628_012320.jpg

没指定客户编号位置,嘉立创给我放中间了,真是碍事啊

/images/dkuni-keyboard/IMG_20260628_135243.jpg

仔细一看,傻眼了,C座的焊盘那么短,刚刚好和针脚一样长,我也没焊过12pin的C座啊,这就给我上难度!?

/images/dkuni-keyboard/IMG_20260628_142923.jpg

只能先去B站看几个教程,然后硬着头皮上了,反正我有5块板,5次机会我都不知道怎么输

先给焊盘上锡

/images/dkuni-keyboard/IMG_20260628_144633.jpg

然后放上座子,再焊,烙铁头实在太大了,往外刮两下还把阻焊层给刮掉,露出铜了

/images/dkuni-keyboard/IMG_20260628_151325.jpg

再加点助焊剂,再小心清理连锡,然后用万用表测清楚确保不连锡

/images/dkuni-keyboard/IMG_20260628_152007.jpg

模组也到了,为了好焊,我特别加长了焊盘长度

/images/dkuni-keyboard/IMG_20260628_140438.jpg

实际焊起来也是非常容易,没遇到任何问题

/images/dkuni-keyboard/IMG_20260628_160232.jpg

再用万用表测过确保没有短路的地方,然后就可以按住模组的BOOT按键,用USBA to C线连上电脑(还没焊CC电阻,临时用不了CtoC线连电脑),可以发现亮红灯

/images/dkuni-keyboard/IMG_20260628_161806.jpg

设备管理器出现COM口,资源管理器里出现一个U盘一样的分区

/images/dkuni-keyboard/IMG_20260628_161936.jpg

uf2固件 复制进去,模组就会自动重启并运行固件了,此时你的电脑就会多出一个USB键盘,但我们还没有按键,暂时无法测试。

所以接下来在PCB背面(有模组检面)找几个字母按键位,焊几个二极管上去先,注意正负方向别搞错

/images/dkuni-keyboard/IMG_20260628_172504.jpg

/images/dkuni-keyboard/IMG_20260628_173320.jpg

焊好这个按键的二极管之后,就可以再连上电脑打开记事本,用镊子模仿MX轴的按键两个脚短接,没问题的话,记事本会出现你按键对应的字母。

接下来如果你不考虑CtoC线连接电脑的话,可以不焊这两个5.1K的CC电阻,实在有够小的,我开头放封装的时候实在没有想到它这么小。

/images/dkuni-keyboard/IMG_20260704_000722.jpg

费了九牛二虎之力才焊好,对比一下烙铁头的大小

/images/dkuni-keyboard/IMG_20260704_003811.jpg

难啃的骨头就是C座和这两个CC电阻,接下来把二极管全部焊好,之后用万用表二极管档对全部二极管检查一遍,确保没有焊反的就行了

然后就是在PCB正面插好MX轴,在背面焊脚,非常简单

/images/dkuni-keyboard/IMG_20260704_004423.jpg

/images/dkuni-keyboard/IMG_20260704_004506.jpg

再买了M2螺丝螺母

/images/dkuni-keyboard/IMG_20260704_115149.jpg

再在fkkeys店挑了一套键帽

/images/dkuni-keyboard/IMG_20260705_114459.jpg

/images/dkuni-keyboard/IMG_20260705_114517.jpg

某些键还是有点披锋口没处理好

/images/dkuni-keyboard/IMG_20260705_120912.jpg

拇指上用原厂高度的键帽不是那么好按,用我之前买的XDA高度的1.5u或1.25u会比较舒服

/images/dkuni-keyboard/IMG_20260705_131422.jpg

/images/dkuni-keyboard/IMG_20260705_131445.jpg

/images/dkuni-keyboard/IMG_20260705_131451.jpg

/images/dkuni-keyboard/IMG_20260705_131625.jpg

/images/dkuni-keyboard/IMG_20260705_131638.jpg

/images/dkuni-keyboard/IMG_20260705_131653.jpg

/images/dkuni-keyboard/IMG_20260705_131705.jpg

/images/dkuni-keyboard/IMG_20260706_135019.jpg

再配上磁吸数据线和头,拿去办公室用

/images/dkuni-keyboard/IMG_20260706_133128.jpg

拇指区的两个红色按键旁边还是换成了1.25u比较舒服(手要按Y/T时会更少阻挡)

vial固件原始键位

/images/dkuni-keyboard/79-qmklayout.png

我个人就按回我Sofle用的习惯改了

/images/dkuni-keyboard/80-funclayout.png

后话

用了一周,感觉非常舒适,因为它就是为我定制的😉

还有点小不足的就是,最下面两颗螺丝露出来了,有点不好看,还有就是ergogen改孔位时漏了一处,导致有一个螺丝孔对不齐(后续开源的会修正),不过少上一颗也不影响就是了。

vial的配置代码是codex写的(其实代码几个文件也不多),功能正常。但它搞了几轮就是没搞对keymap里vial.json的按键坐标,最后还是我手动修正了左边,让它做镜像计算右边,也不错了。

过两天把资料开源到github,大家有兴趣的话也可以为自己定制一个专属布局的键盘了。

End game?现在可不敢立Flag呢,可能某天又想改成无线的ZMK版本?🤡

(完)