从0开始做一把蓝牙双模RGB热插拔机械键盘--1800mini - 电脑硬件 - Chiphell - 分享与交流用户体验

本帖最后由 yangdigi 于 2018-5-23 14:05 编辑

[  前言  ]
从上次发贴过去已经有一年多了。这一年多很多时间都是在为这个帖子里面要发的东西做的准备。此贴并不是教程贴,主要是分享一下结果和过程。
1800mini这个配列是在2016年12月的时候决定要做的,其本身是40%的延伸,作为40用户的桌面键盘,取名1800mini也是因为我很喜欢G80-1800的配列。针对的主要是小众用户,40用户用起来肯定无压力,60用户一定要使用的话,需要重新设置一些符号键来符合自己习惯。

1800mini_08.jpg (174.15 KB, 下载次数: 0)

2018-5-23 13:12 上传

[  Part.1 成品展示 ]
知道这部分才是大部分人最想看的,所以这次调整一下帖子的顺序。
一共的东西就这样,键盘本身已经组装好了,再加一个拔键拔轴器,插上键帽和轴即可使用了。▼

1800mini_00.jpg (204.79 KB, 下载次数: 0)

2018-5-23 13:12 上传

背面的设计,电池是完全看不到的。同时这次的外壳不是由我设计的,是找Xikii设计的。主要是Xikii设计的这个轴孔可以非常好的适合热插拔。关于这个轴孔的介绍可以看看之前发过的一个帖子:国人智造精品客制化机械键盘——DIYer72https://www.chiphell.com/thread-1569988-1-1.html

1800mini_01.jpg (155.9 KB, 下载次数: 0)

2018-5-23 13:12 上传

键盘的接口是Type-C,以及电池的开关位于右上角。键盘有一定的坡度。▼

1800mini_02.jpg (124.01 KB, 下载次数: 0)

2018-5-23 13:12 上传

一共有四颗指示灯,四颗指示灯也是RGB的。当然它们的作用不会单纯只有指示Numlock、CapsLock和ScrollLock这些,包括但不限于指示键盘本身的各种功能、电池电量等等。轴的热插拔座是凯华的。▼

1800mini_03.jpg (229.91 KB, 下载次数: 0)

2018-5-23 13:12 上传

准备好轴就开插了,五脚轴或三脚轴都能使用。要RGB效果就使用透明壳的轴。▼

1800mini_04.jpg (254.62 KB, 下载次数: 0)

2018-5-23 13:12 上传

这个轴孔樱桃轴可以很轻松的插进去,并且卡得很好。但是非樱桃的比如下图的aliaz轴,要用力才能压下去卡住了。只要插进去卡上都特别的牢,不会晃动。▼

1800mini_05.jpg (160.16 KB, 下载次数: 0)

2018-5-23 13:12 上传

这里安装轴时要注意轴的焊脚给捋直了,如果插的时候发现阻力比较大,可能就是因为焊脚不够直,不要上蛮力,重新捋直了插。▼

1800mini_06.jpg (221.14 KB, 下载次数: 0)

2018-5-23 13:12 上传

将轴全部插好。▼

1800mini_07.jpg (232.01 KB, 下载次数: 0)

2018-5-23 13:12 上传

装上键帽,完成了。▼

已经可以使用了。

1800mini_09.jpg (115.78 KB, 下载次数: 0)

2018-5-23 13:12 上传

1800mini_10.jpg (147.89 KB, 下载次数: 0)

2018-5-23 13:12 上传

这个键盘的尺寸,再对比一下40,这个我的BLE40。可以看到主键区的布局其实是基本一样的。1800mini基本上不用考虑便携了,这全部整体装好的重量有1.33kg,而下图中的BLE40一共300g不到。▼

1800mini_11.jpg (174.42 KB, 下载次数: 0)

2018-5-23 13:12 上传

对比一下CA66的尺寸▼

1800mini_12.jpg (251.98 KB, 下载次数: 0)

2018-5-23 13:12 上传

对比一下68的尺寸▼

1800mini_13.jpg (228.94 KB, 下载次数: 0)

2018-5-23 13:12 上传

[  Part.2 拆解 ]
键盘主要是五部分组成的。上壳、底壳、中框、PCB、还有指示灯的导光柱。这里PCB已经固定上了上壳上,我就不单独再拆开了。▼

1800mini_20.jpg (178.31 KB, 下载次数: 0)

2018-5-23 13:12 上传

中框是用亚克力CNC的,也就是不少人说的乳壳,比激光切割亚克力成本高很多,它并不是平的,与底壳的接触部分都是设计有凹槽来和底壳互相卡住的。▼

1800mini_21.jpg (125.59 KB, 下载次数: 0)

2018-5-23 13:12 上传

喷砂是为了更好的导光。▼

1800mini_22.jpg (181.81 KB, 下载次数: 0)

2018-5-23 13:12 上传

