Skip to the content
2 layers36 × 30 mmImu to ttl, the printed circuit board in 3D

对 fanhao375/microduck-replica / OSHWhub imutoservo 团购板 的复刻实作记录: 一块自己焊的 IMU 总线板(STM32G031 + LSM6DSV16X + SN74LVC2G241)、一个 Radxa Zero 3W 主控、 15 颗飞特 HD1910、自训 RL 步态策略,以及把这一切调通的全部血泪。

Size
36 × 30 mm
Copper layers
2
Thickness
1.6 mm
Parts
60
Nets
36
Pads
186
Tracks, vias
407, 59
Pours
8
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
11 Oct 2026
Updated
7 Nov 2026

Overview

Imu to ttl is an open-source printed circuit board by Scienceche, from the Scienceche/microduck-journal repository on GitHub. It is a 2-layer board of 36 × 30 mm with 60 parts on 36 nets, routed with 407 tracks and 59 vias.

It is built around the STM32G031F8P6, HT7533-1 and LSM6DSV16XTR, with the AO4407C, BLM18AG601SN1D and BZT52C5V1 among its other parts. Its parts include 17 resistors, 16 capacitors, 6 connectors, 4 ICs and 4 diodes. It belongs with the sensors and measurement boards and the STM32 boards of this library.

Main components

9

README

README.md

🦆 复刻 Microduck —— 项目日志仓库

对 fanhao375/microduck-replica / OSHWhub imu_to_servo 团购板 的复刻实作记录: 一块自己焊的 IMU 总线板(STM32G031 + LSM6DSV16X + SN74LVC2G241)、一个 Radxa Zero 3W 主控、 15 颗飞特 HD1910、自训 RL 步态策略,以及把这一切调通的全部血泪。

私人仓库 · 每日自动同步自工作目录 E:\c1349\复刻microduck

当前状态(2026-11-06)

子系统状态
IMU 板(总线从机 ID 200 @1Mbps,FT6 协议)✅ 完全工作,装向四元数实测校准至 0.00°
固件栈✅ kissqy 官方栈 robotd 0.15.1(control.43)+ 三轮交叉编译热修复
总线质量✅ 丢包 6-9% → 0.004%(ID12/13、ID34→10 两处时隙碰撞已断开)
整机标定✅ 15 舵机零位/方向/限位(标定台 :8085,robotd 桥接)
RL 训练(mjlab/MuJoCo Warp)✅ walk5 前进 0.19m/s;VelStand 抗扰站立 99% 存活(未部署)
仿真保真✅ 936g 整机质量 + 202g 电池(含碰撞盒 70×38×35mm,2026-11-06 起)
步态/站立(kissqy 自训模型)✅ 满电+校向后 10 次冲击(翻滚/前冲/侧切/旋转)不倒
起身恢复⏳ 测试中:门卫链路已打通,待满电跑 5 次推倒统计
摄像头(IMX219 CSI)✅ 单帧验证通过;mediad WebRTC 待装 GStreamer 栈
电源⚠️ 2S 软包(7.72V@今晨);峰值曾拉穿电压致整机重启,起身测试需满电

目录

text
docs/        调试记录(最重要的文件——完整故障树与修复过程)
firmware/    imu-to-ttl 固件(STM32G031 裸机,make g031-dxl)
hardware/    KiCad 复刻工程 + 元件手册
panel/       中控面板 duck_panel(旧栈)+ calib-panel 标定台(:8085,robotd 桥接)
sync.sh      每日同步脚本(工作目录 → 本仓库 → GitHub)

