メインコンテンツへ移動
AIチュートリアル

1991~95年式ジープ用ArduinoベースOBD1スキャナーを作る

互換性のある1991~95年式ジープおよびクライスラーのOBD1エンジンコンピューター向けに、低コストのArduino Nanoインターフェースxj-scannerを組み立てて使用する方法を解説します。安全確認、配線の準備、ソフトウェアのインストール、ファームウェアの書き込み、故障コードの読み取り、ライブデータの記録、内蔵テスト、トラブルシューティング用リソースについて説明します。

1991~95年式ジープ用ArduinoベースOBD1スキャナーを作る

xj-scannerとは?

xj-scannerは、安価な5 V Arduino Nanoを使って、ノートパソコンを1991~95年式Jeepのエンジンコンピューターに接続します。ボンネット内の診断コネクターから3本のワイヤーを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互換ボード。
  • 小型ブレッドボード。
  • ブレッドボード用ジャンパーワイヤー数本。
  • ボンネット内のコネクターからノートパソコンの設置場所まで届く長さのワイヤー3本。
  • 診断コネクターに差し込める1/4インチのオス型スペード端子3個。
  • マルチメーター。

重要な安全上の警告

キャビティ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. 次のように依頼します:Help me hook this up to my 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

これにより、ArduinoやエンジンコンピューターなしでPython側が動作することを確認できます。デモモードが失敗する場合は、車両の配線に進む前にノートパソコン側の問題を解決してください。

3. Arduino CLIとAVRコアをインストールする

READMEには、Homebrewを使うmacOS向けに次のコマンドが記載されています。

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

別のオペレーティングシステムを使用する場合は、そのプラットフォームに適した方法でarduino-cliをインストールし、その後arduino:avrコアをインストールしてください。

4. Nanoを接続して特定する

Arduino NanoをUSB経由でノートパソコンに接続します。シリアルポートを確認し、アップロードコマンド内の/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/ディレクトリを参照してください。

テスト済みの車両では、3つの信号接続は次のとおりです。

  • 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コードの知見を取り入れています。