外设天下 - 电脑外设发烧友聚集地

我的人缘0

[讨论] 我正在开发一款键盘主控kcarm(4月18日 第一版完成)

148 119006
楼主
跳转到指定楼层
本帖最后由 域外天魔 于 2012-4-18 22:19 编辑

主控程序完全自主编写,争取实现最大灵活性,避免版权纠纷。

现在免驱动全键盘可编程和USB全键无冲的功能已经完成。有双Fn支持,8个层(Normal, Fn1, Fn2, Fn1+Fn2)*(Number Lock on/off),10个配置方案切换。

仅USB口不设PS2口支持(USB全键无冲了还要PS2干毛?)。计划从数字小键盘或POKER一类的小键盘到104标准键盘都支持,并且支持MAC及Linux。

由于主控芯片运算速度很快,因此实现低延迟也被作为目标之一,我会尽量让延迟低于1毫秒,实现首个微秒级键盘主控,用键盘玩电子竞技的话,键盘自然是越快越好。

主控程序已经在开发板上调试成功,正在画板中(这个得边学边做,我是搞软件的),我会陆续公布开发进度。

由于功能还没完全定型,各位有啥功能建议尽管回帖提出。

想来也该给它起个名字,暂时没想好,起个开发代号叫:“魔器” 得了,英文代号叫 Evil Power。

(new)2012-4-18所有测试全部完成,服务器已经配置完成,域名是kcarm.com,意思是用ARM处理器做的键盘主控(Keyboard Controller powered by ARM)。不过呢,还没时间制作网页呢,所以还只有键盘配置界面的网页,这部分只有运行了客户端程序才看得到界面。主控的中文名字还没想好,先暂时就用英文域名kcarm来称呼她吧。
目前版本的功能如下:
* 8x20键盘矩阵+35键直连按键,或63键直连按键。
* 支持USB全键无冲(如果是键盘矩阵按键则需要有二极管来支持无冲)。
* 行扫描或列扫描可配置。
* LED指示灯位置可配置。
* 全键盘可编程,8套方案,每套方案9个层,加电默认方案0(可配置)。支持3个Fn键。其中3个Fn键的同时按下全组合是8个层,NumLock灯亮时为1个层(可选,可关闭)。
* 按键消除抖动的全局时间可配置(单位:毫秒)。
* 每个物理按键的消除抖动时间可单独配置(单位:毫秒)。注意消除抖动时间只影响同一个键快速两次按下的时间,这个主控的单次按键响应时间小于1毫秒。
* 网页配置界面,云存储,不用担心重装机器找不到程序和配置文件了。配置客户端压缩后仅380KB(目前仅推出Windows客户端,Mac OSX和Linux的将稍后发布)。
* 支持Windows/Mac OSX/Linux,全平台免驱动。
* 支持固件升级,只需网页上单击一下鼠标就能升级固件,简单轻松。

