
什么是 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 电脑可能类似,但不保证兼容。连接硬件前,务必先测量你自己的诊断接口。

主要功能
- 读取发动机电脑故障代码。
- 显示实时发动机参数及其换算值。
- 将实时数据记录到
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 或其他了解仓库内容的编程代理。
- 将 xj-scanner 仓库克隆到笔记本电脑。
- 在编程代理中打开该仓库。
- 询问:帮助我将它连接到 Jeep。
- 按照说明逐步操作。
代理可以读取 AGENTS.md 以及 .claude/skills/ 下的操作指南。这些说明涵盖软件设置、面包板组装、使用万用表识别接口腔位,以及读取第一条数据。如果某条说明不清楚,请在继续操作前让代理用更简单的语言解释。
选项 2:手动安装并运行 xj-scanner
1. 创建 Python 环境
在仓库根目录中创建虚拟环境并安装扫描器依赖:
python3 -m venv .venv && .venv/bin/pip install -r pc/requirements.txt2. 在演示模式下测试笔记本电脑软件
连接 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_bridgexj_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_bridgeNano 草图以及用于接线调试的xj_sniff草图。pc/:包含xj_scan.py,用于处理故障代码、实时数据、日志记录和执行器测试。tools/:包含用于汇总日志、扫描每个参数以及检查发动机电脑零件号的工具。docs/:记录连接器、接线、通信协议、参数、换算公式和故障排查流程。.claude/skills/:包含 AI 代理可以与你一起执行的分步操作指南。
基本工作流程
首次谨慎操作时,应按以下顺序进行:
- 运行
DEMO模式,验证 Python 及其依赖项。 - 将
xj_bridge上传到 Nano。 - 断开车辆侧接线,并测量每个连接器插孔。
- 根据文档确认接地和通信插孔。
- 搭建面包板电路,并重新检查每个连接。
- 将钥匙转到 ON,但不要启动发动机。
- 使用
--cli auto运行扫描器。 - 查看报告的故障代码,并确认
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 代码 完善燃油修正换算。
