这篇文章上次修改于 1119 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
声明
二次开发请注明原作者、出处并遵守相关开源协议。
源PCB工程文件使用Kicad5.99进行查看与编辑。
描述
目前SlimeVR的DIY方案为ESP8266/ESP32开发板+TP4056充电模块。这个方案存在一点问题,有点不够优雅:
- 开发板一般用的是MicroUSB接口,而充电模块用的是Type-C接口,如果需要更新固件你可能会满地找数据线。
- 两个接口不美观,且充电模块需要占用额外空间,导致DIY的成品会叠罗汉一样叠上三层。
- 锂电池直连3.3V引脚,而锂电池充满电的时电压为4.2V,具有一定风险。
- 没有合适的外壳,直接上身未免太极客了一点。
基于上述原因,诞生了这个项目,解决了上面的问题,并具有以下特点:
- 超小尺寸,超高集成度,仅比开发板长1mm。
- 整合接口,仅用一个Type-C接口实现充电与程序下载。
- 集成最最最重要的电池保护芯片。
- 预留电池引脚接口和开关引脚接口,锂电池不再直连3.3V引脚,而是会先经过降压芯片降压后输出。
- 智能切换供电,在有外部USB供电的情况下会切断锂电池供电并进行充电,断开供电后自动使用锂电池供电。
- 免驱哒!当连接电脑需要下载程序时,无需额外下载驱动,可直接识别通信。
规格尺寸
- PCB尺寸:25mm*49mm*1.6mm
- 外壳体积:53.2mm*38mm*21.6mm
- 传感器:BNO08X
- 电池:122530锂电池
- 开关:SS-12D07G3
- 导线:26AWG/28AWG
- 固定螺丝:6颗M2*5
- 绑带:宽度3cm
电气参数
部分参数仅供参考,以实测为准。
锂电池充电电流不计算在负载内。
- USB供电电压:5V
- 工作电流:100mA
- 最大负载:500mA
- 充电电流:≤500mA
- 电池容量:1000mA
- 工作时间:约7-9小时
注意事项
选型
- TP4057芯片需选用
南京拓微
的,友台的数据手册部分数据有差异,可能会出现未知问题。 - PCB和传感器之间的连接因为电流很小可以使用一些较软的线(26AWG/28AWG),过硬的线容易脱焊而且不好组装。
- 固定螺丝需要选用
薄头自攻螺丝
,头部直径≤4mm,头部厚度≤1mm。 - 传感器如BNO系列价格太高可选用MPU9250,但需要核对尺寸。
- 其他请查阅上面规格尺寸表或BOM表。
焊接
- 如果只有电烙铁可以不焊接CH9340K的底部EP焊盘,将不支持睡眠低功耗模式,详情请参阅该芯片数据手册。
- 带自动下载电路,两个按钮是标准的贴片封装,可不焊接,需要时用回形针导通两焊盘即可。
- 因焊接工作量较大,建议使用锡膏和加热台进行铁板烧。
- 如出现问题请确保焊接没有问题,无虚焊、漏焊、反焊等问题。
- 与传感器的接线问题可自行在B站找教程,或参考附件效果图。
安装
- PCB和电池的固定需要使用双面胶,传感器可以选择双面胶或螺丝来固定。
- 开关的安装需要使用胶水或双面胶。
- 开关使用502胶水时需避免粘住开关拨柱。
- PCB与传感器等部件之间连接的导线可能会影响盖子合上,请自行灵魂走线。
- 内部布局可参考附件效果图。
下载
- 附件提供编译好的固件(编译自SlimeVR-Tracker-ESP),也可自行下载编译。
- 如果无法下载烧录程序请先确保无焊接等硬件性问题。
- 可以使用串口调试工具配合Flash和Reset按钮进行测试能否进入下载模式。
- 请使用
ESP8266Flasher
进行程序烧录工作,波特率115200
,4Mbyte
,40MHz
,DIO
。 - 如仍无法正常下载烧录程序,尝试重新插拔Type-C接口,尝试冷启动烧录。
使用
- 使用时追踪器朝向需匹配固件配置,建议充电口朝下.有螺丝的那面朝自己。
- 如魔术贴比较硬,无弹性,建议无螺丝的一面朝自己,防止崩短穿孔,同时在软件中调整设置。
- 也可以选择不穿魔术贴,取一段单面的毛面魔术贴,粘贴到追踪器有螺丝的一面。
3D打印
- 3D打印的外壳如果变形可以尝试用热水泡一下来修正。
- 如果有毛刺影响精度可用砂纸打磨。
SMT/钢片
- 成本原因,可以使用钢片,需注意
钢片割手
。 - 如使用钢片配合SMT模具需在钢网上开PCB四个角的固定孔。
- SMT模具为成本考虑没做到10cm*10cm全尺寸的,如不方便可自行裁剪钢片。
更新日志
PCB
2021.09.24:V1.0
- 初次发布。
2021.10.15:V2.0
- RESET按钮修正IO16错误接地。
- 由于CH340E采用独立供电,在连接电池并断开外部供电的情况下会导致电流倒灌现象,且非常非常非常难焊接,现已使用自带防电流倒灌的CH340K替代。
- 增加自动下载电路。
- 电池保护芯片从DW01+8205A替换为DW06D。
- 电池充电芯片从TP4056(TP4056X)替换为TP4057,封装更小,最高500mA的可编程充电电流。
- 优化IO引脚,多数IO引脚兼容NodeMCU。
2021.10.16:V2.1
- 因为CH340K芯片难以买到且价格过高,使用CH9340K芯片替代。
- CH9340K芯片不再独立供电,支持睡眠低功耗模式且免驱动。
2021.10.17:V3.0
- 精简部分本项目无用引脚和ADC电路,缩减PCB尺寸,更高的集成度。
2021.11.03:V3.1
- 使用Kicad重绘,部分封装有所变动,更加适合SMT贴片。
- 优化布线。
- 添加动态BOM表。
2021.11.13:V3.2
- 优化某元件焊盘过小的问题。
3D打印外壳
2021.09.28:V1.0
- 初次发布。
2021.10.03:V1.1
- 调整部分面的厚度。
- 调整自攻螺丝通道大小。
2021.10.15:V1.2
- 调整盒盖固定传感器部分的厚度。
- 调整开关开口位置以防止拧上螺丝后盒盖盖不上的问题。
- 因自攻螺丝难拧故添加螺纹。
2021.10.19:V1.3
- 调整传感器面向,进一步解决拧上螺丝后还会压到导线的问题。
2021.10.19:V2.0
- 基于3.0版本的PCB重新设计,更小的体积,采用对称设计,调整开关位置,调整绑带宽度。
- 统一螺丝尺寸规格。
SMT模具
2021.10.21:V1.0
- 初次发布。
2021.10.21:V2.0
- 修改尺寸以适配3.0版本的PCB。
附件
下载地址
SlimeVR软件/固件
SlimeVR固件:SlimeVR-Tracker-ESP
SlimeVR服务:SlimeVR-Server
SlimeVR驱动:SlimeVR-OpenVR-Driver
已有 2 条评论
感谢大佬开源分享。
我最近也想学习这方面的内容,请问应该从哪里入门呢
@夜空 不知道你是不是bilibili的那位,这里再简述一下吧。先学习基础电路知识,知道基础元器件的使用方法,能看懂一些简单的原理图。然后是根据自己的需求,参考开源资料去设计你的资料,然后打板验证并修改,重复以上过程。在这过程中你还需要学习EDA软件来帮助你画电路图。最后为了项目的完善可能需要设计一个外壳,因此你可能需要学习一个建模软件来帮助你完成你的最终设计。