记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) |
您所在的位置:网站首页 › filco双模电池能用多久 › 记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) |
记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)
2020-04-07 16:56:07
137点赞
377收藏
139评论
追加修改(2020-07-07 19:42:11):目前这个键盘也已经用了一段时间了,特意回来追加一下当时漏了的一些内容。 关于续航情况:目前测得的电池端功耗为:正常速度打字最大1.3mA,等待输入1.06mA,慢速等待输入240uA,休眠33μA,每天的大致耗电在5mAh左右,搭配一块1000mAh的电池的话续航大概在半年 关于想要众筹下一版的想法:目前来看这个模块的工作情况还不错,自己用的话没必要再搞一版了,但是本着分享与回血的想法,想众筹这个方案的下一版,需要说明的是这个方案只能用在Filco 104上,不具备通用性,单模块不包含电池的包邮价格想定在60块钱,不知道会不会有人感兴趣 【写作说明】:为了实现这个改造,最近半年零星在网上查了很多大佬的教程和经验分享,鉴于目前改造完成了而且效果也还不错,秉持着互联网的知识共享精神,把整个历程和踩过的坑分享给大家,希望可以对大家有所帮助。 0.前言 手中这把被改造的Filco 104是本人在本科阶段的大二寒假买的,当年机缘巧合了解到了机械键盘这个东西,感觉看起来好像还不错,于是决定自己也买一把来试试看。印象里自己当时的预算好像是三四百 这个键盘就这么一直用其实问题也不大,但是后来又入了minila之后,单模圣手的这根线对于我来说就开始变成了一个结,你要说多难看也没有,但是桌面上始终有一条线总归看着不那么简洁。再后来看到大F在87和104的产品线上也出了双模型号后,这种纠结算是到了一个峰值,当时看着87和104也能无线着实眼馋了好一阵,也多次想过把这个单模的卖了再加钱上双模。但是“差价比较大”和“懒得挂咸鱼等出手”这俩因素导致我这个想法一致没能真正执行,一来二去也就不了了之了 真正开始着手找改蓝牙的方案,还要从去年十月份算起,当时刚找完工作时间还算比较充裕,趁着一边写毕业论文一边开始在网上看各路大神改造蓝牙(无线)键盘的帖子 在刚开始广撒网搜索的时候,最让我感兴趣的一类方案是使用原本的键盘主控,在USB线与键盘主板的连接处加USB信号转蓝牙信号模块的方式,也就是扫键还是由原来的主控负责,只不过从主控出来的USB信号由原来的信号线直接给到电脑,变成了多一步转换为蓝牙信号发送给电脑(这块我没有特别仔细的研究过,如果理解不对还请各位多多指正) 最后山穷水尽不知道怎么办的时候,偶然间我从百度换到了谷歌搜索,在那一瞬间(柳暗花明1/4), 完成以上方案选择的时间大概是19年的11月初,后来因为毕业论文和各种事情的耽搁一直没有继续。快放寒假的时候,本来计划着趁寒假回家先把转接板画了,具体的调试等回学校再说。但是,后边的故事大家也都知道了,疫情爆发被困在家,这个事情反而有了时间完成。从时间顺序上来说,整个改造过程大概分为5步走,分别为:按键阵列测试、模块功能性检查、控制程序改造、转接板绘制、装机联调。 2.1 按键阵列测试 在前期的准备过程中,我曾经以为Filco 104的键盘阵列可以在网上直接搜到,但是努力了很久,不知道是因为这个键盘的销售量太小,亦或买这个键盘的人都懒得折腾,还是我的搜索能力太过菜鸡,在网上居然完全搜不到相关信息 在整个阵列中,A代表的是键盘主板上的CON3接口,B代表的是CON4接口,两个接口均为18个引脚,数值部分标记规则:键盘主板正面有CON3、CON4丝印的一边为1脚,靠近主板5针接口的一边为18脚。由这张测出来的阵列表可以看出,A接口在按键检测上只用到了其中的11个引脚,剩下7个分别为A12、A15、A16-GND,A18-VCC,A13、A14-数据端口,A17-空接;B接口只用了15个引脚,剩余3个分别为B16-Num,B17-Cap,B18-Scroll指示灯。这部分忘了在拆开的时候拍照片,本来想从网上找个图凑合一下,但是考虑到版权问题还是放弃了,大家用这个示意图凑合一下 在测完键盘阵列后,工作就转入了对模块功能性检查的阶段,这一部分主要包括开发环境的安装、程序编译是否可以通过、程序下载是否正常,主要参考的是这个51nb网上的教你打造自己的蓝牙键盘 说实话,我原本计划着从官网例程直接改一个蓝牙固件出来,我以前一直感觉从例程的单按键改成键盘无非就是差个按键矩阵,塞进去不就可以了吗 正在这时候,万能的谷歌再一次带给了我希望(柳暗花明2/4),隐约记得当时可能是大年初三左右吧,确认了凭自己的能力并不能从例程里改出一个键盘程序之后,我带着最后一丝希望开始在网上找别人的成品程序,就在这时候一篇零基础自制蓝牙双模键盘的帖子,把我带到了全球最大代码托管网站GitHub上 在经过大概一晚上阅读程序源码之后,我更改了congif.h、keyboard_conf.h、keymap_plain.c、keymap_common.h等四个文件,把我测出来的Filco 104键盘阵列加了进去;还修改了工程配置,加入了我的“BLE 104”target以便编译过程中keil对程序内容的选择。看到这一部分,如果有懂TMK的大佬可能会说了“你这是闲的蛋疼 在折腾了一番整个程序编译没有问题后,我暗搓搓的把程序烧进了之前验证过功能的51822模块,但是就在此时尴尬的一幕出现了,不知道是我程序改的不对还是什么原因,烧进去之后电脑居然完全看不到蓝牙模块 带着最后的倔强,我又去仔细看了一遍 Geno Kolar的文章,在这个过程中我惊喜的发现(柳暗花明3/4),诶呀?这位大佬的程序好像是根据另一位大佬改来的诶,那是不是说明我还能最后再挣扎一下?到这里,我们就需要引出这个项目真正的源代码方案提供者了,他就是jiangming1399大佬 和第1章“改造前准备”中说的一样,在蓝牙模块与键盘主板的接驳上,我放弃了飞线方案、选择了画一块和原本键盘主控板差不多大小的PCB作为二者的转接端口,结合之前买来的锂电池充电模块,S1版各部分连接结构示意图就诞生了。(因为文章里设计很多地方的改版,涉及到多次第一版、第二版之类的表述,为了方便阅读,定义“连接结构示意图”对应的标识为“S”,“电源结构”对应的标识为“P”,“PCB不同版本”对应的标识为“V”,卧槽还有点学术感是怎么回事 完成控制程序改造的第二天,还算有一点点画图经验的我打开Altium Designer(或者叫DXP)开始按照上面这个连接结构示意图设计转接板上主板引脚和模块各IO之间的连接关系。当分配完按键扫描、指示灯需要用的IO后,令人难受的一幕出现了 讲真尽管锂电池充电方案目前已经发展的很成熟了,但是毫无经验的我第一次着手从网上找相关设计方案时心里还是有点没底的。就在不知道从哪下手的时候,脑子里忽然蹦出来的“充电头网”四个字给了我灵感,因为对这方面感兴趣,之前在微博和微信关注了这个自媒体后之后通过其平台还是了解到了不少充电方面的内容的。此刻基于以往看过的内容转念一想,忽然发觉这个东西其实不就是简化版的移动电源吗 需要说明的是,其实在S1版的各部分连接结构示意图中,为了给蓝牙模块供电,转接板上也是有一个AMS1117-3.3稳压芯片的。经过把电源部分和信号转接部分的整合,最终在1月30号的下午,V1版电源&信号转接板顺利出炉,在把PCB文件交给淘宝打样后,这一部分的工作算是告一段落了。 由于疫情导致复工延误的影响,在等待了不到三周后我终于收到了来自打样商家的快递,而所需元件则是等到3月20号才逐渐买齐。 之所以元件等了这么久,是因为我临时找的一个可以买到所有材料的淘宝商家迟迟无法复工,3月中旬复工后人家又嫌弃我买的东西太少不愿意做生意 在电源部分功能性测试完成后的第二天,由于我以为电源部分已经没有问题了,于是就把蓝牙模块和转接板焊在了一起准备接上主板联调。但是组装完成后神奇的事情出现了,此时的蓝牙模块只有在充电器插上给电池充电的时候才能在供电引脚上检测到3.3V的电压,一旦拔掉充电器,过一会供电引脚电压就会直接掉成0。 在折腾了一下午始终无法让IP5305保持Vout脚输出5V后,讲真我曾经一度想放弃来着,直到晚饭后忽然有一个“要不把电池直接接到稳压芯片上试试?”的想法冒出来(柳暗花明4/4),我才明白“只要不放弃,方法总比困难多”这句话是什么意思 基于这版结构,在测试过供电电压满足模块工作条件后,3月21号晚上我又一次把整个系统组装了起来,而这一次也终于实现了蓝牙模块在电池供电方式下的正常工作。至此万事俱备只欠东风,终于可以开始真正的调试工作了,说实话联调部分的顺利程度倒是出乎我的意料,仅仅在根据转接板调整了程序内的引脚分配后,在当天晚上我的Filco 104就第一次实现了通过蓝牙信号“向设备”发送按键信息的功能,当时可以说是非常激动了 21号晚上验证完功能性后,22号一早我就开始了琢磨怎么把所需要的元件塞进键盘里而且又不明显破坏外观,由于像电池、控制器这些铁定都是塞进机身里而不需要外露的,所以最大的问题其实是怎么安排充电口和开关。秉持着“能不动就不动,能少动就少动”的原则,我首先把目光投向了键盘本身的数据线出口和支撑脚,这两个地方一个是原本的开孔结构、一个在折叠后可以有很好的遮挡作用,都比较符合我的改造原则。经过一番比划和权衡,最终确定了在数据线出口用圆锉扩孔后安放充电口、在支撑脚位置打孔安装电源开关的方案,成品如下图所示 但是由于当时开关部分涂的热熔胶比较少,加之电线本身露出的也比较短导致固定点受力变大,这个开关用了没两天就脱落了,后来我干错就把它改到了键盘内部,开长孔实现开关的拨动。 处理完开关和充电口,接下来就是电池了。考虑到续航问题,我用上了家里闲置的两块1200mAh功能机电池,拆掉其中一块的保护板,将其并联到另外一块电芯上后(并联时一定注意正负极和两个电芯的电压差),就得到了最终的2400mAh电池组。电池部分的安装见下图,需要注意的是在图中所示位置放电池的话,理想厚度为4mm或以下,极限厚度为5mm,过厚则可能存在电池与键盘主板底部焊接点接触的安全性问题。 完成以上步骤后,键盘内部大概就是上图右下角的样子,画面外是一个和Type-C接口相连的5针的PH2.0数据、充电接头(插在键盘主板上),以及一个正极线上加了开关的2针的PH2.0电池接头(插在自制电源&转接板上),个人感觉看起来还是比较简洁的。只差安装键盘上盖的装配效果如下图 完成所有装配后,在进行最终的全按键功能测试时,我意外的发现 在我的计划中,原本到这一步就可以宣告工程结束了,但是按键测试过程中键盘连接手机和平板所表现出的不稳定性,让我对P2版电源结构的供电性能产生了怀疑。经过测试,果不其然P2版的供电结构随着锂电池电压的下降,稳压芯片的输出电压也一直在降低 但是吧,通往成功的道路总是曲折的,这版电源结构由于我的疏忽并没有能完成最后的装配 在LDO芯片的选型上,我的想法是兼顾外围电路简洁性与dropout电压水平,最终经过对比得到了四个可用型号,分别为TPS79333DBVR、TPS78233DDCR、ME6211C33M5G-N和HT7333-A,其中前两个按售价来说应该是性能比较好的,后面两个则是比较经济实惠的,P4版中之所以使用ME6211完全是因为我当时从快递里拿出来的第一个就是它,一试也正好满足要求,就没有再试别的。P4版电源结构的实际电路长这样,因为毕竟是自己用也不量产,我就没有再制板 这次改造完后经过组装测试,信号稳定性终于达到了比较令人满意的水平(但是长期稳定性还是有待检验),到这里,我终于可以说这个跨度五个月,净耗时20天左右的项目正式结束了 经过这次的折腾,我最大的体会就是:互联网这个经验共享的大平台是一个可以让想法落地的地方。如果没有互联网上这些可爱的人们分享经验、分享知识,我的这次改造其实完全没可能完成,暂且不说我根本就没有能力编写一个蓝牙键盘的程序,就算是蓝牙模块挑选,如果没有大家分享经验我也是绝无可能凭一己之力做出选择的。因此,怀着感恩的心,我决定把这次的折腾历程记录下来,给同样有折腾精神的人们一个参考。生命不息,折腾不止,如果你有什么想要的东西但是现实无法满足,那就去自己动手做一个吧。最后着实要感谢chiphell网站的jiangming1399大佬分享的开发经验和代码、51nb网的zmingwang大佬提供的经验参考、以及yang大、kai等其他在自制蓝牙键盘方面贡献过经验的可爱的人们。 我是卡里西路,我爱这个世界。
![]() |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |