廉颇老矣,尚能饭否----G80-1191终极改造

还是自己动手转码吧,呵呵,谢谢各位了

如有速度或者图挂了的问题,请直接看博文:http://hi.baidu.com/gearedbyby/blog/item/81180e01cc585e8ae950cdb8.html

改造工程终于基本完成,也算了却一直以来的一个心愿。改造一把完美的1191,很早就有这个想法,不过总是磨磨唧唧,还有各种破事烦心,最近终于有点时间和心情来完成这个工程了,算算时间好像也过去半年有余了,不过总算是有一个交代了,也算是为下一个心愿做好准备工作吧。废话少说,言归正题 1191就不多介绍了,就放最上面一张证件照好了,不知为何物的可以先看此篇文章

http://hi.baidu.com/gearedbyby/blog/item/e73853c5e729e8a18226acfc.html

刚开始玩键盘偶得,不过一直是绝对主力,而且是唯一主力,我把一腔热血都喷他身上了。说说 改造宗旨吧,其一就是把各种料胡乱往上堆,不过为了风格和血统的纯正,只用原厂的材料。其二就是把功能改到最强。其三就是任何改造都要可逆,也就是不破坏原键盘,在必要的时候可以无损的还原成原滋原味的1191。 先来说堆料吧,好像也没啥很特别的,随便看看就好了

 

虽然1191的做工没的说,不过连线还是继承了cherry一如既往的臭毛病,不用插接件,直接焊在板子上,我忍他很多年了,这次既然有大动作,整天带这个线也是够烦人的,就先拿他下手了

线拆掉,板子焊个座先

线也压好金属头,装到插头里,看起来还挺匹配

抽插自如,很好

遥想当年也不舍得用啥好货,我给补补吧,加俩oscon电容补补,纯yy了,没啥意义基本

键盘的小键盘布局本来是这样,为了配合之后的性能改造,需要添加一个cherry编程键,不过本着不能破坏pcb的前提,咋整呢。继续折腾

拆掉加减号的帽子,没看出啥道道,继续拆

把加号的卫星轴也拆掉,发现pcb上为啥这么多洞

拆个彻底,把轴也拆掉,这下看清了,原来做了兼容设计,原来加号的位置可以完美变身两个键,看来哥的cherry键不愁没地方放了,cherry为哥想的真周到,知道十几年后哥要改造这个键盘。

从背面看得比较清楚,黑色圈的是原来的加减号,红色圈是加号位置的两个兼容轴的位置。可以看到如果正常安装的话这两个轴的小塑料脚会和卫星轴的孔打到一起,所以为了不冲突,cherry把这两个兼容轴都旋转了90度安装。从下面那张图可以看到,一个朝左一个朝右

全茶轴实在是用腻味了,哥也俗一把,随大流玩把混轴,不过也是想着既然完美改,那就让各种手感在1191上都能体验吧,不过我还是最爱茶轴,主键区雷打不动的茶轴,其他一个区一种轴,个人认为在同一区里混轴是一件很脑残的行为

scroll键原来的功能被废除,被当做切换配置文件的键,因此配一个大力的绿洲轴,看着还蛮养眼,两个老黑当他保镖

方向键也常用,混沌同学赞助的四个红轴,用在这了,红轴还不错,不过终究比茶轴还是差了那么一点点

数字区为了爽快,反正我也不咋喜欢用,换上劈里啪啦嘎嘣脆的青轴,给numlock一个特写,自己换的翠绿色超高亮led

不知道多少有为青年被哥这张论坛签名毒害,拜倒在键帽灯的脚下

cherry键的位置问题通过原厂的兼容设计搞定了,就是这个位置,参考g80-2100的设计,编程键相对日常操作比较危险,为了尽量避免误触发,使用大力的灰轴。1191特有的f13~f16,就留给白轴兄弟了。

轴都折腾完了,开始折腾键帽,要上镜了,洗洗更健康

集体裸泳完毕,继续集体裸晒,1191暂时下岗,8115顶上

cherry键的位置搞定了,接下来搞定键帽的问题。先搞定加减号,参考1800系列的小键盘布局,加号变小,减号下移。1191是白二色,所以取一把白二色的g81-1800的加减号来完成这个任务,于是就变成了这样

接下来搞定cherry编程键帽,估计我有点完美主义,杜绝山寨,只要原滋原味,拿出一把全新的g80-2000

2000的cherry键在和小键盘原来的减号在同一列,这就意味着高度能完全匹配

任凭弱水三千,我只取一瓢饮

