记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)_无线键盘_什么值得买

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

2020-04-07 16:56:07 111点赞 332收藏 122评论

小编注:此篇文章来自#原创新人#活动,成功参与活动将获得额外50金币奖励。新人发布首篇文章可在什么值得买APP“我的”-“我的任务”-“新手任务”-“发布一篇社区文章”额外领取50金币

追加修改(2020-07-07 19:42:11):
目前这个键盘也已经用了一段时间了,特意回来追加一下当时漏了的一些内容。 关于续航情况:目前测得的电池端功耗为:正常速度打字最大1.3mA,等待输入1.06mA,慢速等待输入240uA,休眠33μA,每天的大致耗电在5mAh左右,搭配一块1000mAh的电池的话续航大概在半年 关于想要众筹下一版的想法:目前来看这个模块的工作情况还不错,自己用的话没必要再搞一版了,但是本着分享与回血的想法,想众筹这个方案的下一版,需要说明的是这个方案只能用在Filco 104上,不具备通用性,单模块不包含电池的包邮价格想定在60块钱,不知道会不会有人感兴趣

【写作说明】:为了实现这个改造,最近半年零星在网上查了很多大佬的教程和经验分享,鉴于目前改造完成了而且效果也还不错,秉持着互联网的知识共享精神,把整个历程踩过的坑分享给大家,希望可以对大家有所帮助。

0.前言

手中这把被改造的Filco 104是本人在本科阶段的大二寒假买的,当年机缘巧合了解到了机械键盘这个东西,感觉看起来好像还不错,于是决定自己也买一把来试试看。印象里自己当时的预算好像是三四百记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) ,原本是打算买个牧马人之类的产品,而且还去线下实体店试过手感。但是由于当年还不知道张大妈这个网站,又恰巧一个叫贴吧的东西还比较红火,于是在我踏入一个叫“机械键盘”的贴吧认识了几个满嘴“一定要上Filco”的人后,预算成功被加到了一千记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 。这个价位对当时的我来说还是挺肉疼的,现在看多了以后感觉键盘这个东西七八百也就差不多可以打住了,大F这个牌子不管在当年还是现在价格都比较虚高。不过该说不说,Filco青轴的手感是真的不错,很清脆,个人非常喜欢。配几张这个键盘这几年陪伴我的照片

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

这个键盘就这么一直用其实问题也不大,但是后来又入了minila之后,单模圣手的这根线对于我来说就开始变成了一个结,你要说多难看也没有,但是桌面上始终有一条线总归看着不那么简洁。再后来看到大F在87和104的产品线上也出了双模型号后,这种纠结算是到了一个峰值,当时看着87和104也能无线着实眼馋了好一阵,也多次想过把这个单模的卖了再加钱上双模。但是“差价比较大”和“懒得挂咸鱼等出手”这俩因素导致我这个想法一致没能真正执行,一来二去也就不了了之了记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 。看着桌面上这根线,我大概是从一年半以前萌生了"如果这个键盘可以改成蓝牙的该多好啊"这么个想法,后来一个是因为上学没空,一个也在于我用这个键盘其实不是很多,所以这个计划也拖了很久没有实施,直到去年十月份,工作找完了、毕业的问题也不大了,这才真正的把这个项目提上日程记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

1.改造前准备

真正开始着手找改蓝牙的方案,还要从去年十月份算起,当时刚找完工作时间还算比较充裕,趁着一边写毕业论文一边开始在网上看各路大神改造蓝牙(无线)键盘的帖子记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) ,当时做技术筛选的核心宗旨就是一个:用尽可能少的钱在我的技术能力范围内实现需求。在能搜到的各种方案里,有从淘宝直接购买现成模块的,有采用优联方案+购买键盘主板的,有采用优联方案+自己画板的,如果有想采用优联方案的,这里有优联技术简介与优联接收器型号详解,有采用yang大的DIY方案纯组装的,有用Tenssy 3.2主控+预编键盘HID Profile蓝牙模块的,也有教大家用开源主控基本从零开始做键盘的。