2012-3-31核心功能基本都完成了,包括键盘主控芯片内的控制程序、本地客户端、远程服务器、USB数据传输、固件烧录、网络数据传输、web服务器与远程服务器通信。现在还有一些功能模块还没有完成调试和测试,基于php的网页设置界面未完成,配置数据的SQL数据库存储未完成。这4个多月写了两万多行程序,其中3月份写了近1万行,真没想到小小一个键盘主控加上网络升级配置之后竟然弄得这么复杂,好在是个人爱好写着玩。不过还是尽快出能用的第一版,然后再慢慢改进吧。
2012-2-26bootloader基本完成,网络和本地程序的通讯协议也设计得差不多了,下周开始做客户端、浏览器和服务器端的程序开发。由于bootloader设计得比较复杂,耽误了不少时间,接下来的工作也挺繁杂的,不过键盘主控的1.0版本3月份应该能出来了。
2012-2-16增加了一种3x60的行扫描方式,由于有了最多60列,可以把左手的常用键全部放到一行的不同列。键盘矩阵的同行按键无论几键按下是不会发生冲突的,因此同样不用加二极管。之所以用3x60而不是2x61矩阵,是考虑到走线宽度问题,5列没有F1-12键区的小键盘,用2层板的话,即便左手边行线只有1条,因开关是通孔元件,单一行线可以放在正面,但背面每行走9条列线,不算上下边缘也只能走36条列线,再多就得考虑利用正面以及飞线了(我还没画过键盘主板,如果有谬误烦请指正)。用3行则可以减少列线条数,比较灵活。
2012-2-9我的plum无冲金标黑轴的B键开始双击了(德国开关也一样要出双击,想不到啊想不到),这几天比较忙没空换掉它,便顺手给主控加了个功能:每个按键都可以设置连续按键的灵敏度,在配置里单独设置改小了B键的灵敏度,双击现象消除。不过这样带来的副作用是我不能一秒按13次B键以上,会漏键。因此对键盘要求高的话还是换轴解决更彻底,打字的话就无所谓了,不影响使用。
最近开发进度比较慢,还在调试boot loader。boot loader要实现刷固件时,成功刷新要能正常启动新固件,意外断电或者断网或者USB连接断开等故障导致刷固件失败时,提供了多种补救措施,以确保主控不会变砖。
2012-2-3最近的开发内容比较无趣,装了个MAC OS X 10.7.2测试键盘兼容性,无意外通过。在少数几台电脑上测试作为开机键盘时,出现无法识别的问题,仔细按USB HID标准实现了开机USB键盘功能后,问题解决。当然,还有些测试失败是没有打开BIOS设置中的USB键盘支持,打开即可(直接用USB键盘按DEL进BIOS设置就能打开,神奇啊)。
接下来的开发内容是boot loader,固件网络升级,可编程键盘客户端配置程序。
2012-1-26这把plum无冲金标改完主控作为主力键盘使用了3天了,打了两天龙之谷,还有平时看网页聊天什么的,还没发现什么问题,反应速度相当敏锐。上传一个主控对USB全键无冲支持的图。由于hKBTest最多显示35键无冲,更多键就显示不出数字了,于是我用左手拿盒子压住,让当前行正好35键被按下,右手截的图。可以注意到设备管理器里面没有PS2键盘,只有USB HID设备。
我正在开发一款键盘主控kcarm(4月18日 第一版完成)
2012-1-25因为plum的LED灯是按CAPS NUM SCROLL的顺序排列,与其他键盘的NUM CAPS SCROLL的排列顺序不大一样,不太符合我的使用习惯,这次的可编程主控干脆就设置为LED灯的排列顺序也可以自由设置,除了可以改这三个灯的顺序以外,新增的一个可编程指示灯也在调整顺序之列,比如面板上的空间不够加一个灯时,也可以选择把SCROLL灯的位置配置给可编程指示灯。已经在plum上用上正常的指示灯顺序了,高兴ing。
2012-1-23祝各位春节愉快、龙年大发!
在改造Plum无冲金标的线路时,用万用表测得Plum无冲金标键盘的二极管如图1的方向摆放。这样就不适合行输出、列输入(行扫描)的扫描方式(尽管这种方式比较快),因为二极管的原因,行输出即使设置为低电平,电流方向也被二极管限制为不可能是流入行1的方向。如果不改程序,就只能改二极管的方向,如图2所示。但是104个轴、拆轴调换二极管方向,想想都头痛。
还好,这个主控我说了算,那就增加一种行输入,列输出(简称列扫描)的方式吧。如图3,列1为 低电平输出、开关SW1-1闭合时,行1的输入也是低电平。
2012-1-16板子拿到了,焊好一块,一次直接就点亮。今天先不多说,上图。
2012-1-12创新功能揭示:这次画好的主控板子,除了支持20x8=160键的键盘矩阵之外,还支持额外的35键直连无冲。也就是说即使你原来的机械键盘是有冲矩阵的,并没有安装二极管。用这个主控,并按直连方式布线的话,也可以改造成最小35+3=38键无冲的键盘,简单说就是可以有冲键盘改无冲键盘,不用额外加二极管
而且直连按键由于采用中断方式,即是按下后CPU会被中断做其它事情,停下来优先发送按下的按键数据到主机,而且节约了键盘矩阵的扫描时间,所以能比传统键盘矩阵扫描速度要快得多。
35+3键无冲,对于一般的游戏应用应该够用了。
2012-1-11进度更新:板子画好了,已经送电路板工厂打样。
我正在开发一款键盘主控kcarm(4月18日 第一版完成)
我正在开发一款键盘主控kcarm(4月18日 第一版完成)
我正在开发一款键盘主控kcarm(4月18日 第一版完成)
我正在开发一款键盘主控kcarm(4月18日 第一版完成)
0
已赞
微信分享 收藏
回复

使用道具 举报

我的人缘0
推荐
发表于 2012-1-16 16:54 只看该作者
板子拿到了,今天又得忙了,先上图。
回复 支持 2 反对 1

使用道具 举报

我的人缘0
推荐
发表于 2012-1-12 23:22 只看该作者
xing127 发表于 2012-1-12 23:12
就想问下,换主控麻烦不,,

要用到电烙铁什么的,比换轴加灯那些容易点吧。比如这个帖子里换主控就相对容易。
http://www.pcwaishe.cn/forum.php?mod=viewthread&tid=111394
有的键盘如果行列线不容易引出的话,就需要多飞一些线,倒也不麻烦,美观上会差些吧(其实也无所谓,在键盘里面不拆开来也看不到,需要编程键盘功能的一般也就忍了)。如果能对自己的键盘动烙铁,说明你玩键盘的发烧等级提升了,呵呵。
回复 支持 2 反对 1

使用道具 举报

我的人缘0
推荐
发表于 2012-1-16 22:45 只看该作者
MAN 发表于 2012-1-16 22:41
对了,LZ开发的这个,可以用PS2协议吗。。。

