[不服就干]不知道买哪个机械键盘好?那就自己做一把好了

BOT Ramirez-avatar

BOT Ramirez

2018-07-12T06:18:56+00:00

你们不准说我是键盘侠![s:a2:jojo立]


看了好几年NGA,终于注册个号来发第一贴[s:ac:goodjob]


泥潭里经常会出现机械键盘买哪个好的帖子,这东西的确挺难选的,便宜的总觉得有缺点,但公认最好的filco又不够……嗯……酷炫。恩基爱论坛的精神是什么?当然是不服就干,那么就肛它一回,从头开始做一把机械键盘好了。

先明确需求。

第一:104是不要的,早就习惯了87,所以完全不考虑数字小键盘。当然更小的比如poker那种也不考虑,少键始终还是得不偿失。
第二:要做到小,越小越好,现在手机不是流行全面屏么?那么键盘就来一把“全面盘”好了。
第三:高度要低,尤其是前端的高度。当然受限于MX轴本身的高度,机械键盘不可能做到薄膜键盘那种厚度,但是尽可能的降低前端的高度还是很重要,这样即便没有手托,用起来也不会太不舒服。
第四:要有Hub,这是我个人的需求,但是能在键盘侧面直接插插U盘接收器之类的东西还是很顺手的,甚至可以插个指纹识别器来玩Windows Hello。

好,下面就可以开始设计了。首先是决定基本造型,本人很无耻的选择借鉴了一下苹果Magic Keyboard的大体造型,整体造型做成了一个斜切8度的圆角柱体,简洁大方,方便无边框。
[img]https://img.nga.178.com/attachments/mon_201807/21/c4Q5-dwqnK2qT3cS2bc-188.png.medium.jpg[/img]

键帽布局方面,使用了标准布局,但是为了尽可能的缩小键盘尺寸,去掉了F区和功能区与主键区的间距,所有按键完全紧密排列。可能会有人担心误触问题,但是实际上完全不需要习惯就能上手使用,毕竟原来的缝隙其实也不算大,大部分键盘也都只有5毫米左右。
[img]https://img.nga.178.com/attachments/mon_201807/21/c4Q5-b5uwKmT3cS2bc-188.png.medium.jpg[/img]

大体造型设计完毕以后,就要开始设计结构了。刚才的造型图上整个按键区域外围都有一圈包围,在设计结构的时候总觉得这样看起来太呆板,但是如果完全去掉的话,做成全悬浮式也总觉得缺了那么点儿意思,于是修改为顶部保留包围,底部去掉,侧边做成斜度渐变,并在前端“下巴”部分切一个额外的斜面。这样从侧面看,键盘整体会从悬浮式过渡到包围式,显得有一些变化;从正前方看,无遮挡的前缘可以把RGB轴体本身的光完全暴露,污染能力上佳;同时额外斜切的前缘不仅仅提供了一条镭雕Logo的空间,同时圆角设计软化了方形键盘的轮廓,也让正前方的视觉效果显得更薄。
[img]https://img.nga.178.com/attachments/mon_201807/21/c4Q5-6l18ZhT3cS11s-of.png.medium.jpg[/img]

结构设计完成以后,模型导出成STL,用VRAY渲染成效果图看一看“成品”是否能让人满意,毕竟设计图和“实物图”的感官体验是不一样的,如果有什么实物看起来似乎不协调的设计,这个阶段就可以修改,否则做成成品就没办法了。为此还额外建了一套键帽的模型,只是RGB轴体的灯光效果并不好渲染,所以效果图里并没有任何光污染。
[img]https://img.nga.178.com/attachments/mon_201807/21/c4Q5-32wfZmT3cSxc-f5.jpg.medium.jpg[/img]
[img]https://img.nga.178.com/attachments/mon_201807/21/c4Q5-dqkrZsT3cSxc-hj.jpg.medium.jpg[/img]
好像感觉效果还可以![s:ac:上]

那就开造吧!电话联系做铝合金CNC的朋友,模型打包发过去,付钱,样品开搞。[s:ac:喘]做样品大概需要一个月的时间,那么在做样品的周期内,就要着手做键盘的电路部分了。首先面临的抉择是一块PCB还是两块。因为安装按键的底板是RGB背光设计,走线压力比较重,考虑到我还要做Hub,要把电路完全设计在底板上不太合适,因为可以给主控和Hub布局的位置仅仅只有方向键上方的一小块空隙,双层板布局困难,四层板成本过高。更关键的是USB接口:如果做单板,能设计的位置同样也只有这里,那么就会导致键盘前缘的厚度增加,无法做到极限的薄。因此USB接口就只能往后放在靠后的位置,那么就只能设计为两张电路,双层的大电路板负责按键和背光,四层的小电路板实现主控、Hub和接口,叠放在键盘靠右的右上角位置。当然这里其实是在结构设计的开始就已经考虑过的问题,上面的效果图里USB接口的位置就已经是确认的了。