在刚开始广撒网搜索的时候,最让我感兴趣的一类方案是使用原本的键盘主控,在USB线与键盘主板的连接处加USB信号转蓝牙信号模块的方式,也就是扫键还是由原来的主控负责,只不过从主控出来的USB信号由原来的信号线直接给到电脑,变成了多一步转换为蓝牙信号发送给电脑(这块我没有特别仔细的研究过,如果理解不对还请各位多多指正)记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 。这种方式最吸引我的地方在于对键盘原本结构的改动小,哪怕经过尝试失败了原本的键盘还可以接上线继续用。在这类改造方式下,我搜到比较常用的是采用Arduino平台,尽管十分喜欢这个方案,但是奈何看了好几个帖子里面涉及到的类似Boot Protocol、USB HOST Shield等术语作为菜鸡根本就看不明白记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案),此外改造用到的材料很多组装完的模块往往很大一坨,而且我搜到的文章都是在键盘外进行实验而没有如何把模块塞到键盘里的教程,最后很重要的一点是这个方案貌似功耗偏高(功耗这里不是很确定了,毕竟好久之前查的方案特点),挂一块电池待机半个月可能已经算是长的了。虽然用键盘的地方往往都会有电源,半个月充一次貌似也没什么,但是对比minila两节五号电池让我用了将近两年,这个频率还是太高了点。补一张minila的照片

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

最后山穷水尽不知道怎么办的时候,偶然间我从百度换到了谷歌搜索,在那一瞬间(柳暗花明1/4),记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 是的朋友们,谷歌才是技术搜索的王者。虽然都是中文的内容,但是百度无论如何也搜不到相关的帖子,换成谷歌帖子一堆一堆的,谷歌牛逼记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 。换完搜索引擎后,在继续广撒网的过程中我发现了有人用NRF51822方案做键盘主控的方案,此时就要引出对我这篇文章最重要的人了,那就是chiphell网站上的jiangming1399大佬(貌似也有人叫他Jim),正是他的这篇文章展示的低功耗、还支持双模的方案,让我直接一头扑在了51822这个模块上,据说这位大佬也参考了chiphell网站上yang大的方案,后续根据芯片查阅的还有这篇改造SK8855 为蓝牙键盘的文章。此外受到另一个双模Filco 104拆解帖子的启发,我选择了画转接PCB而不是飞线的方式连接蓝牙模块与键盘主板。通过在淘宝上一番比较,收藏了好几个卖这个模块的店铺后,选择了便宜还包邮的亿佰特E73。至此,改造历程的方案选择阶段告一段落,为了配合后面的折腾,材料选购时我还额外买了一些Type-C端子和IPEX接口的天线,毕竟这年头充电哪能不是Type-C呢记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

2.改造过程

完成以上方案选择的时间大概是19年的11月初,后来因为毕业论文和各种事情的耽搁一直没有继续。快放寒假的时候,本来计划着趁寒假回家先把转接板画了,具体的调试等回学校再说。但是,后边的故事大家也都知道了,疫情爆发被困在家,这个事情反而有了时间完成。从时间顺序上来说,整个改造过程大概分为5步走,分别为:按键阵列测试、模块功能性检查、控制程序改造、转接板绘制、装机联调。

2.1 按键阵列测试

在前期的准备过程中,我曾经以为Filco 104的键盘阵列可以在网上直接搜到,但是努力了很久,不知道是因为这个键盘的销售量太小,亦或买这个键盘的人都懒得折腾,还是我的搜索能力太过菜鸡,在网上居然完全搜不到相关信息记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 。没办法,我只好自己拿起万用表一个一个引脚测出了整个键盘的阵列表,可能是全网第一张Filco 104的键盘阵列表?记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

在整个阵列中,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指示灯。这部分忘了在拆开的时候拍照片,本来想从网上找个图凑合一下,但是考虑到版权问题还是放弃了,大家用这个示意图凑合一下记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 拆开后就能明白这个图的意思了

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

2.2 模块功能性检查