[  Part.3 从0开始  ]
来说说PCB的部分吧,开始回到标题“从0开始”吧。
之前我发过这个帖子:全球首发,DIY了史上第一把可编程无线优联40%机械键盘
https://www.chiphell.com/thread-1499401-1-1.html
其实从这篇帖子里可以看出,对于编程这些我都是门外汉,安装环境都是一股脑的装上一堆,能保证编译成功就成。这算是自己DIY键盘的开始。

画PCB的技能: 优联40%迷你无线机械键盘——YD40_Wireless诞生记

https://www.chiphell.com/thread-1560853-1-1.html
当时这个PCB,也可以看作只是一个简单的固定轴的轴板,就是为了不用飞线。不过虽然简单,这也算是从一开始将画PCB入门了。

为了方便使用,我又写了一个网页改按键的编辑器,使用的js+css,大概花了一个月的时间来学习这俩。▼

1800mini_30.png (396.52 KB, 下载次数: 1)

2018-5-23 13:12 上传

1800mini的固件,固件本身是基于TMK的,但是TMK提供的功能相对来说还是比较简单。还好有很多的资源可以学习。

PCB如下▼

1800mini_31.jpg (291.43 KB, 下载次数: 0)

2018-5-23 13:12 上传

比起最早一个画的,复杂了很多。▼

1800mini_31_1.png (230.9 KB, 下载次数: 0)

2018-5-23 13:12 上传

键盘主控是Atmel的at90usb1286,相信稍微了解过客制化键盘的都知道32u4用得特别的多,那也是因为如TMK这些固件,对32u4支持得非常的好。at90usb1286比32u4在硬件规格上更高一些,价格也翻倍了,非常的没有性价比,用它主要还是受限于自己现在的能力,使用它能完成我的目标,成本什么就先抛开了,又不是量产品。▼

1800mini_32.jpg (271.66 KB, 下载次数: 0)

2018-5-23 13:12 上传

▲继续上图,蓝牙主控使用的是MDBT40,而蓝牙的固件使用的是Adafruit Bluefruit LE的,同样的属于成本偏高型。如果只是做一个蓝牙键盘,只使用MDBT40这颗mcu为nrf51822的就够了。我没有这么用的理由是就蓝牙固件而言,Adafruit提供的比我自己写的稳定性高多了。Adafruit也提供示例和文档,入门起来会快很多。

接下来是RGB,RGB灯控使用的是两颗IS31FL3737,每颗可以控制48个RGB灯。如海盗船罗技等RGB键盘,有使用三颗IS31FL3731作为RGB灯控。▼

1800mini_33.jpg (285.79 KB, 下载次数: 0)

2018-5-23 13:12 上传

3737的价格大概是3731的两到三倍。当然作为无线键盘还需要充电的部分,这里使用了MCP73831T,线路比较简单,当然也就不要指望支持快充什么的了。▼

1800mini_34.jpg (262.58 KB, 下载次数: 0)

2018-5-23 13:12 上传

为什么使用3737呢,它是后来出的更适合RGB灯的灯控,看下图就知道了,标准的矩阵方式控制,同时这样在画PCB的时候走线也更容易一些。有想要详细了解的可以去参看IS31FL3731和3737的文档。同时这个系列还有3736和3737,区别仅在于支持灯的数量不同,3736是32颗RGB,3733是64颗。▼

1800mini_35.png (466.14 KB, 下载次数: 0)

2018-5-23 13:12 上传

RGB灯一般分为两种,一颗是自带IC的,一种是不自带的。不自带IC的,直接理解为它就是同时集成了三个灯(红 绿 蓝)。使用这种独立灯控的好处主要还是简单高效,AVR的主控本身性能有限,这里只需要让键盘主控通过IIC,给灯控发送对应的控制命令,然后就都由灯控来控制了。同样的有兴趣的可以了解一下灯控的官方文档,文档里已经很详细的说明了怎么控制灯。
PCB上还有8颗底灯,使用的自带IC的sk6812mini,这种只需要一个io就可以n个灯,但这里使用它主要是因为它的亮度更高。

上面就是键盘的硬件组成,然后说说软件。从USB键盘,到USB/蓝牙双模键盘,其逻辑复杂度增加了不是一点半点,不然它就不够好用。如下图(图自kai)▼

1800mini_36.png (76.26 KB, 下载次数: 0)

2018-5-23 13:12 上传

上面已经说了灯的控制方式了,在这个键盘里,蓝牙的实现其实也是差不多,即键盘主控把命令发送给蓝牙主控,然后以蓝牙主控来把按键发给对应的设备。
现今的不少双模或蓝牙机械键盘不够好用,我简单总结一下主要是几个原因。
1.蓝牙连接不稳定。
2.键盘从节能到唤醒速度太慢。甚至不少键盘在键盘节能后,按的第一个键可能还根本不会输出。
3.续航能力太弱。
4.不支持按键编程。