先设计核心:四层板保证电气性能,USB TYPE C接口连接电脑,毕竟背光键盘需要大概1.5A的供电,TYPE C接口的供电能力足够强。USB进入小板后,先连接一个USB 2.0 Hub芯片,键盘主控挂在其中一个端口,另外两个接出来作为USB 2.0母口。为什么不用3.0呢?一方面是因为3.0的Hub芯片尺寸大外围复杂,价格高功耗也高,更重要的是键盘侧边的USB接口更多是用来连鼠标、U盾、U盘等设备,USB 2.0的带宽足够使用了。嗯至少我认为是足够使用了……
[img]https://img.nga.178.com/attachments/mon_201807/21/c4Q5-inmhK2pT3cSwo-kr.png.medium.jpg[/img]

然后是底板:RGB三路背光独立,可以整体调节颜色,但是并不支持每一颗轴的灯光控制。那种太复杂了,这次先不挑战……
[img]https://img.nga.178.com/attachments/mon_201807/21/c4Q5-7l6xZbT3cSwo-kr.png.medium.jpg[/img]

PCB打样是很快的,大概一周就做好了。
[img]https://img.nga.178.com/attachments/mon_201807/21/c4Q5-539gZlT3cS18g-r7.jpg.medium.jpg[/img]

焊接过程就不发图了,因为没拍照,简而言之就是做个钢网刷锡膏,然后镊子放零件再扔进炉子烤——为什么不找代工厂呢?贵啊……工程费好几千,我还是手焊省电钱。总之两块板子焊好以后,硬件部分就算是完成了,下面就是主控的开发。其实能买到的键盘主控芯片是有的,但是如果不自己开发,很多功能,比如背光控制、多媒体控制,不说不可能实现,至少会非常麻烦,都已经费了这么大劲设计键盘了,在主控上妥协实在是有些无法接受。好在现在自己开发一个主控并不算很复杂,因为带USB功能的单片机很常见也很便宜,最后选择的芯片是常见的STM32F103C8,开发资料非常丰富,官方提供了USB设备库代码,还有很多不错的样例工程,只要在它们的基础上修改,就可以比较容易的开发出键盘主控代码。
[img]https://img.nga.178.com/attachments/mon_201807/21/c4Q5-8xuvK28T3cSsw-ek.png.medium.jpg[/img]
大概开发了两周,键盘主控完工,到底实现了什么功能后面再说。


若干周后,外壳成品到手。
[img]https://img.nga.178.com/attachments/mon_201807/21/c4Q5-g62iZmT3cS18g-xc.jpg.medium.jpg[/img]

其实还有一个小盖子,照片里没放出来。其实现在客制化机械键盘并不少见,对应的套件也很多,但因为成本考虑,几乎无一例外的都是用的冲压贴片/铝片键板+金属外框的方式实现的结构,轴体安装在键板上,键板再固定在外框。这个结构的问题是轴板的强度受限于Cherry MX轴的结构设计,厚度只能做到1.5mm,要保证强度就必须用铁片,如果再做金属外壳,键盘重的能当武器用。我都已经决定这样做了,自然不会考虑成本,因此这个外壳是完全Unibody的,不存在键板的结构,整个外壳和承载轴体的平面是一体化的。于是我就可以在背面设计加强筋,让整个轴平面的强度接近于5毫米厚的铝板。因此轴体的手感会非常非常坚实,就像是在敲大理石板一样——这当然对红轴是不利的,但是青轴和茶轴的手感会和普通机械键盘有比较大的区别,很难说清楚。

这么大尺寸的空心铝合金件在加工的时候很容易产生形变,我看也有人提到了,因此在这补充一点说明。形变必然是有的,但是通过夹具,可以把形变控制在可以接受的范围内,比如最终的壳体形变范围只有30丝,基本上是没有任何影响的。不过另外一个走刀痕迹的问题就有些让我哭笑不得了……机加工出来可都是要打磨然后喷砂的呀,如果打磨喷砂以后还能看到刀痕,这加工厂的工艺也太……换句话说,也太舍不得出工艺钱了吧……[s:a2:偷吃]不能因为自己舍不得出成本,就认为问题不能解决嘛。