硬件速查

  • IMU 板:团购 PCB + 克隆 STM32G031F8P6 + LSM6DSV16X(换过一颗,旧颗其实没坏)
  • 舵机:飞特 HD1910 ×15,ID 10-14 右腿 / 20-24 左腿 / 30-34 颈头嘴,IMU=200
  • 接线:imu-to-ttl 板自带 4 路舵机总线口 J_L/J_R/J_NECK/J_HEAD(丝印),比外接 hub 电流路径更均衡; dxl_hub(3 口无源)留作备用
  • 电池:2S 软包 70×38×35mm + 底座共 202g,装于躯干后下 (-0.027, 0, -0.055);仿真已含碰撞盒
  • 总线:飞特协议 1Mbps 半双工;U3=SN74LVC2G241(注意:4脚是GND,3脚=RX出,6脚=TX出)
  • 已知坑:克隆 MCU 的 USART DEM 硬件无效(固件用软件 DE);克隆批次 IMU 的 SFLP 引擎输出乱转 (固件改软件 Mahony);PB8/BOOT0 悬空随机进 bootloader(10k 拉带解决)

关键教训(详见调试记录)

  1. 两层显示假象叠加可以完美伪装成"传感器坏轴"——用原始字节对质,不要信中间层
  2. Mahony 积分项必须与比例项同号相加;接反=正反馈发散(主机回放 30 秒实锤)
  3. 照抄参考代码写寄存器时,核对每个地址和值的字面常量(IF_CFG 0x02≠0x03 害人一整天)
  4. 克隆 J-Link 自报产品名 "MS-ARGB";WinUSB/WCID 一直在正常工作
  5. Sync Read 相邻 ID 存在应答时隙碰撞(12→13、34→10 两处):下一 ID 提前 1-2 比特应答污染上一 ID 校验和。回包按 ID 解码与包序无关——换包序即可修复,硬件无需动
  6. 仿真加配重必须同时加碰撞几何:只焊质量不焊盒子,策略对物理障碍"无感",真机上脚怼进电池
  7. IMU 装向校验要看全重力向量:gz 在小角度下与 0° 无异(cos8°=0.990),gx/gy 才暴露偏差
  8. robotd 的标定/运动模式写进 systemd drop-in,重启会继承——"策略没反应"先查模式; init 不是起身控制器,趴姿 init 起不来

Parts

60
QtyValueFootprintReferences
9100nF 50VC_0603_1608MetricC2, C4, C6, C7, C9, C10, C11, C13, C14
610kR_0603_1608MetricR2, R3, R7, R14, R15, R16
4M2MountingHole_2.1mm_M2M1, M2, M3, M4
30RR_0603_1608MetricR4, R5, R6
222uF 16V X5RC_1210_3225MetricC15, C16
1+3V3TestPoint_Pad_D1.0mmTP3
10R (jumper)R_0603_1608MetricR17
1100kR_0603_1608MetricR9
110k ALT DNPR_0603_1608MetricR12
110uF 10VC_0603_1608MetricC5
110uF 25V X7RC_0805_2012MetricC3
110uF 25V X7RC_1206_3216MetricC1
1150RR_0603_1608MetricR13
11MR_0603_1608MetricR10
11kR_0603_1608MetricR1
11uF 25V X7RC_0603_1608MetricC12
12.2k FITR_0603_1608MetricR8
14.7k ALT DNPR_0603_1608MetricR11
14.7uF 10V X7RC_0603_1608MetricC8
1AO4407CSOIC-8_3.9x4.9mm_P1.27mmQ1
1BATT IN 2.54 2PBattPad_1x02_P3.60mm_Drill1.2mmJ1
1BLM18AG601SN1DL_0603_1608MetricFB1
1BZT52C5V1D_SOD-323D3
1FUSE 5A 2512Fuse_1206_3216MetricF1
1GNDTestPoint_Pad_D1.0mmTP2
1HT7533-1SOT-89-3U4
1J_HEADCONN-TH_B3B-PH-K-SJ6
1J_LCONN-TH_S3B-PH-K-SJ4
1J_NECKCONN-TH_B3B-PH-K-SJ3
1J_RCONN-TH_S3B-PH-K-SJ5
1LED 0603LED_0603_1608MetricLED1
1LSM6DSV16XTRST_LGA14_3x2.5_P0.5_LSM6DSV16X_TN0018U2
1PPTC 200mAFuse_1206_3216MetricF2
1PRG18BB101MB1RBR_0603_1608MetricTH1
1SMBJ12AD_SMBD1
1SMF12AD_SOD-123FD2
1SN74LVC2G241DCURVSSOP-8_2.3x2mm_P0.5mmU3
1STM32G031F8P6TSSOP-20_4.4x6.5mm_P0.65mmU1
1SW SPDT MSK12C02SW_SPDT_Shouhan_MSK12C02SW1
1SWD+UART+NRSTPinHeader_1x07_P2.54mm_VerticalJ2
1VBATTestPoint_Pad_D1.0mmTP1

