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, 无后门, 汽车维修, 知识库, 逆向工具