在测完键盘阵列后,工作就转入了对模块功能性检查的阶段,这一部分主要包括开发环境的安装程序编译是否可以通过程序下载是否正常,主要参考的是这个51nb网上的教你打造自己的蓝牙键盘记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) ,其余开发准备也看了看CSDN的NRF51822 芯片简介和软硬件开发简介Nordic nRF51/nRF52 开发环境搭建Nordic NRF51822 从零开始系列(一)开发环境的搭建keil官方的MDK下载链接nordic的NRF5 SDK下载链接。在整理好一切开发环境后,按照51nb网上的那篇文章,依次测试了程序下载、以及官方例程功能性的验证,这一部分内容那篇文章里说的很详细,我就不再赘述了。以下是当时功能验证过程中的图,电源、GND、数据端口接线全是用杜邦线焊上去的,下载器用的就是普通的J-Link。

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

2.3 控制程序改造

说实话,我原本计划着从官网例程直接改一个蓝牙固件出来,我以前一直感觉从例程的单按键改成键盘无非就是差个按键矩阵,塞进去不就可以了吗记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) ,但是事实证明我还是太年轻了,尽管我在例程里找到了相关的语句,但是人家的按键功能实现方法跟我想的完全不一样,想下手都找不到地方。为了按照我原来“塞一个按键阵列进去实现键盘功能”的目标,过程中作为这方面技术菜鸡的我居然还斗胆去查了如何制作一个机械键盘—原理篇USB-HID 鼠标-键盘通讯格式BLE 蓝牙 hid 键盘表详解 nRF51 SDK 中的 GPIOTEnRF51822 外设应用[2]:GPIOTE的应用-按键检测,原本寄希望于自己微薄的学习能力像当年折腾51单片机、STM32一样鼓捣出点东西来,但是我还是高估了自己记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) ,不成,看了以后部分能看懂,但还是完全不知道从何下手。

正在这时候,万能的谷歌再一次带给了我希望(柳暗花明2/4),隐约记得当时可能是大年初三左右吧,确认了凭自己的能力并不能从例程里改出一个键盘程序之后,我带着最后一丝希望开始在网上找别人的成品程序,就在这时候一篇零基础自制蓝牙双模键盘的帖子,把我带到了全球最大代码托管网站GitHub记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) ,根据上面那个帖子里我首先找到到了装备前线网站用户Geno Kolar的程序,这是一个完整的基于TMK的NRF51822蓝牙键盘程序,看的我简直狂喜,老子的想法终于可以付诸实施了记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 。附一张改程序的时候在客厅里用上电视当第二屏幕的照片,电视上半部分是第一版阵列表,下半部分是改程序用到的键盘结构,电脑屏幕上是keil。

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

在经过大概一晚上阅读程序源码之后,我更改了congif.hkeyboard_conf.hkeymap_plain.ckeymap_common.h等四个文件,把我测出来的Filco 104键盘阵列加了进去;还修改了工程配置,加入了我的“BLE 104”target以便编译过程中keil对程序内容的选择。看到这一部分,如果有懂TMK的大佬可能会说了“你这是闲的蛋疼记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) ,人家不是有配列下载方案吗?”请恕我直言, 尽管在查阅资料的过程中看到了多次TMKTKG网页化配列生成DFU升级配列下载等名词,但是说实话直到现在我也没搞懂要怎么利用这些方法、工具实现对Filco 104的支持,甚至上面说的这段话这么表述对不对我都不确定记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 真是非常抱歉辜负了这些强大工具的开发者们。回到改程序的问题上来,尽管之前已经编译过官方例程,但是在编译 Geno Kolar 程序的过程中我还是遇到了编译条件不满足导致的的报错,期间换了各种版本的编译器SDKMDK,最后为啥编译能通过了其实我也不是特别明白,说实话我现在也不是很明白这些东西的含义记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) ,只知道编译不出来就找找原来人家用的什么版本、换换试试,这部分内容帮不到大家了不好意思。