More from Scienceche/microduck-journal

2
  • 2 layers41 × 30 mmV35 ref, the printed circuit board in 3D

    V35 ref

    Scienceche/microduck-journal

    对 fanhao375/microduck-replica / OSHWhub imutoservo 团购板 的复刻实作记录: 一块自己焊的 IMU 总线板(STM32G031 + LSM6DSV16X + SN74LVC2G241)、一个 Radxa Zero 3W 主控、 15 颗飞特 HD1910、自训 RL 步态策略,以及把这一切调通的全部血泪。

    58 parts
  • 2 layers41 × 30 mmGraft src, the printed circuit board in 3D

    Graft src

    Scienceche/microduck-journal

    对 fanhao375/microduck-replica / OSHWhub imutoservo 团购板 的复刻实作记录: 一块自己焊的 IMU 总线板(STM32G031 + LSM6DSV16X + SN74LVC2G241)、一个 Radxa Zero 3W 主控、 15 颗飞特 HD1910、自训 RL 步态策略,以及把这一切调通的全部血泪。

    57 parts

Similar boards

  • 2 layers48.8 × 83.3 mmLED Alarm, the printed circuit board in 3D

    LED Alarm

    spott/LED_Lamp_alarm_clock

    A LED strip alarm clock driving boad.

    86 parts
  • 2 layers163 × 72 mmOM-64DO, the printed circuit board in 3D

    OM-64DO

    OpenModbus/OM-64DO

    A compact industrial-grade 64-channel Modbus RTU output module.

    231 parts21GPL-3.0
  • 4 layers65.9 × 52.9 mmEX CSB1, the printed circuit board in 3D

    EX CSB1

    DCC-EX/EX-CSB1

    Open source EX-CSB1 CommandStation / Booster

    103 parts13
  • 4 layers65.9 × 52.9 mmMotor shield, the printed circuit board in 3D

    Motor shield

    DCC-EX/EX-MotorShield8874

    Design files for the open source 5A Motor Shield

    114 parts12
  • 4 layers47 × 59.7 mmTackle sensor hardware, the printed circuit board in 3D

    Tackle sensor hardware

    Celnardur/rfc_tackle_sensor

    Open a git bash terminal in the directory of your choosing and call the following command:

    79 parts3MIT
  • 2 layers14.4 × 24.9 mmHvoltmeter, the printed circuit board in 3D

    Hvoltmeter

    Maniak003/HV-voltmeter

    High voltage (to 3kV) voltmeter

    35 parts3
  • 4 layers70.1 × 122.2 mmGbc cm4-aio, the printed circuit board in 3D

    Gbc cm4-aio

    will-tm/gbc-cm4-aio

    This project is a drop-in replacement board that fits and Gameboy Color shell and use the same IPS display as used in GBC kits.

    130 parts2
  • 4 layers90 × 160 mmTool power supply v1, the printed circuit board in 3D

    Tool power supply v1

    UBC-Hacker-Fab/tool-power-supply

    general power supply for tools

    125 parts1

Questions

How big is the Imu to ttl PCB?

It measures 36 × 30 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Imu to ttl use?

60 parts, built around the STM32G031F8P6, HT7533-1, LSM6DSV16XTR and AO4407C. 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.

Where can I download the Imu to ttl KiCad files?

From the Scienceche/microduck-journal repository on GitHub, at the commit this page was made from: the board is hardware/imu-to-ttl/imu_to_ttl.kicad_pcb and its schematic hardware/imu-to-ttl/01_power.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Imu to ttl design in my own project?

Its repository states no licence, so its author keeps all rights: ask Scienceche before reusing the design.