于是乎就变成了这样,不该上盖好多年,一张罕见的有上盖的图,按说cherry是带灯帽,应该接个红灯用于警示处于按键编程状态,不过实在是不想再pcb上打孔或者飞线这些山寨做法来改造,就不给cherry键装灯了,等下次自己做键盘再把这个设计补上吧。

原滋原味,颜色、高度、风格完美匹配

又是混沌同学赞助的wnv版本原厂红二色esc键帽,我很欣赏他(我说的是键帽),yd的磨砂,那么鲜明,那么出众

多出来的f13~f16在windows里没什么用,就在新固件里改成这几个功能了,前三个是小声大声静音,第四个是打开计算器。这几个键帽也是原厂货,不过用在这里颜色不是很匹配了,也就弄上来示意一下了,最终版还是用原装的f13~f16看着不那么突兀

来张整体图,灰色键帽为1191原装白二色键帽,白色键帽全部更换为原厂升华键帽

主键区来一张,升华键帽还是那么yd,二色的视觉效果,pbt的手感和寿命,相机白平衡实在太烂了,实际升华的帽子是雪白雪白的,结果拍出来总是太冷色调了,郁闷的说,看来整个单反还是有必要的

有人躲在这偷笑

顺带附上一张轴分布图,懒得拆空格,也是茶轴

下面转入正题,开始功能改造,上面的图其实已经可以看到主控位置有一块绿色的电路板取而代之,原装主控实在太弱了,为了实现强大的性能,换主控吧,没啥好说的

[/url]先把1191的原理图抄出来,顺带把扫描矩阵的码表弄出来

然后选一个功能强大的mcu设计一个转接板,代替原来的主控

做出来就是这样了,走线是不是有点飘逸,哈哈,右边那个空位是外置存储芯片,后来发现新主控的片内存储已经够用了,就没用外置的了,所以也就不焊了

看起来很大,其实也就三个键帽那么大

焊上排针

怎么看怎么土,我郁闷

拆到插座里都把插座撑爆了

无奈啊无奈,去找了个好的排针,又焊了一块,瞬间变尿性了,太神奇了,哈哈,好晃眼

换个姿势再来一张

配套的插座也比原来帅气多了

板子原来的主控和外置存储是这样的,都拆下来

不再需要外置存储器了,不管他了,给主控位置焊上插座,好插新做的主控转接板

新core旧core合影,一代新人换旧人

新core登基 因为准备纯硬件编程,类似g80-2100,利用自身的cherry键即可完成所有编程,没有去破坏pcb或者飞线之类的,为了有所反馈,添加一个蜂鸣器

把g80-8113的这个蜂鸣器拆下来,为了1191真是啥玩意都拆光了

cherry又给哥做好兼容设计了,不知道为什么原因蜂鸣这个功能没有坐上,不过位置留下了,响应的驱动电路也有,红色是蜂鸣器位置,黄色是需要加的跳线

焊上去,完美