大键的结构设计方面我用的是平衡杆,因为我本人非常不喜欢卫星轴,平衡杆只要能仔细调整匹配和公差,手感可以做到非常完善。其实之前我还尝试设计过一套由钢丝做成的全金属结构的平衡杆,在精细调节匹配后可以做到大键的手感和小键没有一丝一毫的区别,但是因为一致性很难保证且不容易安装,最终在这把键盘上还是使用了平衡杆标准件。手感如何,就得看最终买到的平衡杆套件的质量了。
[img]https://img.nga.178.com/attachments/mon_201807/21/c4Q5-98fxZvT3cS18g-xc.jpg.medium.jpg[/img]

组装过程也没拍图,简单来说就是插轴、焊轴、装后盖、拧螺丝。一切完成后,成品如图。
顶视:
[img]https://img.nga.178.com/attachments/mon_201807/21/c4Q5-3netZfT3cS18g-js.jpg.medium.jpg[/img]

前视:
[img]https://img.nga.178.com/attachments/mon_201807/21/c4Q5-b0i7ZaT3cS18g-bk.jpg.medium.jpg[/img]

侧视:
[img]https://img.nga.178.com/attachments/mon_201807/21/c4Q5-ig2eZjT3cS18g-sz.jpg.medium.jpg[/img]

对比一下效果图,是不是还原度很高[s:ac:花痴]

打开RGB背光以后,骚气满溢。
[img]https://img.nga.178.com/attachments/mon_201807/21/c4Q5-fqykZcT3cS18g-c1.jpg.medium.jpg[/img]
[img]https://img.nga.178.com/attachments/mon_201807/21/c4Q5-51moZdT3cS18g-dh.jpg.medium.jpg[/img]
[img]https://img.nga.178.com/attachments/mon_201807/21/c4Q5-fj82ZdT3cS18g-er.jpg.medium.jpg[/img]
[img]https://img.nga.178.com/attachments/mon_201807/21/c4Q5-52d5ZcT3cS18g-bq.jpg.medium.jpg[/img]
其实还有一个彩虹跑马灯模式,我没有拍视频所以没有图,不过全键盘RGB彩虹跑马变色的效果应该也不难想象就是。

当然,最骚的不是背光,而是激光刻上去的自己的ID。[s:a2:jojo立]
[img]https://img.nga.178.com/attachments/mon_201807/21/c4Q5-dowkZeT3cS18g-lv.jpg.medium.jpg[/img]


那么,主控到底写了什么功能呢?首先无冲是必然的,不过考虑到全键盘无冲似乎没什么意义,所以目前写的是不含Shift这些控制键以外的12键无冲,如果真不够,改成87键无冲也就是几分钟的事情。值得注意的是很多USB无冲键盘无法在BIOS下使用,或者需要去弄个设置开关切换无冲和有冲模式,我就不需要了,Windows下自动无冲,BIOS下也能正常使用,完全不需要操心。

然后是多媒体控制,Fn+F1~F12分别是打开我的电脑、浏览器、计算器、音乐播放器、邮件客户端、搜索、亮度调节、音量调节、静音、光盘弹出。然后Fn+方向键上下左右分别实现了停止、播放、上一曲和下一曲。用习惯以后,这些功能会相当实用,这也是我坚持自己做主控的最大原因之一。

然后是背光控制,Fn+1~8是预设的红橙黄绿青蓝紫白背光,Fn+9是七彩循环跑马灯模式,Fn+0是一个热力模式,这个模式下打字速度越快背光越亮,不打就会变暗。在循环跑马灯模式下按Fn+减号等号键可以调节循环的速度。此外,Fn+PrtScr可以开关背光,Fn+SclLock/Pause可以调节整体背光亮度,Fn+Ins/Del/Home/End/PgUp/PgDn分别用于在普通背光模式下调节红、绿、蓝通道的亮度,上加下减。这些设置都是硬件记忆的,断电后不会丢失,通电以后自动读取。

光污染键盘还有一个问题,如果电脑关机以后USB供电还在,可能会导致背光一直亮,所以主控对此做了处理,电脑休眠或者关机后背光会立刻关闭。正常使用时,如果15分钟没到按键,背光亮度会下降70%,如果1小时没有按键则会完全关闭,按任意键恢复正常。

