KTM RC125(2018)のCANバスのデータフォーマット

KTM RC125(2018)(以下RC)の走行データのログを取るにあたり,CANバスからのデータ取得を試みたのでその時の調査結果をまとめる.

はじめに

適当に調べた結果なので鵜呑みにしないように.

現時点で取れた情報は次の通り

  • 車速[km/h]
  • エンジン回転数[rpm]
  • ギアポジション
  • サイドスタンドが出ているかどうか
  • アクセル開度

逆に取りたかったが取れなかった情報は次の通り

  • ブレーキ強さ

おそらく取れるが長期的なロギングが必要そうなのは次の通り

  • クーラントの温度
  • 燃料残量

そんな感じ.

接続

RCはOBD2が義務化される前のモデルなので標準的な6Pカプラではない.

KITACOがKTM専用のOBD2変換ケーブルを出しているのでそれを購入,3000円強.

診断用コネクタはシート下にあるのでシートを外して変換ケーブルを接続,そこから先バラのOBD2ケーブルを接続した.

RCの診断用コネクタの電源はアクセサリ電源に繋がっているようだったのでマイコンでロガーを作るときはそこから引っ張った.

ただ,ふとした時にロガーがリセットされることがある.原因はわかっていない,電源か,プログラムの問題か.

パケットキャプチャにはcandumpやWireshark,あとは細々としたPythonの自作スクリプトを用いた.

速度は500kbps,一般的な速度だと思う.

データフォーマット

多バイト値はすべてビッグエンディアンである.

サフィックスのhは16進数であることを示す.

エンジン回転数・ギアポジション・サイドスタンド

ID DLC D[0] D[1] D[2] D[3] D[4] D[5] D[6] D[7]
540h 8 02h エンジン回転数[rpm] ギア スタンド xx xx xx

エンジン回転数はそのまま[rpm].

ギアはNのとき0,1~6はそのまま1~6速に対応する.

サイドスタンドは0で下げ,1で上げを示す.

スロットル開度

ID DLC D[0] D[1] D[2] D[3] D[4] D[5] D[6] D[7]
540h 8 04h xx xx xx xx xx 開度 xx

触っていない状態で00h,フルスロットルでFFhとなる.

車速

ID DLC D[0] D[1] D[2] D[3] D[4] D[5] D[6] D[7]
540h 8 06h 速度[km/h]×16 xx xx xx xx xx

(D[1] << 8 | D[2] / 16.0)で現在の車速が取得できる実際の測定データと比較すると高速域において5-10km/hの誤差が生じていた.

もしかしたらタイヤ径などを考慮に入れた計算が必要になるかもしれない.