crcctcpr/yaris-xp90-repair

GitHub: crcctcpr/yaris-xp90-repair

面向丰田 Yaris XP90 车主的维修知识库与只读 Python OBD-II/CAN 诊断工具包,帮助车主自行排查和修复车辆问题。

Stars: 0 | Forks: 0

# 丰田 Yaris (XP90, 2006–2012) — 维修知识库 + OBD2 诊断 这是一个分为两部分、由车主创建的资源,旨在让第二代 **丰田 Yaris (XP90)** 保持正常行驶: 1. **`repair-kb/`** — 一个结构化的维修 wiki(涵盖发动机、燃油、冷却、刹车、 悬挂、变速箱、电气、车身),外加一个包含 127 条记录的 DTC 数据库、 扭矩/油液规格、保养计划,以及 XP90 最常见的 20 个问题(附带按可能性排序的原因和 DIY 修复方法)。 2. **`diag/`** — 一个 Python OBD2 工具包,可通过廉价的 蓝牙 ELM327 适配器与汽车通信:提供实时仪表板、燃油修正/MAF 分析、维修前后对比验证、就绪监控、催化转化器效率分析、Web 仪表板,以及一个能将 DTC 直接交叉链接到 wiki 的知识库。 该工具最初是为了诊断一辆真实存在的 2011 款 Yaris 1NR-FE(带有顽固的 **P0101 / MAF** 故障)而开发的,随后进行了通用化处理,以便其他车主能在自己的车上使用。将其分享出来,希望能帮助某人修好自己的车。 ## 涵盖哪些发动机 / 市场? 主要涵盖 XP90 Yaris/Vitz/Belta(2006–2012)中的 **1NR-FE 1.3L** 及相关的 **NR/NZ** 四缸发动机。通用 OBD2(模式 01/03 等)适用于任何 OBD2 汽车;而针对丰田的特定部分(模式 21/22 布局、预期值表格、 DTC 说明)则是专为该平台调校的。可以通过配置文件添加其他车辆 — 参见下文的“多车型支持”。 ## 第 1 部分 — 维修知识库 (`repair-kb/`) 纯 Markdown 编写,无需任何工具 — 可直接在 GitHub 或本地浏览。 | 文件 | 内容 | |------|----------| | `engine/ENGINE_REPAIR.md` | 发动机程序 (1NR-FE) | | `engine/DTC_FULL_DATABASE.md` | 127 个诊断故障码、症状、排序原因、修复方法 | | `fuel/`、`cooling/`、`brakes/`、`suspension/`、`transmission/`、`electrical/`、`body/` | 各系统指南 | | `specs/TORQUE_SPECS.md`、`specs/FLUID_SPECS.md` | 扭矩与油液参考 | | `guides/COMMON_PROBLEMS.md` | XP90 前 20 大故障(附 DIY 难度与成本) | | `guides/MAINTENANCE_SCHEDULE.md` | 保养间隔 | ## 第 2 部分 — OBD2 诊断工具包 (`diag/`) ### 硬件 - 一个蓝牙 **ELM327** 适配器(约 10 美元的克隆版即可使用;PIN 码通常为 1234/0000)。 - 一台带有 BlueZ 的 Linux 主机。在内置/USB 蓝牙控制器上开发。 ### 安装 ``` git clone https://github.com/crcctcpr/yaris-xp90-repair.git cd yaris-xp90-repair/diag python3 -m pip install -r requirements.txt # pyserial (matplotlib optional) ``` ### 连接适配器(一次性配对) ELM327 克隆版最棘手的地方在于 BlueZ 在输入 PIN 码时会超时。压缩包内包含了一个辅助脚本: ``` # terminal 1:自动回答 PIN sudo python3 bt_pair_agent.py --pin 1234 # terminal 2:扫描、配对、绑定到 serial port sudo bluetoothctl -- scan on # wait ~15 s, note your adapter's MAC sudo bluetoothctl -- pair # 如果 bluetoothctl 自己的 agent 仍然劫持 PIN,请直接通过 D-Bus 配对: sudo dbus-send --system --print-reply --dest=org.bluez \ /org/bluez/hci0/dev_ org.bluez.Device1.Pair # 绑定到 /dev/rfcomm0(注意:许多克隆版使用 SPP channel 2,而不是 1) sudo rfcomm bind rfcomm0 2 && sudo chmod 666 /dev/rfcomm0 ``` ### 使用方法 ``` cd diag ./yaris-diag connect # verify the link ./yaris-diag healthcheck # one-shot "is my car OK?" ./yaris-diag dash --log reports/drive.csv # live dashboard, logs to CSV ./yaris-diag dtc P0101 # look up a code (cross-links into repair-kb/) ./yaris-diag web # browser dashboard at http://localhost:8080 ``` 维修验证工作流(最初的用例): ``` ./yaris-diag dash --log reports/before.csv # baseline drive # ... 执行修复(例如 清洁/更换 MAF)... ./yaris-diag dash --log reports/after.csv # repeat drive ./yaris-diag verify --before reports/before.csv --after reports/after.csv ``` ### 子命令 `connect pull dash scan sniff tpms clear readiness analyze verify coldstart cat healthcheck mode06 enhanced drive web history plot economy dtc kline` — 运行 `./yaris-diag --help` 查看具体参数。 ### 安全模式 除了 `clear` 之外,所有操作都是 **只读** 的,该命令会执行带有审计记录的 OBD2 模式 04 清除(快照 → 清除 → 快照)。该工具包从不使用具有风险的服务(安全访问 27、例行控制 31、按 ID 写入 2E、编程 34–37 等)。它只会对您的汽车进行 *读取* 操作。 ### 在没有连接车辆的情况下尝试 内置的示例驾驶日志可让您离线进行测试分析: ``` ./yaris-diag analyze diag/examples/sample_drive.csv # from repo root ./yaris-diag dtc P0101 python3 -m unittest discover yaris/tests # 62 unit tests ``` ### 多车型支持 车辆的特定参数保存在 `diag/yaris/vehicles/.toml` 中。复制 `_template.toml`,填入您的 VIN / 适配器 MAC 地址 / 预期值表格, 然后使用 `--vehicle ` 或 `YARIS_VIN=` 进行选择。内置的 `JTDEXAMPLE0000000.toml` 是一个 2011 款 Yaris 1NR-FE 的占位示例 — **请务必将 VIN 和适配器 MAC 替换为您自己的信息。** ## 免责声明 这是社区/业余爱好者编写的文档和工具,按“原样”提供,不附带任何 担保(请参阅 [LICENSE](LICENSE))。它 **不** 隶属于丰田公司。扭矩 数值、油液规格和操作程序可能包含错误 — 在依赖这些信息之前,请务必 与您所在确切市场/车型的原厂维修手册进行核对。维修车辆和 刹车存在风险;如果您不确定,请咨询 专业人士。您需对自己的安全以及遵守 当地排放和维修权法规负责。 ## 许可证 MIT — 请参阅 [LICENSE](LICENSE)。欢迎贡献代码和提出修改意见。
标签:CAN总线, ELM327, OBD-II诊断, Python, Python安全, Ruby, 无后门, 汽车维修, 知识库, 逆向工具