
Petvest imu node
YangD5014/PETA-CUSTOM
PETA CUSTOM 采用服装形态而非项圈形态:IMU 传感器沿犬体脊柱与四肢根部分布式布置 (见 穿戴位置示意),才能获得躯干/四肢分段姿态——这是单一项圈 设备在物理上无法实现的。主板(Hub)集成电源、主控、语音与显示,通过软排线连接 6 个缝在服装 上的 IMU 卫星节点,整机重量与柔性针对犬类穿戴优化。

PETA CUSTOM 采用服装形态而非项圈形态:IMU 传感器沿犬体脊柱与四肢根部分布式布置 (见 穿戴位置示意),才能获得躯干/四肢分段姿态——这是单一项圈 设备在物理上无法实现的。主板(Hub)集成电源、主控、语音与显示,通过软排线连接 6 个缝在服装 上的 IMU 卫星节点,整机重量与柔性针对犬类穿戴优化。
Petvest hub is an open-source printed circuit board by YangD5014, from the YangD5014/PETA-CUSTOM repository on GitHub. It is a 2-layer board of 62 × 42 mm with 74 parts on 64 nets.
It is built around the ESP32-S3-WROOM-1-N8R8, TCA9548APW and AP2112K-1.8, with the TP4056, TPS63061DSC and USBLC6-2SC6 among its other parts. Its parts include 19 capacitors, 15 connectors, 14 resistors, 8 ICs and 4 diodes. It belongs with the ESP32 boards of this library.
基于多传感器的宠物智能服装方案 — 6 轴姿态捕捉 · 心率血氧 · GNSS 定位 · I2S 语音交互 · OLED 显示,一体化 KiCad 10 硬件设计。

| 主控 | ESP32-S3-WROOM-1-N8R8(WiFi + BLE + 原生 USB) |
| 姿态 | 6× LSM6DS3TR-C 六轴 IMU(分布式卫星节点) |
| 健康 | MAX30102 心率血氧探头 + MAX17048 电量计 |
| 定位 | GNSS 模块接口(NEO-6M / ATGM336H 级) |
| 语音 | INMP441 I2S 麦克风 + MAX98357A D类功放 |
| 显示 | 0.96" SSD1306 OLED |
| 电源 | 1S 4000mAh 锂电 · TP4056 1A 充电 · TPS63061 buck-boost |
| 续航 | ≥18h(全天在线约 25h,休眠策略 40h+) |
| 工具链 | KiCad 10 · 原理图/PCB/3D 全流程脚本化生成 |
运动量不足、异常行为与走失,是城市宠物犬的三大痛点。市面上的"宠物智能项圈"只能记录活动量, 无法回答更专业的问题:
PETA CUSTOM 采用服装形态而非项圈形态:IMU 传感器沿犬体脊柱与四肢根部分布式布置 (见 穿戴位置示意),才能获得躯干/四肢分段姿态——这是单一项圈 设备在物理上无法实现的。主板(Hub)集成电源、主控、语音与显示,通过软排线连接 6 个缝在服装 上的 IMU 卫星节点,整机重量与柔性针对犬类穿戴优化。
⚠ 本仓库目前为硬件 v1.0 工程阶段:原理图/PCB/3D/外壳已闭环并通过机器校验, 尚未打样。欢迎 issue 交流。
┌────────── 1S 4000mAh 锂电(带PCM保护板) ──────────┐
│ │
USB-C 5V ──PTC 2A──TVS │
│ └─► TP4056 1A ─┘─► 电源开关 ─► TPS63061 buck-boost ──► 3.3V/1.2A
│ │
ESP32-S3-WROOM-1-N8R8 ◄── USB D+/D-(USBLC6 ESD) ── USB-C
│ I2C0 ──┬── TCA9548A 8ch 复用 ──┬─ CH0..CH5 ──► 6× FPC ──► IMU 卫星节点 ×6
│ │ └─ CH7 ────► 预留扩展
│ ├── MAX17048 电量计(0x36)
│ ├── OLED SSD1306(0x3C, FPC-4)
│ └── MAX30102 心率探头(FPC-6, 1.8V 板载 LDO)
│ I2S1 ◄── INMP441 麦克风(卫星) I2S0 ──► MAX98357A ──► 8Ω2W 喇叭
│ UART1 ──► GNSS 模块(FPC-4)
└ ADC ◄── 电池分压为什么是 Hub + 卫星节点? 犬体是曲面,IMU 必须贴着颈/肩/髋/尾的皮肤。主板上只放 TCA9548A 复用器和 FPC 座,每颗 IMU 是独立的 14×10mm 小软板(含 2 颗缝纫孔),通过 ≤30cm 软排线以 400kHz I2C 接入——同型号 IMU 的地址冲突也被复用器一并解决。
| 模块 | 方案 | 说明 |
|---|---|---|
| 姿态捕捉 | 6× LSM6DS3TR-C @ 104Hz | 颈/双肩/双髋/尾根分段姿态,支持步态与行为识别 |
| 心率血氧 | MAX30102 探头 | 1.8V 由主板供给,开漏 INT,建议贴耳廓内侧 |
| 定位 | GNSS 卫星模块 | 天线朝天布置于背带上方,远离主控天线 |
| 语音交互 | INMP441 + MAX98357A | 双 I2S 全双工;功放由电池直供保证音量,默认关断 |
| 显示 | SSD1306 0.96" | 胸前 OELD,与传感器共 I2C 总线 |
| 电源管理 | MAX17048 + ADC 双保险 | 精确 SOC + 分压兜底;充电/充满双 LED |
| 扩展 | TCA9548A CH7 预留 | 第 7 通道 FPC 座已布置,可加温度/气压等传感器 |
peta-custom/
├── README.md
├── docs/
│ ├── img/ # 全部展示图(3D截图/渲染图/示意图)
│ ├── schematic-svg/ # 主控板原理图(SVG 矢量)
│ ├── schematic-svg-node/ # IMU 节点原理图
│ ├── petvest-hub-schematic.pdf # 原理图 PDF(6 张分层图纸)
│ └── petvest-imu-node-schematic.pdf
├── kicad/
│ ├── petvest-hub/ # 主控 Hub 板 KiCad 10 工程
│ │ ├── petvest-hub.kicad_sch # 根原理图 + 6 张分图
│ │ ├── petvest-hub.kicad_pcb # 62×42mm 布局(70 封装已放置)
│ │ ├── petvest.kicad_sym # 自定义符号库(MAX17048)
│ │ └── preview/ # 原理图 PDF + 3D 渲染图
│ └── petvest-imu-node/ # IMU 卫星节点工程(14×10mm, 打 6 片)
├── 3d/
│ ├── petvest-hub.glb / .step # 整机 3D 模型(GLB 预览 / STEP 进 CAD)
│ ├── petvest-imu-node.glb / .step
│ ├── petvest-hub-外壳底壳.stl # 3D 打印外壳(直接切片)
│ ├── petvest-hub-外壳盖板.stl
│ ├── viewer.html # ★ 离线 3D 展示页(双击打开, 见 §5)
│ └── libs/ # viewer 的本地 three.js 运行库
├── bom/
│ ├── bom-petvest-hub.csv # 主板 BOM(含推荐型号)仓库自带零依赖离线展示页——双击 3d/viewer.html 即可在浏览器打开
(需保留 3d/libs/ 目录;加载的是 KiCad 导出的真实 GLB 模型,非示意图):
| 视图 | 内容 |
|---|---|
| 组装 | 外壳 + PCB + 全部元件的真实装配状态 |
| 爆炸图 | 盖板抬升 / PCB 悬浮,检查内部结构 |
| 仅 PCB | 裸板多角度检查 |
| 卫星节点 | 14×10mm IMU 节点(含缝纫孔) |
悬停任意元件显示位号与中文说明(数据来自 KiCad 工程)。
装配视图(外壳开口与板边接口一一对应):

