しばらくedisonをいじっていたのだけど、飽きた。
node.jsでLEDを点灯させたり、シリアルカメラを接続したり
していたのだけれどどうも自分の使用目的に合わない。
そのうち使い道もでてくるだろうからその時まで放置決定。
オークションでWRのECUを激安で落札したので前からやりたかった
ECU-メーター間通信の解析でも始めることにした。
リアルバイクまでPCやロジアナを持っていくのは面倒で寒いので
各種センサの偽信号を作ってECUとメーターだけで机上で
動作するようにする。
海外のフォーラムでヤマハのFI診断装置の信号を解析していて
そこの情報を元にこちらも解析を進めていきます。
ECUのコネクタは1000円程度で売っているけれどピンが
5000本単位でしか売っていないのでICソケットを二段重ねで
代用する。これでもしっかり刺さるので解析程度には十分だ。
水温、速度など各センサはサービスマニュアルの数値を元に
一個ずつでっちあげる。 一番苦労したのがクランクポジションセンサの
信号で、きっちり正負に振れる信号を与えないとエラーが出る。
色々試行錯誤した挙句、PICからの出力を600Ωの小信号トランスに
突っ込んだところ、きちんと認識してくれた。
フライホイールの突起は11個で突起一個分が歯抜けになっている。
これを模した信号をPICから出してやればOKだ。
とりあえず、エンジンがかかった状態を再現することに成功。
エンジン回転数、速度、水温情報がコンスタントにやりとりされているので
これを傍受したらタコメーターや水温計をとてもスマートなやり方で
取り付けできる。
CO調整なども解析したら完全オリジナルのメーターが作れそうだけど
なんか猛烈に面倒くさそうだ。
でも、CO調整が簡単にできて、回転数も水温も常時表示して
速度計のズレも簡単に補正できて燃料計も内蔵した
メーターがあったらとても便利そうなので一応データだけはとっておく。
以下、メモ
通信速度は15625bps
信号は12V-0VのK-line とかいうもの。
メーターから0x01のコマンドを送るとECU側が5バイトの返事をする。
データは順に、回転数、速度、エラー、水温、チェックサム