不过这个家伙的嗓门实在太大了,不得已加个胶条让他别喊的那么爽 到这里好像硬件改造全部完毕,万事俱备,只欠东风。不过,其实改造工作到这里才刚刚开始。硬件改造这事倒是毛毛雨,剩下来的从写固件对于我这个软件盲来说基本算是个够浩大的工程了,硬件其实很早就弄完了,写固件断断续续的写了好几个月。就上学的时候听老师讲过几个语法,基本都忘光光,让搞软件的同事又指导了下,然后开始裸写代码,翻阅各种案例,下载ps/2总线详细规范。因为选的是一个通用的mcu,不是给普通键盘专用的那种主控,那种都封装好ps/2协议了,只要写很少的代码扫描矩阵发送给总线控制器就行了,这个通用的家伙不行,只能自己看总线协议,一点点用软件写出这个协议,不过这样也好,不会像专用键盘芯片那样只能对ps/2总线做一些简单的设定,我可以最大限度的自由配置ps/2参数。诸如通信频率,发送速度等等。对于职业软件人员来说写这点东西估计不算啥,不过对我来说是够折腾的了,光完成ps/2协议,实现一个最普通的键盘,就花了一两个月的时间才完成。搞定最基本的东西以后,开始搞上层建筑了 一直一来就想做一个完全硬件编程的编程键盘,虽然cherry也有可编程键盘,8113,2100之类的,不过8113虽然是硬件存储配置,但是还得借助软件来编程,2100虽然纯硬件编程,不过功能不够强大,外形也不适合使用。其他各家oem厂家做的可编程键盘也都是歪瓜裂枣,更不肖说他们悲惨的做工,所以都直接无视了。而且这些键盘最大的硬伤就是不能在宏里面按键间插入延时,不能插入延时,编程功能在游戏中就形同虚设了。而且也少有全键盘可编程的键盘,基本都是只特定的一些编程键可以变成而已,好像带连发设置的键盘也没有,哎,键盘厂家的研发也只不过是混口饭吃,永远不会知道玩家最想要的是什么。 废话了半天,说说我想做的功能吧,就是做一个全键盘可编程的键盘,纯硬件编程,不需要软件配合,省的换了机器还要装软件编程的尴尬。还有就是纯硬件存储编程数据,这样换了任何机器编程数据都还在,不依赖pc机。这样一来随时随地编程数据都在,随时随地都能再编程。另外就一套编程数据有点少,根据本次选的主控,除了默认的标准键盘配置外,可以分别存储4套硬件配置,可以直接热切换,即时生效。 硬件规格 配置数:默认标准us键位一套,全键盘独立可编程4套,可随时热切换 每个键编程容量:任意一套编程配置中,全键盘任意键的编程容量均为最大43个键,任意键之间均可插入任意不超过65535毫秒的延时,也就是任意键之间均可插入任意不大于65秒的延时,时间精确到毫秒。 scroll lock键实在是没有用,被改用途做配置切换键,cherry键则用于编程按键。默认标准us配置下,scroll lock灯灭,整个键盘处于不可编程状况。要切换至其他四套可编程配置,先按一下scroll lock键,然后按小键盘区的1,2,3,4选择想要进入的配置,进入后scroll lock灯亮,表示进入可编程配置。如想进去其他套配置,依法炮制即可,想回到默认us不可编程配置,选0即可。 很多人应该认为按一个键是一个事件,其实是两个,按下去是一个,放手是另外一个,你按一个键,按下去键盘会告诉pc机你按下去了 ,你放手,键盘同样还会告诉pc机你放手了,打字的话可能不会太注意到这个事情,不过玩模拟器和游戏就很容易发现这个事情了,飞机类的和横板通关类的模拟器很明显了,一直按住不会一直出拳或者发子弹,就是因为只发了通码,pc机只认为你按了一下,需要不停的按键,也就是发一下通码再发一下断码才表示一直在按键,才能达到连发的目的。另外模拟器里还经常有蓄力的操作,其实很多很日常的招式也都需要蓄力才能发的出来。我基本不玩pc游戏了,只是还整天玩三国志2的街机,拿个最简单的招式来讲解,wasd是上下左右,j是拳,k是跳,下上+拳,最普通的招式,用手放这个招式很好放,但是用模拟器自带的宏,可能很多人都写不出来,简单的写成swj顺序的发出这三个键是发不出这个招式的。需要大概写成sssswwwj这样才能放出这个招式,也就是说按住下现需要蓄一会,再按上和拳。了解了通断码的重要性,就可以知道应该怎么设计编程系统了 如何编程:很简单,在默认us配置下,也就是scroll lock灯灭的情况下,是不允许编程的,想要编程按键,先按上面说的方法进入一套可编程配置,比如说第一套,先按scroll lock,再按数字区的1,scroll lock亮起,表示键盘处于可编程配置。其实每套可编程配置再没编程的默认情况下,就是一个普通的us键盘,只是处于编程请款下全键盘的键都是可编程的,你可以把任意键拿来编程,当然,剩下的没有经过编程的键还是那个键在us键盘里的功能。比如说我想编程u键,先按cherry键,听到蜂鸣器滴的一声,编程按键的时候的每个按键操作都会有蜂鸣器确认。然后接下来按u键,表示要对u键进行编程。接下来有三个关键字,一个是M(make),一个是B(break),一个是R(repeat),按m表示接下来的输入的是通码,b表示要输断码,r表示输入一个需要连发的键,也就是只要这个键处于按下状态,就会不停的发这个键的通断码,来达到在游戏里连发的目的。要插入延时的话,按T关键字,然后用小键盘输入需要的延时,单位是毫秒,输入完毕再以T结尾表示延时输入完毕,最后编程完毕以后再按一下cherry键表示改键编程结束。 废话了这么多,来个实际例子吧,吞食天地三国志2里面,模拟器设置为wasd是上下左右,j是拳,k是跳,我想设置一个放下上拳的宏,不加延时的话,用键盘编程的话应该输入这个M S B S M W B W M J B J,也就是先发s的通码,再发s的断码,然后是w,然后是j,这就是普通不支持插入延时和区分通断码的编程键盘的模式。只能按顺序连续的发出你所编程的字符,将这个宏录制到按键R上,看下面视频