在折腾了一番整个程序编译没有问题后,我暗搓搓的把程序烧进了之前验证过功能的51822模块,但是就在此时尴尬的一幕出现了,不知道是我程序改的不对还是什么原因,烧进去之后电脑居然完全看不到蓝牙模块记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) ,这就很诡异了,难道是我一通操作把程序改坏了?为了排除修改不当导致程序故障的情况,我尝试了把原始程序直接编译后烧进去,然后,emmmmm。。。。。怎么还是看不到记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) ,不能这样吧,我这才刚看到希望就遇到了希望的破灭吗?不甘心的我又尝试了好几次之后。。。哎,罢了罢了,这难道就是无常的命运吗记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 难道我这就这样被命运捉弄了吗?Noooooooo。。。好吧好吧我不演了,其实这个问题其实当天晚上就解决了记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

带着最后的倔强,我又去仔细看了一遍 Geno Kolar的文章,在这个过程中我惊喜的发现(柳暗花明3/4),诶呀?这位大佬的程序好像是根据另一位大佬改来的诶,那是不是说明我还能最后再挣扎一下?到这里,我们就需要引出这个项目真正的源代码方案提供者了,他就是jiangming1399大佬记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) ,恩没错,就是chiphell网站那个,其实人家早在chiphell的帖子中他早就已经把键盘代码分享出来了,只怪我当时选择硬件方案时只看了帖子的前边关于功耗的部分根本没往后翻,不仔细害死人啊。兜兜转转绕了一圈我又记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 回到了最初的起点,呆呆的站在镜子前,笨拙系上记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 。。。好了好了,不骚了。我当时通过 Geno Kolar的文章一路找到的jiangming1399大佬的代码后,其实一直没有意识到这个 Geno Kolar口中的Jim大佬原来就是jiangming1399,直到这两天我开始写文章、做最后整理的时候才终于把这一切联系起来,这么一想还有那么一丝冥冥之中的感觉记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 。在把jiangming1399大佬的代码下搞到之后,为了避免空欢喜一场我先把没改过的版本编译了一遍烧进去试了试,蓝牙搜索、连接、输入测试(就是用一阵线随便接一点然后在其他触点上乱扫,我也不确定这种方式会不会损坏模块啊,乖孩子请不要学)都没问题,OK,程序可用记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 。此外由于 Geno Kolar的程序是由jiangming1399的程序修改得到的,因此这两个程序之间差别其实非常小,在把之前修改过的部分搬到后来可用的工程中之后,控制程序改造部分算是告一段落了。需要说明的是,此时完成的这一版程序由于没有硬件部分的支持(还没有画转接板),因此只是保证了按键阵列没有问题,各个引脚的分配其实是瞎写的,只为保证编译通过和“有功能”。

2.4 转接板绘制

和第1章“改造前准备”中说的一样,在蓝牙模块与键盘主板的接驳上,我放弃了飞线方案、选择了画一块和原本键盘主控板差不多大小的PCB作为二者的转接端口,结合之前买来的锂电池充电模块,S1版各部分连接结构示意图就诞生了。(因为文章里设计很多地方的改版,涉及到多次第一版、第二版之类的表述,为了方便阅读,定义“连接结构示意图”对应的标识为“S”,“电源结构”对应的标识为“P”,“PCB不同版本”对应的标识为“V”,卧槽还有点学术感是怎么回事记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

完成控制程序改造的第二天,还算有一点点画图经验的我打开Altium Designer(或者叫DXP)开始按照上面这个连接结构示意图设计转接板上主板引脚和模块各IO之间的连接关系。当分配完按键扫描、指示灯需要用的IO后,令人难受的一幕出现了记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 整个模块的可用IO被我分的干干净净一个不剩,emmmm。。。这下充电模块使能信号没地方安排了啊喂记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 至于这个充电模块为什么还需要使能,那就是一个没有锂电池充电电路设计经验、同时为了压缩成本导致的悲剧故事了,这里暂且不谈。由于充电模块无法满足工作条件,导致S1版连接结构方案走不通以后,被逼无奈的我将电池充放电功能整合到了之前的信号转接板上,至此各部分的连接结构来到了S2版。也不知道算不算是因祸得福,改到S2版后整个连接结构看起来比之前要更加简洁了

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

讲真尽管锂电池充电方案目前已经发展的很成熟了,但是毫无经验的我第一次着手从网上找相关设计方案时心里还是有点没底的。就在不知道从哪下手的时候,脑子里忽然蹦出来的“充电头网”四个字给了我灵感,因为对这方面感兴趣,之前在微博和微信关注了这个自媒体后之后通过其平台还是了解到了不少充电方面的内容的。此刻基于以往看过的内容转念一想,忽然发觉这个东西其实不就是简化版的移动电源记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案),于是顺着这个思路,我开始在充电头网移动电源类产品里寻找之前看过的一些比较简单的方案。但是在上面找了半天,翻来覆去看到更多的是一些高性能充电、无线充之类的内容,这些比较复杂的方案和我印象里单芯片解决所有需求的方案简直相去甚远。无奈,最后只好放弃这个平台转而求助于搜索引擎,直到在一篇TWS耳机充电盒芯片文章中找到了想要的内容,我才反应过来原来这些极简的解决方案基本都是我之前在我爱音频网的拆解案例中看到的,原来一开始方向就错了吗记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 。找到了想要芯片品类后,经过对比各个芯片的使用便捷性与外围电路简洁性,我最终选择了英集芯IP5305作为锂电池充放电的管理芯片,得到了转接板的P1版电源结构

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

