这篇文章上次修改于 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进行程序烧录工作,波特率1152004Mbyte40MHzDIO
  • 如仍无法正常下载烧录程序,尝试重新插拔Type-C接口,尝试冷启动烧录。

使用

  • 使用时追踪器朝向需匹配固件配置,建议充电口朝下.有螺丝的那面朝自己。
  • 如魔术贴比较硬,无弹性,建议无螺丝的一面朝自己,防止崩短穿孔,同时在软件中调整设置。
  • 也可以选择不穿魔术贴,取一段单面的毛面魔术贴,粘贴到追踪器有螺丝的一面。

3D打印

  • 3D打印的外壳如果变形可以尝试用热水泡一下来修正。
  • 如果有毛刺影响精度可用砂纸打磨。

SMT/钢片

  • 成本原因,可以使用钢片,需注意钢片割手
  • 如使用钢片配合SMT模具需在钢网上开PCB四个角的固定孔。
  • SMT模具为成本考虑没做到10cm*10cm全尺寸的,如不方便可自行裁剪钢片。

更新日志

PCB

2021.09.24:V1.0

  1. 初次发布。

2021.10.15:V2.0

  1. RESET按钮修正IO16错误接地。
  2. 由于CH340E采用独立供电,在连接电池并断开外部供电的情况下会导致电流倒灌现象,且非常非常非常难焊接,现已使用自带防电流倒灌的CH340K替代。
  3. 增加自动下载电路。
  4. 电池保护芯片从DW01+8205A替换为DW06D。
  5. 电池充电芯片从TP4056(TP4056X)替换为TP4057,封装更小,最高500mA的可编程充电电流。
  6. 优化IO引脚,多数IO引脚兼容NodeMCU。

2021.10.16:V2.1

  1. 因为CH340K芯片难以买到且价格过高,使用CH9340K芯片替代。
  2. CH9340K芯片不再独立供电,支持睡眠低功耗模式且免驱动。

2021.10.17:V3.0

  1. 精简部分本项目无用引脚和ADC电路,缩减PCB尺寸,更高的集成度。

2021.11.03:V3.1

  1. 使用Kicad重绘,部分封装有所变动,更加适合SMT贴片。
  2. 优化布线。
  3. 添加动态BOM表。

2021.11.13:V3.2

  1. 优化某元件焊盘过小的问题。

3D打印外壳

2021.09.28:V1.0

  1. 初次发布。

2021.10.03:V1.1

  1. 调整部分面的厚度。
  2. 调整自攻螺丝通道大小。

2021.10.15:V1.2

  1. 调整盒盖固定传感器部分的厚度。
  2. 调整开关开口位置以防止拧上螺丝后盒盖盖不上的问题。
  3. 因自攻螺丝难拧故添加螺纹。

2021.10.19:V1.3

  1. 调整传感器面向,进一步解决拧上螺丝后还会压到导线的问题。

2021.10.19:V2.0

  1. 基于3.0版本的PCB重新设计,更小的体积,采用对称设计,调整开关位置,调整绑带宽度。
  2. 统一螺丝尺寸规格。

SMT模具

2021.10.21:V1.0

  1. 初次发布。

2021.10.21:V2.0

  1. 修改尺寸以适配3.0版本的PCB。

附件

下载地址

GitHub:SlimeVR-Tracker

SlimeVR软件/固件

SlimeVR固件:SlimeVR-Tracker-ESP
SlimeVR服务:SlimeVR-Server
SlimeVR驱动:SlimeVR-OpenVR-Driver