跳到主要内容
AI教程

为 1991–95 年 Jeep 制作基于 Arduino 的 OBD1 扫描仪

了解如何组装并运行 xj-scanner:这是一款低成本 Arduino Nano 接口,适用于兼容的 1991–95 年 Jeep 和 Chrysler OBD1 发动机计算机。本指南涵盖安全检查、线路准备、软件安装、固件上传、故障代码读取、实时数据记录、内置测试及故障排除资源。

为 1991–95 年 Jeep 制作基于 Arduino 的 OBD1 扫描仪

什么是 xj-scanner?

xj-scanner 使用价格低廉的 5 V Arduino Nano,将笔记本电脑连接到 1991–95 年 Jeep 的发动机电脑。三根线从发动机舱下方的诊断接口连接到 Nano,Nano 再通过 USB 连接到笔记本电脑。

连接后,该项目可以读取故障代码和实时发动机数据,在驾驶过程中记录信息,并运行发动机电脑内置的执行器测试。Claude Code、Codex 或其他编程代理可以指导你完成设置,并解读仓库中的说明。

该项目在一辆配备 4.0L 发动机、电脑部件编号为 56030117 的 1994 年 Jeep Cherokee XJ上构建并测试。其他 1991–95 年 Chrysler 和 Jeep SBEC/OBD1 电脑可能类似,但不保证兼容。连接硬件前,务必先测量你自己的诊断接口。

Jeep 诊断扫描器设置

主要功能

  • 读取发动机电脑故障代码。
  • 显示实时发动机参数及其换算值。
  • 将实时数据记录到 pc/logs/ 下的文件中。
  • 支持发动机电脑内置的执行器测试。
  • 包含用于测试笔记本电脑软件、无需车辆的 Jeep 模拟模式。
  • 提供 Nano 接线调试程序以及主要桥接固件。
  • 包含用于汇总日志、扫描参数范围以及检查电脑部件编号的辅助工具。
  • 提供面向编程代理的操作指南,用于引导安装和故障排查。

所需硬件

预计硬件成本约为 15 美元。开始前请准备以下组件:

  • 一块带 USB-C 或 mini-USB 接口及匹配线缆的 5 V Arduino Nano 克隆板。
  • 一块小型面包板。
  • 若干面包板跳线。
  • 三根足够长的线,可从发动机舱下方的接口连接到笔记本电脑所在位置。
  • 三个可插入诊断接口的 1/4 英寸公插片端子。
  • 一台万用表。

重要安全警告

点火钥匙打开时,6 号腔位带有 12 伏电压。切勿将 Arduino 或任何扫描器线连接到 6 号腔位。

不要根据线缆颜色识别接口腔位。在测试车辆上,6 号腔位使用了与接地线相同的黑白线。错误连接可能使 Nano 或笔记本电脑暴露在车辆电压下。

接线前,请使用万用表检查每个腔位。将测量结果与 docs/connector.md 中的预期读数进行比较。仓库中经过测试的接线方式是将 Nano 的 D10、D11 和 GND 分别连接到诊断插头的 4、3 和 2 号腔位,但你必须先确认车辆上的接口。

选项 1:让 AI 编程代理指导设置

最简单的安装方式是使用 Claude Code、Codex 或其他了解仓库内容的编程代理。

  1. 将 xj-scanner 仓库克隆到笔记本电脑。
  2. 在编程代理中打开该仓库。
  3. 询问:帮助我将它连接到 Jeep。
  4. 按照说明逐步操作。

代理可以读取 AGENTS.md 以及 .claude/skills/ 下的操作指南。这些说明涵盖软件设置、面包板组装、使用万用表识别接口腔位,以及读取第一条数据。如果某条说明不清楚,请在继续操作前让代理用更简单的语言解释。

选项 2:手动安装并运行 xj-scanner

1. 创建 Python 环境

在仓库根目录中创建虚拟环境并安装扫描器依赖:

python3 -m venv .venv && .venv/bin/pip install -r pc/requirements.txt

2. 在演示模式下测试笔记本电脑软件

连接 Jeep 前,先让扫描器对其模拟车辆运行:

.venv/bin/python pc/xj_scan.py --cli DEMO

这可以确认 Python 端正常工作,无需 Arduino 或发动机电脑。如果演示模式失败,请先解决笔记本电脑端的问题,再继续进行车辆接线。

3. 安装 Arduino CLI 和 AVR 核心

README 为使用 Homebrew 的 macOS 提供了以下命令:

brew install arduino-cli
arduino-cli core install arduino:avr

如果你使用其他操作系统,请通过该平台适用的方法安装 arduino-cli,然后安装 arduino:avr 核心。

4. 连接并识别 Nano

通过 USB 将 Arduino Nano 连接到笔记本电脑。确定其串口,然后在上传命令中将 /dev/cu.usbserial-XXXX 替换为实际端口。