需要说明的是,其实在S1版的各部分连接结构示意图中,为了给蓝牙模块供电,转接板上也是有一个AMS1117-3.3稳压芯片的。经过把电源部分和信号转接部分的整合,最终在1月30号的下午,V1版电源&信号转接板顺利出炉,在把PCB文件交给淘宝打样后,这一部分的工作算是告一段落了。

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

5.装机联调

由于疫情导致复工延误的影响,在等待了不到三周后我终于收到了来自打样商家的快递,而所需元件则是等到3月20号才逐渐买齐。 之所以元件等了这么久,是因为我临时找的一个可以买到所有材料的淘宝商家迟迟无法复工,3月中旬复工后人家又嫌弃我买的东西太少不愿意做生意记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 。没办法,我只好又重新在淘宝找商家、凑包邮,最后在两家店买齐了所有材料(如果早知道人家少了不卖,元件没准二月就可以到了)。材料都凑齐后,我在20号晚上先对电源部分的功能性进行了验证,以避免模块装上后电压有问题损坏或者其他原因又要拆。但是由于在当晚测试电源部分功能性时,我只是检查了电池是否能充放电蓝牙模块供电电压是否正确,而没有对电路的持续工作能力进行检查,因而给后续的调试工作造成了一定的麻烦。当时测试电源部分功能的照片如下

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

在电源部分功能性测试完成后的第二天,由于我以为电源部分已经没有问题了,于是就把蓝牙模块和转接板焊在了一起准备接上主板联调。但是组装完成后神奇的事情出现了,此时的蓝牙模块只有在充电器插上给电池充电的时候才能在供电引脚上检测到3.3V的电压,一旦拔掉充电器,过一会供电引脚电压就会直接掉成0记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 纳尼?这是什么鬼情况,一直需要插着充电器那我还改个锤子的蓝牙键盘记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 。后来经过一个多小时的排查,才最终确定问题出在了锂电池充电芯片的工作条件上。在IP5305的资料手册(datasheet)里,为了降低芯片功耗,Vout引脚保持5V输出需要一定条件,充电是其中一种,非充电由电池输出时则对负载有最低45mA的电流要求,一旦低于这个值,芯片在大概30s后就会将Vout降到2.5V左右,进入到负载检测模式,只有负载突发电流大于5mA,芯片才会重新启动。但是按照我之前查的资料和NRF51822模块的资料手册估计,这个模块的正常工作电流大概只有10mA而且还是在3.3V电压上,卧槽?这不完犊子了记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

在折腾了一下午始终无法让IP5305保持Vout脚输出5V后,讲真我曾经一度想放弃来着,直到晚饭后忽然有一个“要不把电池直接接到稳压芯片上试试?”的想法冒出来(柳暗花明4/4),我才明白“只要不放弃,方法总比困难多”这句话是什么意思记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 在把IP5305的Vout引脚直接剪断、空出原本连接该引脚和AMS1117-3.3_VCC引脚的5V线路后,为了保险起见同时给整个系统加入节电功能,我在锂电池的正极性端输出线上增加了一个双掷开关,得到了P2版电源结构

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