目前的打算是不支持PS2接口,直接支持USB全键无冲,PS2没啥必要了。不过万一哪天我又要用到PS2接口时,应该会加上这个支持的。因为硬件线路不用改,只是改主控程序。
回复 支持 1 反对 1

使用道具 举报

我的人缘0
推荐
发表于 2012-1-16 22:37 只看该作者
测试
pfan117 发表于 2012-1-16 20:20
硬件工程师啊,在哪里做的板子?

我是搞软件的,做这个是业余爱好。板子在北京本地的工厂做的。
回复 支持 2 反对 0

使用道具 举报

我的人缘0
推荐
发表于 2012-1-12 17:19 只看该作者
yolinprince 发表于 2012-1-12 16:49
用软件太麻烦了,我不想系统进程里常驻这些东西,起初是想飞线解决 但是涉及到FN 所以很麻烦

关于FN键我也有创新功能,还在实现中,稍后公布。
回复 支持 1 反对 1

使用道具 举报

我的人缘0
推荐
发表于 2012-1-12 16:42 只看该作者
yolinprince 发表于 2012-1-12 16:33
MINI84这样改起来的话,成本贵么?其实我只想简单的移动几个键位,那么是否可以达到提取固件,然后修改代码 ...

如果是日常用或办公用,不涉及游戏的DirectInput这些的话,用软件就可以映射按键,都不用换主控。
回复 支持 2 反对 0

使用道具 举报

我的人缘0
推荐
发表于 2012-1-2 17:15 只看该作者
支持支持 期待lz作品 求做小白鼠
一点建议 测试下mac系统 不要重蹈monkey覆辙
shawn6 发表于 2011-12-31 11:33
好的,等板子出来再找你帮忙。
现在测试在Linux下是能用的,MAC系统得等我改好键盘,再找MAC试验。
回复 支持 2 反对 0

使用道具 举报

我的人缘0
推荐
发表于 2011-12-31 11:54 只看该作者
20# killyellow 主要还是爱好吧。现在的键盘不能满足我的功能要求,于是就自己动手做。想用这个赚钱没什么可能吧,看之前几款主控的情况就知道了。这个只适合喜欢玩键盘又愿意动手DIY的玩家。
回复 支持 2 反对 0

使用道具 举报

我的人缘0
推荐
发表于 2011-12-31 11:16 只看该作者
测试
16# paulwang2000 我是出于爱好自己DIY,成本自然不在考虑范围内,元件都挑好的用。不过路还是要一步一步的走,一下上太多硬件功能我自问还搞不定。目前重点是键盘的自定义功能和速度。速度上已经突破1毫秒的回报率限制(实际上关掉回报率了,没用那东西,太低效)达到了微秒级。
回复 支持 2 反对 0

使用道具 举报

我的人缘0
推荐
发表于 2011-12-31 11:06 只看该作者
回9楼11楼:当然可以,主控就是做这个用的。
回复 支持 1 反对 1

使用道具 举报

我的人缘0
12
发表于 2011-12-31 09:30 只看该作者
好犀利。。
回复 支持 1 反对 0

使用道具 举报

我的人缘0
13
发表于 2011-12-31 10:10 只看该作者
人才济济啊……
回复 支持 1 反对 0

使用道具 举报

我的人缘0
14
发表于 2011-12-31 10:24 只看该作者
祝早日完成
回复 支持 1 反对 0

使用道具 举报

我的人缘0
15
发表于 2011-12-31 10:26 只看该作者
本帖最后由 Fps-kEn 于 2011-12-31 10:28 编辑

这个芯片应该叫 天魔法则→_→
对了,接HUB这个功能需要写么…
回复 支持 0 反对 1

使用道具 举报

我的人缘0
16
发表于 2011-12-31 10:29 只看该作者
代号太土了

还不如叫 Excalibur 之类
回复 支持 1 反对 0

使用道具 举报

我的人缘0
17
发表于 2011-12-31 10:35 只看该作者
如果可以的话,屏蔽win键(新人,轻喷(>_<))
回复 支持 1 反对 1

使用道具 举报

我的人缘0
18
发表于 2011-12-31 10:38 只看该作者
Excalibur
acg领域烂大街的名字  
名字无所谓,性能货真价实就好
回复 支持 反对

使用道具 举报

我的人缘0
19
发表于 2011-12-31 10:55 只看该作者
支持一下,我有个104机械键盘貌似是主控坏了. 能用得上楼主的主控么?
回复 支持 反对

使用道具 举报

我的人缘0
20
发表于 2011-12-31 11:02 只看该作者
5# Fps-kEn 现在用的芯片还支持不了HUB功能,由于是出于个人爱好,想先做好主控功能,用起来顺手,HUB这些可能还是找现有键盘来支持更方便吧。
回复 支持 2 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则