世界を動かす技術を、日本語で。

事故車の部品を使ってデスク上でテスラ・モデル3のコンピュータを動かす

概要

  • Tesla のバグバウンティ参加のため、 Model 3の車載コンピュータ をデスク上で起動する試み
  • 必要なパーツを eBayで調達、特にMCUとスクリーンの接続ケーブルに苦戦
  • 配線図・パーツ番号 の調査と、代替ケーブルでの失敗
  • PCB修理 やダッシュボードワイヤーハーネス購入による解決
  • システム起動後、 ネットワーク・UI・ファームウェア 解析への展望

Tesla Model 3車載コンピュータのデスク起動までの道のり

  • Teslaのバグバウンティプログラム 参加条件として、実機ハードウェアの準備が必要
  • eBayで“Tesla Model 3 MCU” を検索し、200~300 USD程度で多数出品を確認
  • 出品者の多くは 事故車解体業者 で、部品ごとに写真付きで販売
  • 必要部品:
    • MCU(Media Control Unit)
    • Autopilot Computer(AP)
    • 12V対応DC電源 (10Aモデルを選択、最大8A消費を確認)
    • Model 3用タッチスクリーン (175 USDで購入)
    • MCUとスクリーンを繋ぐケーブル
  • Tesla公式サービスサイト で配線図やコネクタ情報を調査
    • スクリーン接続には Rosenberger 99K10D-1D5A5-Dコネクタ の6ピンケーブルが必要
  • 入手困難なRosenbergerケーブル の代替として、BMW用LVDSケーブルを試すもサイズ不一致で失敗
  • オリジナルの切断ケーブルを手作業で接続 するも、配線のショートで電源ICを焼損
  • MAX16932CATIS/V+T ステップダウンコントローラの特定と交換修理を実施

ケーブル問題の解決とシステム起動

  • Rosenbergerケーブル単体は市販されていない ため、ダッシュボードワイヤーハーネス(1067960-XX-E)をeBayで80 USDで購入
  • ハーネスは車両内の複数ケーブルを束ねたもので、必要なコネクタも含有
  • ハーネス接続でシステムが正常起動
    • タッチスクリーンも動作し、 車載OSがデスク上で稼働

起動後のネットワーク・サービス調査

  • MCUのネットワーク端子 にEthernetを接続し、IPアドレス(192.168.90.X/24)を手動設定
  • /etc/hosts情報 やReddit投稿から、各種デバイスのIPと役割を特定
  • MCU上のSSH(22番)とWebサーバ(8080番) のサービスを確認
    • SSHはTesla発行の署名付き鍵が必要
    • Teslaのバグバウンティで「Root access program」を提供、root権限取得者は自車のSSH証明書を取得可能
    • 8080番は「ODIN」(On-Board Diagnostic Interface Network)という診断用APIを提供
  • 金属シールドを外し、基板構造も観察
    • MCUとAPの2枚構成

まとめ・今後の展望

  • 必要部品調達と修理、配線の工夫 でデスク上にTeslaの車載コンピュータ環境を構築
  • UI操作、ネットワークインターフェース調査、CANバス探索、ファームウェア抽出 など、今後の研究可能性
  • バグバウンティ参加や車載システムセキュリティ解析 への足掛かり

Hackerたちの意見

すごいね!1年半以上前に、テスラ・モデルYにトレーリングブレーキコントローラーを取り付けたんだ。プラグの場所やアクセス方法、ピンアウトをネットで調べて(ボルトメーターで確認したよ)、車側は簡単だった。でも、14.4V(通常の12Vと比べて)で動くブレーキコントローラーを見つける必要があったんだ。それから、ブレーキコントローラーから車に接続するためのケーブルをeBayで見つけたコネクタまで作った。コントローラーはダッシュボードの下にベルクロで固定したよ。結構うまくいってる。去年、小さなキャンピングカーを何度か牽引したけど、問題なし!やった!でも、私の小さなプロジェクトなんて、この投稿には比べ物にならないね。みんながハッキングしてるのを見るのが大好き。めっちゃクールだよ。

