Microsoft Sculpt有线转换Mod

2021-02-24 22:07:52

我为Microsoft Sculpt无线键盘制作了一个控制板,将其转换为有线USB,现在我最喜欢的键盘更好。

QMK Config可在@ Chadaustin / QMK_Firmware(键盘/手机/雕刻/)以及@ Chadaustin / Wired-Sculpt-PCB的PCB设计文件。

我计划在做一个至少一个,所以如果你想要一个,也许可以帮忙。

这是一个巨大的改善。延迟减少了约13毫秒,并且完全控制微控制器的固件,您可以自定义键盘和图层,实际上使用键盘的内置LED。

随意停止阅读 - 我将告诉导致这个项目的事件顺序。除了在大学中的基本电压和电阻电路的一些接触之外,我还有很少的电子背景。但是,在短时间内,我从几乎没有知道电容器是制造和组装的工作PCB的东西,也许这将激励别人试一试。

自从在大学开发RSI以来,我专门使用微软的符合人体工程学键盘。当我第一次尝试雕刻时,我瞬间知道这是最好的。软致动力,短键旅行和刚性框架适合我的手。因为数字垫是一个单独的设备,缩短了与鼠标的距离。

我的兄弟也出去买了一个。不久之后,他把它给了我,说潜伏期不一致,并且对于游戏来说是不可接受的。我以为他是唯一敏感的,因为我在Linux,Windows 7或麦斯斯没有问题。但是,我更新到Windows 10并完全看出他的意思。

这就像是如果几秒钟不按任何键,键盘就会进入睡眠状态,而唤醒后的第一次按键将被延迟甚至更糟。

天哪,我不能使用我的USB 3集线器,该集线器的EMI会破坏2.4 GHz信号,并且其他所有按键操作都不可靠。我将无线收发器直接安装在桌子下方的键盘下方,而钥匙仍然掉落了。

因此,有史以来最好的键盘。但是无线很烂。 (但主要是在Windows 10中?对此一无所知。)

整个事情的开始是EdenFS团队是一群键盘爱好者。在大流行期间,由于我们每个人都精疲力尽,彼此失踪,因此我们试图考虑一些虚拟团队不在现场。 Wez提议引导每个人构建一个Sweet 16 Macro Pad。

因此,好吧,键盘是一个矩阵,其中的一些二极管用于消除信号歧义,而微控制器则可以快速轮询矩阵并通过USB报告事件。

所以也许我可以修复雕刻!我以便宜的价格从eBay上购买了一个无收发器的Sculpt,然后将其打开(感谢Emmanuel Contreras!),以为它的控制器可能会被带有USB的新固件刷新。 Sculpt使用的是Nordic Semiconductor的nRF24LE1,但当时我还无法利用这些信息,尽管它确实向我指出了Samy Kamkar的骇人听闻的指南,其中暗中地窃听了附近(较旧)Microsoft无线键盘的击键。

我几乎放弃了,但是Per Vognsen建议我自己扫描矩阵,结果迈克尔·芬查姆(Michael Fincham)已经绘制了矩阵,并将Teensy 2.0 ++板焊接到了Sculpt的测试垫上,表明这是可行的!

首先,我买了一个arduino pro micro,就像甜点16用途一样。哦,嘿,18个GPIO引脚不足以驱动雕刻的26针矩阵。我看着使用一个i2c gpio扩展器,但它感觉像太多了。

更多针脚? QMK的Proton C有更多的针脚!所以我仔细焊接到测试垫上,因为Michael所示是可能的......它的工作!

将这些电线粘在没有短短的情况下坚持垫子是棘手的。 (我尚未发现魔法的助剂是如何。)

键盘工作,但我不能将电路板,电线和新的微控制器融入这种情况下,即使我可以在某种程度上包装它,我也没有真正幸福地离开它。

我想,我真正需要的只是带状电缆连接器,所以我订购了30个引脚,1.0毫米的音调带突破和Pricier(但吨销!)Teensy 2.0 ++。回顾一下,我试图在微控制器上节省10美元很可爱......你只需要习惯花钱,以节省你的时间。