爆炸图(盖板 / PCB / 底壳三层):

仅 PCB(俯视 + 等轴测):
IMU 卫星节点(14×10mm,Ø2.7 缝纫孔 ×2):

![]() |
| 主控 Hub 板 · KiCad 10 光线追踪(元件 3D 模型来自官方库) |
![]() |
底壳 66.2×46.2×10.7mm,所有开口与板边接口一一对应: 左壁 = USB-C / 电源开关拨嘴 / 电池出线 / 心率探头 FPC;顶壁 = 6×FPC 排线槽; 底壁 = 4×FPC 排线槽 + 织带缝合槽;右壁 = 2×织带缝合槽;盖板 = 4×M2.5 自攻柱 + 2×LED 透光孔。

打印建议:0.2mm 层厚 · 壁厚 ≥1.8mm(4 圈)· PETG 或 TPU;切片时多实体请勾选"合并/Union"。
# 打开硬件工程(KiCad 10)
open kicad/petvest-hub/petvest-hub.kicad_pro
# 查看 3D(双击或)
open 3d/viewer.html
# 修改需求后一键重建(原理图 → PCB → 外壳 → BOM → 展示页)
python3 tools/gen_schematic.py && python3 tools/gen_pcb.py
python3 tools/gen_enclosure.py && python3 tools/gen_bom.py && python3 tools/gen_viewer.py生成器已内置校验:原理图导出网表与模型逐节点比对 PASS;PCB 生成含"原理图元件必须全部有封装"断言。
| Qty | Value | Footprint | References |
|---|---|---|---|
| 7 | Conn_01x05 | Connector_FFC-FPC:TE_84953-5_1x05-1MP_P1.0mm_Horizontal | J21, J22, J23, J24, J25, J26, J27 |
| 5 | 100nF | Capacitor_SMD:C_0603_1608Metric | C7, C8, C9, C11, C13 |
| 5 | 10µF | Capacitor_SMD:C_0805_2012Metric | C1, C2, C10, C17, C19 |
| 4 | 22µF | Capacitor_SMD:C_0805_2012Metric | C3, C4, C5, C6 |
| 4 | MountingHole_2.7mm | MountingHole:MountingHole_2.7mm | H, H, H, H |
| 3 | 100k | Resistor_SMD:R_0603_1608Metric | R6, R7, R14 |
| 3 | 10k | Resistor_SMD:R_0603_1608Metric | R8, R12, R13 |
| 3 | 1k | Resistor_SMD:R_0603_1608Metric | R4, R5, R9 |
| 3 | 1µF | Capacitor_SMD:C_0603_1608Metric | C12, C15, C18 |
| 2 | 2.2k | Resistor_SMD:R_0603_1608Metric | R10, R11 |
| 2 | 5.1k | Resistor_SMD:R_0603_1608Metric | R1, R2 |
| 2 | Conn_01x04 | Connector_FFC-FPC:TE_84953-4_1x04-1MP_P1.0mm_Horizontal | J50, J51 |
| 2 | Conn_01x06 | Connector_FFC-FPC:TE_84953-6_1x06-1MP_P1.0mm_Horizontal | J30, J41 |
| 1 | 1.2k | Resistor_SMD:R_0603_1608Metric | R3 |
| 1 | 1.5µH 3.5A | Inductor_SMD:L_Bourns-SRN4018 | L1 |
| 1 | 1S 4000mAh | Connector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal | J2 |
| 1 | 2.2µF | Capacitor_SMD:C_0603_1608Metric | C16 |
| 1 | 2A/9V | Fuse:Fuse_1812_4532Metric | F1 |
| 1 | 3V3 | TestPoint:TestPoint_Pad_D1.5mm | TP1 |
| 1 | 4.7µF | Capacitor_SMD:C_0603_1608Metric | C14 |
| 1 | AP2112K-1.8 | Package_TO_SOT_SMD:SOT-23-5 | U30 |
| 1 | BATT | TestPoint:TestPoint_Pad_D1.5mm | TP3 |
| 1 | BOOT | Button_Switch_SMD:SW_SPST_SKQG_WithStem | SW3 |
| 1 | Conn_01x02 | Connector_JST:JST_PH_S2B-PH-K_1x02_P2.00mm_Horizontal | J40 |
| 1 | Conn_01x04 | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J10 |
| 1 | ESP32-S3-WROOM-1-N8R8 | RF_Module:ESP32-S3-WROOM-1 | U10 |
| 1 | GND | TestPoint:TestPoint_Pad_D1.5mm | TP2 |
| 1 | MAX17048 | Package_DFN_QFN:DFN-8-1EP_2x2mm_P0.5mm_EP0.9x1.3mm | U4 |
| 1 | MAX98357A | Package_DFN_QFN:QFN-16-1EP_3x3mm_P0.5mm_EP1.45x1.45mm | U40 |
| 1 | PESD5V0S1BA | Diode_SMD:D_SOD-323 | D1 |
| 1 | POWER | Button_Switch_SMD:SW_SPDT_PCM12 | SW1 |
| 1 | RESET | Button_Switch_SMD:SW_SPST_SKQG_WithStem | SW2 |
| 1 | RGB_DIN | TestPoint:TestPoint_Pad_D1.5mm | TP5 |
| 1 | TCA9548A | Package_SO:TSSOP-24_4.4x7.8mm_P0.65mm | U20 |
| 1 | TP4056 | Package_SO:HSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.41x3.1mm | U2 |
| 1 | TPS63061 | Package_SON:Texas_DRC0010J | U3 |
| 1 | USB-C 16P | Connector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12 | J1 |
| 1 | USBLC6-2SC6 | Package_TO_SOT_SMD:SOT-23-6 | U1 |
| 1 | VBUS | TestPoint:TestPoint_Pad_D1.5mm | TP4 |
| 1 | 红·充电中 | LED_SMD:LED_0603_1608Metric | D2 |
| 1 | 绿·已充满 | LED_SMD:LED_0603_1608Metric | D3 |
| 1 | 蓝·状态 | LED_SMD:LED_0603_1608Metric | D4 |