http://player.youku.com/player.php/sid/XMTg2MzYyNjc2/v.swf

由于没有设置延时,由于键盘很迅速的连续发出这几个键,导致模拟器根本就没响应出来,所以并没有放出想要的招式,实际上只是向下走了一下,然后向上走了一下,然后出了一拳。不过键盘发的太快了,模拟器还没有反应过来,反应过来走的距离也太小了,可能看不出效果,把每个键之间都插入一个1秒的延时就可以很容易的看出效果了。应该输入这个M S T 1000 T B S M W B W T 1000 T M J B J,将这个宏录制到按键T上,看下面视频

http://player.youku.com/player.php/sid/XMTg2MzY0NjI0/v.swf

这下很明显的看出效果了,向下走了一下,然后向上走了一下,然后出了一拳 下面来看看,如果通过区分通断码和加入延时来发出这个招式,先想一下手的操作,先按住下一会,虽然可能你玩的时候只是觉得我并没有可以的去蓄力,但是人的反应时间都是秒级的,键盘的通讯时间都是毛毫秒级的,如果键盘按顺序迅速发出下上拳的话,你可能下都还没按下去。所以你的操作对于电脑来说就是蓄了力的。所以看我们手的操作:先按下,稍等一会会,放掉下,然后去按上,然后稍稍等一下,右手去按拳。等招式发出以后,按上和按拳的手一起释放。其实按完上以后去按拳的这个时间差很微妙,也就是为啥新手刚上来不是那么容易很准确的发出下上拳,习惯一段时间以后就很容易放出来,就是因为习惯了那个时间差。搞清楚手怎么发招式,把模型归纳出来:先发s的通码,延时75毫秒,再发s的断码(这个操作表示s键被按下了75毫秒,也就是蓄了75毫秒,这个时间是实验出来的,不过游戏里的蓄力一般都是几十到一两百毫秒,很容易就可以实验出来),接着马上发w的通码,延时25毫秒,接下来不发w的断码,而是发出j的通码,(表示按w,但是不放手,25毫秒以后再按下j,发完j的通码以后,招式应该就放出来了),然后延时一个无所谓的时间,还是75毫秒好了,然后发出w的断码和j的的断码。编程应该输入这个M S T 75 T B S M W T 25 T M J T 75 T B W B J,将这个宏录制到按键F上,看看下面的演示视频

\http://player.youku.com/player.php/sid/XMTg2MzYyOTA0/v.swf

[color=#000000]很轻松就放出了下上拳的招式。可见区分通断码和加延时的作用,可以完美模拟手的操作,只要人手能按出来的,这个新固件都可以模拟出来。[/color] [color=#000000]下面随便演示下连发,这个很简单,用关键字R 再加上你想要连发那个按键就行了,将这个宏录制到按键G上,看看下面的演示视频[/color]

http://player.youku。com/player.php/sid/XMTg2MzYzMDMy/v.swf

[color=#000000]其实还有个关键字W,用来输入win的多媒体键,因为键盘上也没有多媒体键,所以没有办法通过按键来编程按键,所以先按w,然后按下表直接输入多媒体键的扫描码就行了,实际上这个功能也赋予了键盘输出任何非标键码的能力,如果键盘不是用于windows系统,用于别的系统,你也可以自定义别的系统需要的键码,或者配合上层软件来设置一些对你有意义但是系统不会做出相应的键码来。这个对我来说意义不大,就不演示了[/color] [color=#000000]灯也都改成呼吸灯了,用软件实现的,三个灯同步呼吸,灭就是灭,亮就是呼吸,呼吸快慢和方式可以软件调节,本来三个灯都是翠绿的,不过在scroll lock被赋予了新的任务以后,为了以示区别,把它弄成蓝灯了[/color]

http://player.youku。com/player.php/sid/XMTg2MzYzMTY4/v.swf

到这里基本好像算是完成改造了,以后剩下的工作就是慢慢给固件添加更多想要的新功能,其实还有蛮多高级功能可以添加的。固件改造只能演示下功能,没有硬件改造那么多花骚的图片,不过其实大部分时间都花在了写固件上,四五个月是有。费了这么大的劲终于算是基本改造完毕,不过这也是为今后的工作打个基础,还是值得的。实际上利用这个新主控板,已经可以救活任何古董或者非标接口的薄膜、机械类键盘了,软硬件都完全自控了,下次就可以在此基础上完全从新做一个更完美的键盘了。