好吧,它几乎和焊接一样烦人,仍然不合适。为微控制器省钱了。

我想放弃。我的钥匙不总是在游戏中注册的情况真的很糟糕吗?我可以忍受一些片状和延迟吗?

但是乔恩·瓦特(Jon Watte)愿意花一整天的时间向我展示如何使用KiCad,设计电路,布局PCB,在Digi-Key上选择组件,扫描数据表以获取重要信息以及如何与PCB制造厂合作。当然,您永远不会拒绝这样的机会。

假设像我一样,您从未这样做,所以我将总结这些步骤。

乔恩(Jon)向我展示了KiCad的一些技巧,例如全局标签,并从一些标准的电阻和电容值入手,但是仔细阅读数据表非常重要,因为细节可能很重要。

我知道我希望主处理器是AT90USB1286控制器,幸运的是KiCad已经有一个符号。 Atmel有一份全面且易于访问的数据表,显示我在USB数据线上需要一些22Ω电阻,哪些ISP编程器线路需要电阻(和适当的值),我需要将HWB拉低或提供将其拉低的物理开关,以允许将设备重新引导至USB固件更新模式。

电气工程师隐含着很多东西,但对我来说却是新事物。你要:

静电放电保护!事实证明,瞬态现象很普遍,仅通过插入即可轻松炸出芯片。

然后,当您遇到诸如EMI和高频信号完整性之类的问题时,兔子洞就会变得很深。

我一直不得不告诉自己“这只是一个键盘”,但这也有助于在单击这些按钮时就这些主题获得大量高质量的资源。我花了很多时间在EEVBlog上。

在完成电路设计之前,乔恩让我做了几件事。如果工厂提供的USB引导加载程序无法正常工作,他建议我为ISP程序员增加占用空间(但不要增加连接器!),并通过调试LED来证明代码完全可以使用。

安排好原理图并确保其通过电气规则检查后,就该选择特定的组件了。也就是说,将220Ω电阻的基准替换为Panasonic ERJ-3EKF2200V,0603表面贴装。

有两件事要牢记。对于常见的组件,例如电阻器和陶瓷电容器,有很多选择。例如,我在digikey上看到超过1400个表面贴装的220Ω电阻。我试图坚持使用像松下或三星这样的高品质品牌。

重要的是物理形状因数,它决定了电路板上的尺寸。拾取零件后,它就会有尺寸,您需要告诉KiCad应该为该组件分配哪个物理尺寸。我使用了0603电阻,因此我在原理图中为每个电阻分配了“ Resistor_SMD:R_0603_1608Metric”封装。

其他都一样。乔恩(Jon)向我展示了如何绘制自己的轮廓图,但是为了避免复杂性,我能够在KiCad的标准库中为所需的每个组件找到合适的轮廓图。

当您将原理图导入Pcbnew时,是时候找出问题所在了。板的边缘在哪里?在这里进行仔细的测量。安装孔在哪里?您想在哪里使用微控制器?您要在哪里使用USB端口?

另外,您还必须选择通孔尺寸和走线宽度。大概是根据经验,乔恩让我在狭窄的痕迹上使用.250毫米,在较宽的痕迹上使用.500毫米。我用窄走线表示信号,用宽走线表示功率,尽管自那时以来我就听说在滤波电容器和VBUS之间使用窄走线是个好主意。

当然,原理图和PCB之间会有一些迭代。在将带状电缆连接器和MCU物理放置后,走线全部交叉,因此我必须重新分配所有引脚,以使其在物理上有意义。

关于如何运行USB数据线以及如何放置静电保护芯片以获得最大保护,也存在一些物理限制。

因此,就像这个委员会一样简单,我花了大量的时间来完成所有这些工作。

我发现自己迷失于孔洞,痕迹和脚印的抽象性中,因此通过不时在KiCad的3D查看器中加载PCB来接地对自己很有帮助。

我试图在美国找到一种低成本的原型制作服务,但是如果您希望以我愿意在键盘上花费的数量制造和组装PCB,看起来中国仍然是最佳选择。

