# PhoneRail —— 五路手机直供电源板 给手机农场用的一块电源板:12V 输入,5 路独立 3.5~4.2V / 4A,直接从**电池座**给 小米8(dipper)主板供电(去掉电池和保护板),ESP32-S3 负责遥测、断电重启、 侧键模拟和 USB 通断。 ## 先读这两份 | 文件 | 内容 | |---|---| | **`五路直供电源板设计.md`** | 设计定稿 v1.6。规格、拓扑、逐项计算、保护链、BOM、PCB 要点、调试顺序、小米8 侧接口引脚定义。**改任何设计决定都要同步更新它。** | | **`PROGRESS.md`** | 当前进度与下一步。原理图画到哪一页、还有哪些阻塞项。 | | **`刀片式方案规划-R2.md`** | **R2 新架构**(底板 4 层 98×98、器件全在背面 + 5 片相同刀片、PCIe 竖插;D15,2026-09-10 由 2 层改),2026-09-08 起与 R1 并行。工程 UUID 在 `.claude/r2/r2-uuids.json`。**R1 保留不动。** | ## 布线计算硬规则 **所有 PCB 布线运算统一在 `10.5.5.13` 服务器执行。** 本机只允许刷新 EasyEDA 快照、校验服务器结果、下发和跑 DRC;不得在本机运行 `route_base.py --replan`、 `--dp-only` 或其他 A* 试算。底板统一从 `.claude/r2/remote_route.ps1` 进入。 服务器上优先用 PyPy(`-Interp /root/pypy/bin/pypy3`,单轮快约 4.7 倍,输出确定); `-Variants @('...','...')` 并行跑多组参数、自动取未完成最少且不比当前缓存差的结果。 设计文档里 **§0.1 是决策清单**(13 条已定稿,不要再重新讨论), **§12 是待确认项**。动手前先扫这两节。 ## 画原理图时 工程已建好在 EasyEDA Pro 里,通过 `easyeda-api` skill 的 WebSocket 桥接操作。 **动手前必须先读 `easyeda-sch-geometry` skill**(项目级,在 `.claude/skills/` 下)。 它记录了 Y 轴方向、旗/端口的旋转语义、坐标吸附、导线数组格式等一批实测约定—— 这些坑每一个都已经真实踩过一次,不读会重蹈覆辙。 器件和工程的 UUID 全部缓存在 **`.claude/eda-parts.json`**, 直接读取即可,不用重新 `lib_Device.search`。 每次改完跑(**它跑的是当前打开的那一页**,所以先 `openDocument` 再验): ```bash /c/Python314/python .claude/skills/easyeda-sch-geometry/scripts/verify_sch.py --nets ``` 改完还要跑一次**跨页对账**,确认没有"全工程只有一个实例"的网络: ```bash /c/Python314/python .claude/xpage.py ``` 六项检查全过之后,**还要让用户截图确认方向与排版**—— 几何验证证明不了"看着对",本项目所有方向问题都是靠人眼截图发现的。 (`python .claude/shot.py out.png` 可以自己先截一张看。) ⚠️ **几何验证有一类抓不到的错**:端口/旗的引脚和元件引脚放在**同一个坐标**时, 中间是一段零长度导线,验证会通过,重画那一页时才会真的断开。 本项目已经踩到三处(P2 的 `K1_VUP`、P1 的 `BLD_REF`/`BLD_A`)。见 skill §8a。 ## 硬件参考资料 `小米8原理图/Xiaomi_Mi_8_Schematic.pdf`(44 页,Rev E8)—— 主板电池座 J600、侧键 J601~J604、尾插 J1401 的引脚定义已从中逐脚追踪出来, 结论写在设计文档 §13。图纸本身是第三方扫描件,**以实测为准**。 ## 两条容易搞混的约定 - **电池侧接排线的 `P+`/`P−`(保护板输出侧),不是 `B+`/`B−`。** 焊错边常温下现象完全正常, 只有过压时才暴露。判别方法和验证步骤见设计文档 §13.5 / §13.7。 - **J600 的 `GND3`/`GND4` 固定脚实际接的是 VBATT,不是地。** 同理 J1401 的 `GND2` 是 USB_VBUS。 按名字当地用会直接短路电池。