基于这版结构,在测试过供电电压满足模块工作条件后,3月21号晚上我又一次把整个系统组装了起来,而这一次也终于实现了蓝牙模块在电池供电方式下的正常工作。至此万事俱备只欠东风,终于可以开始真正的调试工作了,说实话联调部分的顺利程度倒是出乎我的意料,仅仅在根据转接板调整了程序内的引脚分配后,在当天晚上我的Filco 104就第一次实现了通过蓝牙信号“向设备”发送按键信息的功能,当时可以说是非常激动了记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 。这里需要提醒像我一样的新手玩家注意,程序中引脚分配时需要注意键盘主板上二极管的方向问题,如果按键矩阵的分配反了,就会出现整个键盘完全没有响应的情况。同时需要说明的是,上面那句话之所以用的是“向设备”而非“向电脑”,是因为我当时验证键盘功能用的是手机和平板,电脑则是能搜到但是尝试了好几次都连不上(蓝牙驱动没问题,直到后来重装系统我才证实了这是电脑系统的问题)。此时鉴于部分按键已经能顺利地在平板和手机上响应了,加之成功来的比较顺利,开心之余我也就把连不上电脑的问题和测试全部按键功能性的问题暂时搁置了,想着以后这俩问题一起解决。附一张当时实验成功的照片

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

21号晚上验证完功能性后,22号一早我就开始了琢磨怎么把所需要的元件塞进键盘里而且又不明显破坏外观,由于像电池、控制器这些铁定都是塞进机身里而不需要外露的,所以最大的问题其实是怎么安排充电口开关。秉持着“能不动就不动,能少动就少动”的原则,我首先把目光投向了键盘本身的数据线出口和支撑脚,这两个地方一个是原本的开孔结构、一个在折叠后可以有很好的遮挡作用,都比较符合我的改造原则。经过一番比划和权衡,最终确定了在数据线出口用圆锉扩孔后安放充电口、在支撑脚位置打孔安装电源开关的方案,成品如下图所示

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

但是由于当时开关部分涂的热熔胶比较少,加之电线本身露出的也比较短导致固定点受力变大,这个开关用了没两天就脱落了,后来我干错就把它改到了键盘内部,开长孔实现开关的拨动。

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

处理完开关和充电口,接下来就是电池了。考虑到续航问题,我用上了家里闲置的两块1200mAh功能机电池,拆掉其中一块的保护板,将其并联到另外一块电芯上后(并联时一定注意正负极和两个电芯的电压差),就得到了最终的2400mAh电池组。电池部分的安装见下图,需要注意的是在图中所示位置放电池的话,理想厚度为4mm或以下,极限厚度为5mm,过厚则可能存在电池与键盘主板底部焊接点接触的安全性问题。

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

完成以上步骤后,键盘内部大概就是上图右下角的样子,画面外是一个和Type-C接口相连的5针的PH2.0数据、充电接头(插在键盘主板上),以及一个正极线上加了开关的2针的PH2.0电池接头(插在自制电源&转接板上),个人感觉看起来还是比较简洁的。只差安装键盘上盖的装配效果如下图

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

完成所有装配后,在进行最终的全按键功能测试时,我意外的发现记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 尼玛,我买的这个模块居然有一个引脚是坏的记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)???具体来说是这个模块的P0.01引脚,想求教有木有用过同型号模块的旁友啊,这个引脚应该是可以直接用的吧?我看说明书上也没说不让用啊,最重要的是妈个鸡没有多余引脚了啊喂记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 没办法,在仔细权衡了状态灯的功耗(10mA级)对状态灯的需求以及续航水平之后,我决定还是把主板上的状态灯焊下来,在程序中将原本用于状态灯的引脚分配给了扫键,同时在转接板上飞了一根线连接两个引脚。至此,键盘的完整功能性验证终于完成。