我在某处看到了PCBWay的推荐,这似乎是个不错的选择。他们的网站上有教程,引导您以可以处理的方式提交Gerber文件。

在购买任何组件或进行装配之前,我认为进行测试订单是聪明的,只是为了物理地看看电路板并确保它适合。

好事,因为它没有!安装孔约为半毫米,并且间隙足够紧,半毫米差不多。

我无法停止玩它!在软件中绘制的线条变成了物理玻璃纤维和铜,这是如此神奇。

在耦合调整和更新丝网上的版本号和日期后,我向PCBWay发送了另一个订单,这次请求装配服务。

总的来说,我对他们的沟通印象深刻。他们无法获得我在我的BOM中列出的具体领导,并确认是否替代是可以的。

然后,在源于所有部分之后,他们让我让我澄清主钽旁路电容的极性,因为我忘记了在丝网印刷上表明任何东西。

最后,在装运组装板之前,他们向我发出了每一面的高分辨率照片,并让我确认方向和装配。

这一切都对我来说看起来很纠正,尽管我稍后注意到其中一个迹线被提升。 (仍然存在连接,这不是一个巨大的交易,因为该迹线仅连接到LED,即无论如何都没有工作。)

装配板需要大约一个月的时间到达。我每天都检查大会状态。也许下次我会加快。 :)

我的第一个测试订单最少,是便宜的,带有可爱的电池供电的LED圣诞树装饰品。

他们照顾了拾取机器的对齐孔,并送给我个别板。我没有必要做任何小组化。

来自中国的运输似乎不合理地快速,但我想这就是这些日子的工作原理。

在供电之前,我仔细地做了主电源电路的电连接测试。想要确保第一个上电不会导致蓝烟的吹水。

我简短地惊慌失措,思考一切都被倒退,直到我发现我的蹩脚小型万用表在连续性模式下,运行从COM到正面的电流。所以我认为董事会有一个矮小的地方,我必须拆解它!实际上,它显示ESD保护电路从GND到VBUS正确分流电流。

当我意识到这一点并扭转了线索时,一切都是正确的。 (而且我买了更好的万用表,没有这个问题。)

但是,发生了电气问题!带状电缆连接器上的大多数针脚都没有焊接到板上。我不知道这是否是KiCad中占位面积的阻焊层问题,还是电路板不够平整,无法使每个焊盘上的焊膏向上连接到腿上。

我担心在1毫米间距的散热片之间形成桥接,所以我用助焊剂覆盖了整个区域,并非常小心地将焊料从焊盘向上刷去。我花了三遍才能测量每个带状引脚和相应的微控制器脚之间的可靠连接。

既然一切看起来都正确无误,是时候插入它了!成功!出现了工厂提供的DFU引导加载程序设备。

使用dfu-programmer,我上传了一个微型C程序,它只是以1 Hz的频率闪烁了测试LED引脚。首先很奇怪:时钟速度似乎不正确。经过一番仔细的数据表阅读(长话短说),CLKDIV熔丝位被预编程,将您的时钟速度除以8。因此晶体为16 MHz,但MCU将其除以2 MHz。我曾期望它默认使用内部RC振荡器,这将产生1 MHz的时钟。

您可以使用在线编程器设备(而不是USB!)来更改保险丝位,但是这样做的副作用是擦除了工厂提供的便利的USB引导加载程序,如果可能的话,我宁愿不加理会。 (您可以上传一个LUFA引导加载程序,但是由于所有这些都是新的,因此,迈出第一步非常好。)

幸运的是,对于此设备,以上所有内容实际上都不重要!事实证明,我无需编程任何保险丝就可以脱身。 CLKDIV仅设置默认的时钟速度除数,您可以在程序开始时在软件中对其进行更改:

所有这些的结果是,董事会上的六个AVR ISP引脚仅是紧急情况所必需的。 (好的话,因为我稍后借用了两个引脚。)从工厂中,它可以用固件闪烁,并根据设计。