YangD5014/PETA-CUSTOM
PETA CUSTOM 采用服装形态而非项圈形态:IMU 传感器沿犬体脊柱与四肢根部分布式布置 (见 穿戴位置示意),才能获得躯干/四肢分段姿态——这是单一项圈 设备在物理上无法实现的。主板(Hub)集成电源、主控、语音与显示,通过软排线连接 6 个缝在服装 上的 IMU 卫星节点,整机重量与柔性针对犬类穿戴优化。

rwrife/quiet-trace
USB-powered ESP32-S3 ambient sound-level logger for home offices and shared rooms that keeps only privacy-preserving loudness summaries and serves a local history dashboard—never raw audio.

ZonkSec/kernelcon-2026-badge
source code for kernelcon 2026 off grid badge


aswinserigreen/morishield_hardware
all components bom , pcb layouts and schematics of morishield is maintained here




It measures 62 × 42 mm and has 2 copper layers, 1.6 mm thick.
74 parts, built around the ESP32-S3-WROOM-1-N8R8, TCA9548APW, AP2112K-1.8 and TP4056. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the YangD5014/PETA-CUSTOM repository on GitHub, at the commit this page was made from: the board is kicad/petvest-hub/petvest-hub.kicad_pcb and its schematic kicad/petvest-hub/01_power.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask YangD5014 before reusing the design.