示例使用板卡标识符 arduino:avr:nano:cpu=atmega328old,该标识符选择了许多 Nano 克隆板使用的旧版引导程序配置。

5. 编译并上传桥接固件

arduino-cli compile --upload -p /dev/cu.usbserial-XXXX --fqbn arduino:avr:nano:cpu=atmega328old arduino/xj_bridge

xj_bridge 程序会将 Nano 转变为笔记本电脑扫描器与 Jeep 发动机电脑之间的通信桥。

6. 验证并组装接线

在车辆线路与 Nano 断开的情况下,使用万用表识别诊断接口腔位。请查阅仓库的 docs/ 目录,了解接口测量值、面包板布局和接线详情。

对于经过测试的车辆,三条信号连接如下:

  • Nano D10 连接诊断接口 4 号腔位。
  • Nano D11 连接诊断接口 3 号腔位。
  • Nano GND 连接诊断接口 2 号腔位。

请勿仅依据此列表进行操作。请确认车辆上的每个插孔,并确保所有导线远离插孔 6。

7. 读取故障代码和实时数据

固件和已确认的接线准备就绪后,将点火钥匙转到ON,然后运行:

.venv/bin/python pc/xj_scan.py --cli auto

在自动模式下,扫描器会读取故障代码,然后采集实时数据。日志会写入 pc/logs/ 目录。

了解仓库结构

  • arduino/:包含主 xj_bridge Nano 草图以及用于接线调试的 xj_sniff 草图。
  • pc/:包含 xj_scan.py,用于处理故障代码、实时数据、日志记录和执行器测试。
  • tools/:包含用于汇总日志、扫描每个参数以及检查发动机电脑零件号的工具。
  • docs/:记录连接器、接线、通信协议、参数、换算公式和故障排查流程。
  • .claude/skills/:包含 AI 代理可以与你一起执行的分步操作指南。

基本工作流程

首次谨慎操作时,应按以下顺序进行:

  1. 运行 DEMO 模式,验证 Python 及其依赖项。
  2. 将 xj_bridge 上传到 Nano。
  3. 断开车辆侧接线,并测量每个连接器插孔。
  4. 根据文档确认接地和通信插孔。
  5. 搭建面包板电路,并重新检查每个连接。
  6. 将钥匙转到 ON,但不要启动发动机。
  7. 使用 --cli auto 运行扫描器。
  8. 查看报告的故障代码,并确认 pc/logs/ 中生成了日志。

高级提示

通信失败时使用调试草图

arduino/xj_sniff 草图用于接线诊断。当桥接器无法与发动机电脑通信时,请结合 docs/ 中的故障排查资料使用它。通电时不要更改接线。

汇总行驶日志

记录实时数据后,检查 tools/ 目录中的辅助工具。仓库包含日志汇总工具,可以让长时间记录更易于查看。如果要保留原始数据不变,请使用日志副本进行操作。

谨慎扫描可用参数

辅助工具可以扫描项目已知的每个参数。使用前请查阅协议和参数文档,以了解请求的具体内容以及每个原始值的换算方式。

检查发动机电脑零件号

由于该项目已在发动机电脑 56030117 上完成验证,调查另一辆车时请使用提供的零件号工具。不同的 SBEC/OBD1 电脑可能表现相似,但 README 不保证其受支持。

谨慎进行执行器测试

PC 扫描器支持内置执行器测试。这些测试可能会控制车辆硬件,因此只有在了解具体测试内容、车辆已安全停放,并且运动部件或带电部件不会造成人身伤害或损坏时,才能运行测试。

使用详细的换算文档

docs/ 目录说明了可用参数和换算公式。解读原始读数时请参考这些文档,尤其是在分析燃油修正或将数值与另一台扫描工具进行比较时。

故障排查清单

  • 在诊断车辆连接之前,确认 --cli DEMO 可以正常运行。
  • 确认 Nano 出现在预期的 USB 串行端口上。
  • 确认上传固件时选择了正确的 Nano 引导程序。
  • 测量诊断连接器,不要依赖导线颜色。
  • 确保没有导线连接到插孔 6。
  • 根据接线文档检查面包板上的 D10、D11 和 GND 路径。
  • 如果电气设置看似正确但通信仍然失败,请使用 xj_sniff 和故障排查指南。
  • 请注意,未经测试的 Chrysler 或 Jeep 电脑可能与 1994 年 Cherokee 测试车辆使用的电脑不同。

结论

xj-scanner 提供了一种低成本方式,让你可以使用笔记本电脑和 Arduino Nano 探索兼容 Jeep 的 OBD1 发动机电脑。请从演示模式开始,使用万用表确认每个连接器插孔,并严格遵循仓库文档。该项目是用于业余用途的 GPLv3 软件,会与车辆电子系统通信,因此使用风险由你自行承担,并始终将电气安全放在首位。

该项目基于 ChryslerScanner 的协议、参数、换算和故障代码相关工作,并参考 反汇编的 SBEC 代码 完善燃油修正换算。