再然后,键盘支持MacOS和Windows两种布局,但切换方式不是传统的背面DIP小开关,而是在断电的状态下按住W通电,即切换为Windows模式,按住M通电则是MacOS模式,自动记忆,设置一次即可。因为键盘背后连接电脑的地方是一个USB Type C接口,所以插拔很方便。

最后,对于游戏玩家,在Windows模式下按Fn+Winkey可以暂时屏蔽左边的Winkey。Mac模式下右侧的Menu会变成另外一个Command,所以这个功能会被禁用掉。

但是光说功能还是不够的,性能也很重要,虽然这把键盘并不是游戏键盘,但主控的USB回报率依然是1000Hz,同时我写了一套很特别的去抖算法,一般机械键盘的去抖时间需要30毫秒,但是我只需要不到10毫秒即可确认按键,因此从开关触发到系统识别到按键按下,延迟只有10毫秒,真要拿来玩游戏也是完全没有问题的,甚至比普通游戏键盘都要快,尤其是如果安装的是速度银轴。当然我自己选择的是最刺激的青轴,但是银轴版的我也试过,手感的确很有意思,5块一颗的轴的确不是白装的。

[s:a2:jojo立3]就到这里! [img]https://img.nga.178.com/attachments/mon_201807/22/-7Q5-1gamZ1cT3cS1xh-13f.jpg.medium.jpg[/img]
…..-avatar

…..

我这有一张航母订单,楼主能接么?[s:ac:goodjob]
burnhardt-avatar

burnhardt

Reply to [pid=286640856,14554553,1]Reply[/pid] Post by [uid=41551602]DiamondDogs[/uid] (2018-07-21 14:21)

先交定金1亿
[s:ac:偷笑]
Evanpcs-avatar

Evanpcs

自制键盘带灯吗
レトロ-avatar

レトロ

定金收吗
Cylows-avatar

Cylows

楼主厉害,插眼,期待一下成品图
JujuSlackish-avatar

JujuSlackish

[quote][tid=14554553]Topic[/tid] Post by [uid=43068694]_archon[/uid] (2018-07-21 14:21):

看了好几年NGA,终于注册个号来发第一贴[s:ac:goodjob]


泥潭里经常会出现机械键盘买哪个好的帖子,这东西的确挺难选的,便宜的总觉得有缺点,但公认最好的filco又不够……嗯……酷炫。恩基爱论坛的精神是什么?当然是不服就干,那么就肛它一回,从头开始做一把机械键盘好了。

先明确需求。

第一:104是不要的,早就习惯了87,所以完全不考虑数字小键盘。当然更小的比如poker那种也不考虑,少键始终还是得不偿失。
第二:要做到小,越小越好,现在手机不是流行全面屏么?那么键盘就来一把“全面盘”好了。
第三..[/quote]能搭车求一个吗,实在是太喜欢了,交钱求搭车
Polo le GM-avatar

Polo le GM

坐等更新

我想DIY个飞机,LZ接吗……
. Kirby .-avatar

. Kirby .

本来以为楼主是个青铜,没想到是个王者
Fluffè-avatar

Fluffè

可以上量出货了
Kira-avatar

Kira

就这么太监了?成品呢
matcha-avatar

matcha

proe+ad
完全想不明白楼主是哪行的[s:ac:囧]
Warcock-avatar

Warcock

看着有点笨重啊
nem0-avatar

nem0

不管最后成品如何,就冲楼主这精神,点个赞先
BOT Ramirez-avatar

BOT Ramirez

Reply to [pid=286642624,14554553,1]Reply[/pid] Post by [uid=10973939]leo900320[/uid] (2018-07-21 14:36)
来了来了。
CharredMelon-avatar

CharredMelon

6666…… 接不接歼星舰的单?我们需要大概1兆
AidanM1888-avatar

AidanM1888

哇 这个赞啊 楼主接单么 这一套下来 多少米了?
Koren-avatar

Koren

私人订制,价值投资典范?
BOT Ramirez-avatar

BOT Ramirez

Reply to [pid=286644246,14554553,1]Reply[/pid] Post by [uid=41154349]極極可畏[/uid] (2018-07-21 14:50)
其实算下来一把的物料成本价格并没有比filco贵多少,就是开发设计也是有成本的,但是这些不好算。
Frozenmalta-avatar

Frozenmalta

这比买个成品贵多了吧[s:ac:羡慕]