でも、14.4V(通常の12Vと比べて)で動くブレーキコントローラーを見つける必要があったんだ。普通の車のバッテリー端子にボルトメーターをつけて2000rpmで電圧を測ってみて。驚くと思うよ(オルタネーターは一部の車で15Vまで出せるから)。

でも、14.4V(通常の12Vと比べて)で動くブレーキコントローラーを見つける必要があったんだ。この文が理解できない。ほとんどの稼働中のICE車両は12Vよりも14.4Vに近い電圧を出してると思う。標準的なコントローラーで問題なかったんじゃない?

LVDSが「自動車用」ケーブルって言われるのを聞くのが面白い。私の経験では、ノートパソコンのディスプレイをメインボードに接続するために使うことが多いから! (ただ、あれは全然違うコネクタがついてるし、信号プロトコルの一般的な用語だと思うけどね)

SpaceWireも結局はLVDSに超ミニマルなルーティングプロトコルを加えたものだよ。多くの衛星で使われてる。

君の視点に何か問題があるとは言わないけど(用語が混乱することはよくあるし、みんなが同じページにいれば問題ない)、これがウィキペディアで見つけたことだよ:「初期の頃、ノートパソコンやLCDベンダーは、プロトコルを指すときにFPD-Linkの代わりにLVDSという用語をよく使っていて、その結果LVDSがビデオ表示工学の語彙でFPD-Linkと同義になってしまった。」 https://en.wikipedia.org/wiki/Low-voltage_differential_signa...

実際の車には個別のケーブルがないことが分かった。代わりに、近くのエリアから多くのケーブルを束ねた「ローム」があって、それが一つのハーネスになってるんだ。だから、さっき個別のケーブルを見つけられなかったんだ。単に製造してないんだよね。この記事の最後でこれを読んで本当に驚いた。こんなに深いプロジェクトに関わってて、どうしてこれに気づかないんだろう?!すべての車(…いや、すべての車両)がこのように配線されているだけでなく、参照していたドキュメントにもこのことを示す詳細がたくさんあったのに…全体の写真もあったし(テスラの文書はすごく充実してるしね): https://service.tesla.com/docs/Model3/ServiceManual/2024/en-...

どうしてこんな深いプロジェクトに関わってて、これに気づかないんだろう。これはソフトウェアの人がたまにハードウェアのことにも手を出してバグを探してる感じだね。

車の中で二つのボックスがこんなに離れてるとは思わなかった。思ってた場所にはないみたい。両方ともダッシュボードの近くにあると思ってたんだけど。

車が一つの配線ハーネスで構成されてるって知ってても、モジュラーじゃないってことにはならないし、個別のケーブルを別々に買うこともできるんだよね。

ソフトウェアの人たちは他の分野の知識を過大評価しがちで、「簡単だ」とか自分たちの仕事の下に見たりするよね。仲間に比べて高給取りなのも、この感覚を払拭するのには役立たないよ。中にはワイヤールームの設計だけでキャリアを築いてる人もいるし。

テスラの評価としては、素晴らしい無料のドキュメントがあるね。テスラの評価としては、マサチューセッツ州によって無理やり引きずり込まれたんだよね、修理権の法律も含めて。悪意のあるコンプライアンスの一環で、1. 部品を注文するためのサイトを作るように言われたとき、テスラは「すべてのアイテムが『お電話ください』」っていうサイトを作ったんだ。最もシンプルなボルトですらそうだった。そして、数か所から電話がかかってきたときには、「ごめんなさい、それはあなたには提供できません」と言った。2. サービスマニュアルは最初、マサチューセッツ州のいくつかの場所でしか入手できなくて、厳しい条件があったんだ。事前予約が必要で、予約ごとに100ドルの料金がかかり、マニュアルは現地でしか見られず、電子機器を持ち込むこともできなかった。ペンと紙だけ持って入ることができた。彼らのドキュメントは素晴らしいけど、時間が経つにつれて態度がどう変わったかわからないけど、最初は絶対に渡したくなかったんだよね。