在获取时钟速度问题之后,我闪过QMK - 再次感谢Michael Fincham来映射布局 - 它的工作!

雕刻将左右空格键作为独立键处理。迈克尔利用了它并映射了正确的空格键进入。事实证明我无法忍受,所以我映射到空间。

既然它对电池指示没有必要,我重新浏览了键盘的红色LED以进行帽子锁定。

我也想使用绿色的LED,但我发现它具有逆转极性,并且没有简单的方法可以使用当前电路驱动它。

这里唯一的并发症意识到在没有拆卸键盘的情况下启动引导加载程序将是超级方便的,因此我将RST和GND从AVR ISP引脚焊接到一个按钮,然后将其热粘在电池盒中。 (HWB在板上被拉低,因此所有外部重置进入引导加载程序。)

要允许将来的拆卸,我削减了PC风扇延长电缆并重新调整了连接器。

我没有足够的单词来传达这款修改的键盘让我的快乐。

经过多年的想法,我刚刚变老了,我的电脑再次感到坚定。这就像一堆抵抗消失了。游戏更容易。打字更容易。延迟绝对更好,也许更重要的是,更加一致。

我被解雇了吗?在我的电脑上测量,从78毫秒到65.13毫秒的总键盘到屏幕延迟减少!

我必须在新的工作笔记本电脑上测试它,一个MSI GS65隐身,测量按照30 ms(!)下的按键对像素延迟。

在我的延迟测试期间,无线键盘反复丢弃键,仿佛在最后一次欢呼中验证我的所有投诉。

在等待组装的PCB到达中国时,我将我的Wii传感器栏送到电视USB中100 mA,并将其撞到7.5V所需的灯泡。我担心过度的目前的绘制和可能损坏电视的USB端口,所以我拿起USB仪表。

这个键盘绘制了大约60 ma - 四分之一瓦特 - 这不差,但感觉可能做得更好。

原始无线收发器在使用时在使用下绘制20 mA,在100μA下方100μA。所以我可能会玩下来的时钟到8 MHz,并看到可以关闭微控制器上的子系统。

使用开关调节器,我甚至可以将MCU电压丢到3.3。随着无线雕刻的睡眠行为,尽管有机会改善那里。

我可能不会太努力。我几乎从不在手机或笔记本电脑上使用有线键盘,在那里它可能会产生一个小的差异。

FN交换机(功能键和卷/亮度/等)之间不起作用。我追踪膜并发现开关控制器是否将销钉1拉下47K或半兆欧。所以我想,假设膜的寄生电容,我可以通过驱动它高并测量直到它降低的时间来检测开关的状态。

绿色LED逆转了红色的极性!要立即驱动它们,我必须将接地引脚设置为半VCC,并处理红色主动高和绿色高电位。这可能使FN开关复杂化,因为它朝向相同的“接地”电压。我还没有想到Microsoft电路的作用。

下次,我将把所有LED放在PWM引脚上。他们有点太亮了,呼吸会很有趣。

我想要一个更好的丝带电缆连接器。一个更好地关闭在功能区上。虽然我感谢被迫学习助焊剂的魔力,但如果它正确焊接到垫子就会很好。

鉴于钽是一种稀土金属,可能很好地用陶瓷替换它,也可能串联4Ω电阻。 我喜欢这里的任何意见。 我总是想要一个旧键盘的USB 2集线器吗? 集线器控制器只是一对夫妇...... 静止轨道上的痕迹。 :)他们应该看起来像Nileaus让他的情分带一样干净。 这是一大焦点。 电子产品是如此动手,作为从未对制造商童话或任何社区持兴趣的人,我现在得到了。 将软件连接到现实世界感觉如此赋予。 什么爆炸了我的思绪,最重要的是这些日子是如何访问的硬件设计。 下载开源基达,在Digi-Key上挑选一些廉价的零件,将其发送给制造商,而不是那么多元,你有一个运作板! 现在我盯着导管通风口,并想知道我可以挂钩微控制器和伺服,以减少家庭能源使用情况。