在我的计划中,原本到这一步就可以宣告工程结束了,但是按键测试过程中键盘连接手机和平板所表现出的不稳定性,让我对P2版电源结构的供电性能产生了怀疑。经过测试,果不其然P2版的供电结构随着锂电池电压的下降,稳压芯片的输出电压也一直在降低记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 。虽然我买的这个51822蓝牙模块的工作电压范围很宽(2V-3.6V),但是电压一直在变的话,根据实际体验结果来看可能的确会对模块的长时间工作稳定性造成不良影响(这点不是非常确定)。为了保证模块可以长期稳定运行,我又对电源结构进行了的改进。在参考了QCY T1耳机充电盒内的电路结构后,我决定效仿其从电池到充电顶针部分的结构,在锂电池与稳压芯片间增加一个升压电路把电压抬高到芯片可以正常工作的5V,至此P3版电源结构诞生,开关也从双掷变成了普通的通断开关

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

但是吧,通往成功的道路总是曲折的,这版电源结构由于我的疏忽并没有能完成最后的装配记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)事实上,P3版设计甚至连功能性验证都没能完成。这一部分的故事就要从不认真读资料手册讲起了,在P3版设计中我所挑选的升压芯片是SGM6603系列中一个可调压的版本,其所需的电压检测电阻在数据手册里其实明确写了推荐阻值,但是由于我之前查的时候并没有仔细看,推荐100k的电阻用成了10k,结果买了俩芯片全都一上电就坏了,直至我后来复查数据手册才后知后觉电阻用小了记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) ,但是为时已晚。就在我纠结还要不要再买几个升压芯片回来继续试验的时候,偶然间的淘宝推荐让我看到了一种叫LDO(low dropout regulator)的东西。通过了解,我发现这种芯片简直就是为我这种使用场景量身设计的,同时也正是通过这次查询我才反应过来原来AMS1117-3.3也是一种LDO,只不过这个型号偏重的更多是电流能力,如果选择偏重“低dropout电压”的型号,那升压部分其实完全可以去掉,让P3版电源结构得到极大简化。经过反复确认,我最终决定再次对电源结构进行改进,由此得到了P4版电源结构

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

在LDO芯片的选型上,我的想法是兼顾外围电路简洁性与dropout电压水平,最终经过对比得到了四个可用型号,分别为TPS79333DBVRTPS78233DDCRME6211C33M5G-NHT7333-A,其中前两个按售价来说应该是性能比较好的,后面两个则是比较经济实惠的,P4版中之所以使用ME6211完全是因为我当时从快递里拿出来的第一个就是它,一试也正好满足要求,就没有再试别的。P4版电源结构的实际电路长这样,因为毕竟是自己用也不量产,我就没有再制板

记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案)

这次改造完后经过组装测试,信号稳定性终于达到了比较令人满意的水平(但是长期稳定性还是有待检验),到这里,我终于可以说这个跨度五个月,净耗时20天左右的项目正式结束记一次Filco 104键盘USB改蓝牙历程(基于NRF51822蓝牙方案) 。目前整个项目为数不多没有办法给大家参考的事情之一就是电池耐用性如何,如果后续有结果,我会更新在评论里(如果记得的话)。

总结

经过这次的折腾,我最大的体会就是:互联网这个经验共享的大平台是一个可以让想法落地的地方。如果没有互联网上这些可爱的人们分享经验、分享知识,我的这次改造其实完全没可能完成,暂且不说我根本就没有能力编写一个蓝牙键盘的程序,就算是蓝牙模块挑选,如果没有大家分享经验我也是绝无可能凭一己之力做出选择的。因此,怀着感恩的心,我决定把这次的折腾历程记录下来,给同样有折腾精神的人们一个参考。生命不息,折腾不止,如果你有什么想要的东西但是现实无法满足,那就去自己动手做一个吧。最后着实要感谢chiphell网站的jiangming1399大佬分享的开发经验和代码、51nb网的zmingwang大佬提供的经验参考、以及yang大kai等其他在自制蓝牙键盘方面贡献过经验的可爱的人们。

我是卡里西路,我爱这个世界。

未经授权,不得转载


Original url: Access
Created at: 2020-10-10 22:26:04
Category: default
Tags: none

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