
車から取り外したエンジン制御ユニット(ECU)のプログラムを、車なしでパソコン上で動かすエミュレーターが「sh705x-emu」として公開された。対象は、ルネサスのマイコン「SH7059」を載せたデンソー製のECUで、作ったのはPablo Soage Rodas氏だ。READMEは、車がなくてもECUを調べられるようにすることを目的に挙げている。
ECUは、エンジンの燃料噴射や排ガスの再循環などを制御するコンピューターだ。同氏が最初に選んだのは、独Opelの「Astra J」(A17DTJエンジン)のECUで、車から読み出したプログラム(1.5MB)と設定を記録したメモリーの中身(8KB)を、書き換えずにそのまま読み込む。
同氏は、マイコンのCPUと、タイマーやA/D変換器、CANといった内蔵の回路、基板上のメモリーをプログラミング言語のRustで作り直した。そのうえで模擬のエンジンを用意し、クランク軸とカム軸の回転センサーの信号や、冷却水温、過給圧などのセンサーの値を、実車と同じ形でECUに送る。ECUのプログラムが求めるトルクで仮想のクランク軸が回り、回転は暖機後のアイドリングと同じ毎分750回転で落ち着く。エミュレーターの画面には歯車が回るエンジンの図が出て、1000分の1の速さまで落として、歯1枚ずつ進めて見ることもできる。
同氏は、燃料の噴射だけはさせていない。噴射を許すのは盗難防止装置(イモビライザー)で、その相手側をあえて再現していないためだ。READMEは、このプロジェクトはECUを理解し試すためのもので、排ガス浄化の仕組みを無効にする道具ではないと明記している。
同氏は、エミュレーターの答えを実車とも比べた。実車に診断機で問い合わせた204件の応答などと照らすと、応答の形はすべて一致し、108件はバイト単位で同じだった。残りは刻々と変わる値や、噴射、イモビライザーにかかわる応答などだという。エミュレーターには車の診断アダプター「ELM327」として振る舞う機能もあり、診断アプリからつなげる。
同氏はWindows版のプログラムとAndroidアプリを配布しており、ライセンスにはGPL-3.0を採用した。ECUのプログラムはメーカーに著作権があるとして同梱せず、利用者が自分のECUから読み出したものを使う。次の段階として、ECUをFPGAの上に再現する計画も挙げている。

