MZULALI/xj-scanner
硬件与物联网用一块 Arduino Nano 和笔记本电脑读取 1991–95 款 Jeep 的故障码与实时发动机数据。
项目介绍
xj-scanner 通过一块廉价的 Arduino Nano,把笔记本电脑连接到 1991–95 款 Jeep 的发动机电脑上。三根线从引擎舱的诊断插头接到 Nano,Nano 再通过 USB 与电脑通信。Python 扫描器负责读取故障码和实时发动机数据、记录一次行驶日志,并运行发动机电脑内置的执行器测试。项目在一辆具体车辆上构建并测试:1994 款 Jeep Cherokee XJ、4.0L 发动机、电脑编号 56030117;同时期的其他 Chrysler/Jeep SBEC、OBD1 电脑应该接近,但不保证可用。
快速使用
更省事的方式是:克隆仓库并在 Claude Code、Codex 或其他编程 Agent 中打开,然后让它帮你接好硬件。Agent 会读取 AGENTS.md,一步步带你完成软件安装、面包板接线、用万用表确认插头孔位,以及第一次读数。
手动操作时,先创建虚拟环境并安装 PC 端依赖,再用模拟 Jeep 验证电脑这一侧是否正常:
python3 -m venv .venv && .venv/bin/pip install -r pc/requirements.txt
.venv/bin/python pc/xj_scan.py --cli DEMO
然后安装 Arduino 工具链,编译并把桥接固件上传到 Nano(串口需替换成你自己的):
brew install arduino-cli && arduino-cli core install arduino:avr
arduino-cli compile --upload -p /dev/cu.usbserial-XXXX --fqbn arduino:avr:nano:cpu=atmega328old arduino/xj_bridge
钥匙打到 ON,读取故障码并把实时数据记录到 pc/logs/:
.venv/bin/python pc/xj_scan.py --cli auto
接线、面包板布局和排障说明见 docs/,插头各孔位的测量参考见 docs/connector.md。
硬件与安全要求
所需零件约 15 美元:5 V 的 Arduino Nano 兼容板及数据线、小面包板、杜邦线、三根足够长的导线、三个 1/4 英寸公头插片和一个万用表。**6 号孔在钥匙打开时带 12 V,绝对不能连接。**在测试车上,它的线与地线同为黑白色,不能靠颜色判断;接线前必须用万用表逐个孔位测量。接线图 标明了 D10、D11 和 GND 分别接到 4、3、2 号孔。
适用范围与限制
README 说明这是业余项目,会直接与发动机电脑通信,使用风险自负。兼容性只在 1994 款 Cherokee XJ 4.0L、电脑编号 56030117 上验证过;作者只表示同族其他 SBEC/OBD1 电脑应该接近。上传命令使用 atmega328old 变体,这对采用旧 bootloader 的 Nano 兼容板有影响。参数 ID、换算公式、OBD1 消息序列和故障码文本来自 GPLv3 的 ChryslerScanner 项目,燃油修正标定则来自 jeep_2.5L 的反汇编工作,见 README 致谢;本仓库同样采用 GPLv3。
HotRepo 点评
该项目于 2026-11-11 出现在 HotRepo 的 Python 新项目榜中,在约 1.5 小时的观察窗口内新增 5 个 Star 和 1 个 Fork,累计达到 105 Star、12 Fork。窗口很短,也没有记录到全部语言日榜名次,因此数据只能说明一次小的初始增长,不足以判断趋势。技术上值得注意的是低成本且文档化的路线:3 美元的 Nano、三根线和一个万用表,外加模拟 Jeep 模式,让用户在碰车之前先验证电脑端是否正常。难点在于硬件识别,README 反复强调 6 号孔带 12 V,这类在具体车辆上实测得到的细节,让项目在它覆盖的单一车型上更具可信度。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。