以前、サードパーティのスキャンツールを作っている会社で働いてた。車から切り離されたECUがラックに並んでいて、診断コネクタと電源だけで動いてた。実際の車に接続する前に、まずラックで試してたんだ。ある時、BMW(OBDII前)でバイトが標準ドキュメントからオフセットされてることを発見したことがある。これは当時他の車でも使われていた準標準プロトコルだったんだけど、最初は「通信はできるけど問題はない」と思ってたのが、最終的にはそのコントローラーに非常に長いDTCリストが出てきたんだ。(競合他社も何も問題ないと言ってたけど、公式のBMWツールはDTCを表示してた)

診断トラブルコードのこと?

QtCar(テスラがUIに使ってるQtベースのアプリ)をQEMUで動かせるよ。ファームウェアがあればね。興味があったらDMして!

「チューナー」って、ほぼ間違いなくラジオ(AM/FM/SiriusXM)のチューナーモジュールを指してるよ。

12Vを供給できるDC電源供給装置 そういえば、昔学校にすごく使いやすい電源供給装置があったな(アジレント製だったかな?)。電流制限があって、ダイヤルで1A以下だったと思うし、短絡したらすぐにオフになってLEDで知らせてくれた。電圧も25Vを超えなかった気がする。すごく大きくて重かったけど、毎日ラボを使う学生たちに耐えてたな。今はそんなに頑丈な電源供給装置ってあるのかな?それとも中古の古いやつを買うのがいいのかな?家に子供が使ってる電源供給装置があって、おすすめのブランドやモデルがあれば教えてほしい!ありがとう!

それはデスクトップ電源供給装置みたいな名前だった気がする。 https://www.mouser.com/c/power/power-supplies/power-supplies... 5千ドルなら、朝ごはんも作ってくれないとね。

アマゾンには安い可変DC電源があるよ。そんな信頼性を求めるなら、たぶん100ドルくらいはかかると思う。

あなたが言ってるのはラボ用の電源だね。「短絡時に即座に無効化」ってのは過電流保護のことで、これは標準機能だよ。KeysightやRigolみたいな有名ブランドはちょっと高いけど、アマゾンには十分に仕事をしてくれる無名のモデルがたくさんあるよ。

おめでとう、OPはテスト/開発ベンチを再現したね。これは世界中の自動車ソフトウェア開発者の悩みの種だよ。リアルな車にかなり近いから、たくさん作業ができると思うけど、実際はそうじゃないから、できないんだよね。

正直言って、これ大好き。大きな会議テーブルの上に2つの貴重な新サンプルがあって、みんながカップやマグを遠ざけるように気をつけてるブートキャンプほど楽しい仲間意識を育むものはないよ。それに、数部屋離れたところに専門家がいて、最新のエラッタを物理的な形にしてくれる半田ロボットもあったりして。トレーシー・キダーが亡くなったけど、『Soul of a New Machine』はエンジニアとしての formative years のお気に入りだった。ヘッドユニットECUの開発を始めたとき、時々すごく馴染みのある感じがしたよ。自分はソフトウェアの人だけど、機材にはすごく魅力を感じる。

みんなソースコードをリクエストするべきだよ。テスラが顧客に対してオープンソースを使ってるから、頼めばソースを渡してくれるんだよね。なんでセキュリティの人たちがこれをやってないのか理解できない。

面白いね。 > :8080で「タスク」の履歴を返すRESTライクなAPIがあるんだって。どんな履歴のタスクか気になるな。メディアコントロールユニットだから、前回の運転でどんなメディアが再生されてたかとか、ドライバーに関する他の情報がわかるのかな?プライバシーの観点で利用できる部分があるかもしれないし、テスラと共有できるかもね。