所以主要也是针对这几点去改善,第一点不稳定有很多其实是固件与模块本身的原因,但是量产的键盘,其中很多都是买的成品方案,也不能指望再改进什么了。所以,
针对1,使用蓝牙模块为进口优质产品,并且蓝牙固件也不是我这种半调子水平写出来的,同时使用蓝牙模块也不用自己再去考虑天线的问题。而事实证明这款模块的天线设计效果非常的OK。
针对2,不考虑那么极致的省电,比如1800mini使用的电池是3800mah时,具体的时间还未完全测试。但是就BLE40使用1500mah的电池来看,不开灯的情况下,每天使用15小时+,使用1到2个月没问题。虽然达不到有些键盘电池用半年那种续航,但是也够满足了。同时还提供了临时关闭节能的功能,这样可以让键盘处于荧光棒模式(键盘灯一直亮)。
针对3,这里有从硬件上的优化,硬件上尽量的去减少耗电,即使都是BLE的蓝牙模块,在做为HID工作时,它们的耗电都可以差到10倍以上。目前这个模块在蓝牙工作时,它本身耗电只有1.xma。可能还有不少人记得BLE60,那个使用的CSR1010的模块,实测其本身工作时耗电在10ma以上。然后就是配合合适的节能设置了,平衡使用体验与续航。
针对4,1800mini支持全键编程,共8层可以设置。

再说灯,老实说RGB灯,要玩灯效肯定是玩不过品牌厂商的,人家是一整个开发团队在做,而我,只有一个人。目前只是做了一个简单的上位机,实际只能算是一个demo。图形界面这块的编程我还不会,这个应用也是用ahk写的,通过rawhid传数据给键盘,来实现控制。

1800mini_37.png (7.9 KB, 下载次数: 0)

2018-5-23 13:12 上传

1800mini_38.png (10.86 KB, 下载次数: 1)

2018-5-23 13:12 上传

1800mini_39.png (7.85 KB, 下载次数: 0)

2018-5-23 13:12 上传

现在主要是实现功能上的,整体控制按键灯的模式切换、单独控制某个灯的颜色,先把这些功能在上位机里都实现了,之后嘛,等我get一下新技能,会重写一个界面好看的应用的。

RGB灯控肯定拼不过品牌厂,但是最大的好处就是自由度,以及可以不断的更新完善。没有那么多特别炫酷的灯效,目前我只提供了20多种灯效。但是,也多了一些实用的。
比如层指示的灯效,每个层用不同的灯的颜色来指示,并且只有这一层上面有设置的按键的灯才会亮。这个也可以用于键盘的游戏模式,比如特别的游戏里,只让特定的按键亮等等。
总之,先打好硬件基础。

最后再说说刷固件了。这次也使用了u盘刷固件的方式,这个是基于lufa上改进而来的,改进的主要工作也是之前由kai完成的。
进刷机模式按住Esc键不放,插入数据线。也可以用键盘上的热键重启键盘,此时按住Esc不放(这样不用重新插拔线)。这是改进一,这样键盘就不再需要多挖洞弄一个刷机按钮了。

1800mini_39a.png (5.82 KB, 下载次数: 0)

2018-5-23 13:12 上传

把固件拖到u盘里,直接覆盖原文件,这是改进二,把这个U盘的虚拟空间改大了,这样可以直接覆盖文件,而不需要先删除。再选择弹出u盘或者直接键盘按Esc退出刷机模式,即可完成更新固件。同时也可以在网页上直接上传这个显示的u盘里的bin文件,来读取现在的按键设置。

1800mini_39b.png (27.09 KB, 下载次数: 0)

2018-5-23 13:12 上传

还有一个改进三就是支持u盘更新eeprom。补充说明的是,这个u盘里面显示的文件只是映射的flashrom和eeprom的内容,并不是真正的能当一个u盘使用,不能往里面放其他的文件的。

[  Part.4 结语  ]
其实我没法从技术上给一些指导信息,毕竟我依然还是外行,但是希望自己的一些经验能对一些玩家们有所帮助。
这个1800mini算完成了吗?不,它还仅仅只是开始。还有很多在固件上想要实现的想法还等着我去完善。目前基本上使用已经无大碍。
最后虽然这个键盘主要都是由我来完成的,但还是要感谢很多过程中帮助过我的人。
特别是kai,解答了非常多疑问。
Xikii帮忙设计了外壳,比我自己能做到的外壳好很多。
劣徒和Xikii提供了服务器空间,让我又少花了不少时间折腾和维护。
以及还有很多一路支持的人。

最后是ID照,本贴还有更多的一些细节内容我会稍后再补充。

1800mini_40.jpg (164.69 KB, 下载次数: 0)

2018-5-23 13:12 上传


Original url: Access
Created at: 2020-06-23 11:18:11
Category: default
Tags: none

请先后发表评论
  • 最新评论
  • 总共0条评论