RAMNは車載ネットワークのテストベッドである。RAMNの設計はオープンソースとなっており、GitHubレポジトリにある設計データを使って誰でもハードウェアを作成することができる。今回はそれを作る話。
ボードの購入
RAMNを作ってすぐこういうエントリを書いていればよかったのだが、書かないでいるうちに公式で注文についてのページが作られていた。
そこに書いてあることと同じように、私が作成した時もPCBWayのShared projectを使って注文した。
色などの設定は以下の通りにした。公式のボード色が黒だったのでそれと違う色にしたくてせっかくだから赤のボードを選んだ。なお、10人で共同購入だったため量は10にしている。
このプロジェクトではRAMN公式レポジトリにあるBOMとは一部違うパーツが使われている。公式BOMより安いパーツが選ばれていたり、公式BOMのパーツがディスコンのため代替品になっていたり。パーツが変わっていてもちゃんと動くので問題ない(と思う)。
PCBWayで発注して10日ほど後、PCBWayから質問事項が来た。内容はLEDのアノードカソードの向きはあっているか、パッドに対して指定パーツが小さいけど問題ないか、といった質問なので返答。ちなみに後者の質問で送られてきた画像が以下。確かに小さい。なぜかShared projectのBOMではこれが指定されていた。
回答した翌日に発送の連絡がきた。早い。
その他パーツの購入
上の写真を見るといろいろ足りないことがわかる。スクリーンがないとかメインボードと拡張ボードを繋ぐコネクタがないとか。PCBWayでの発注時に使われたBOMはRAMN公式のBOM全てをカバーしているわけではなく、一部は別途調達しなければいけない。
別途調達したパーツのリストを共有する。購入時に作成したものそのままなので余計な情報も入っているが気にしないでほしい。
RAMN_remaining_parts.xlsx
これらのパーツはDigiKeyで購入した。
組立
ボードとパーツをハンダ付けしたりしたものがこちら。各ボードの裏面も載せておく。
全て合体させてUSBケーブルを繋いでみたものがこちら。ファームウェア書き込み済みの状態。
ボードの右側にあるのはノブと端子台。端子台はハンダ付け忘れ。ノブはステアリングにつける用であるが、ステアリングパーツは公式BOMにあるディスコンのため代替品になっており、そちらとはサイズが合わず完全に無駄。でもPCBWayのShared projectのBOMに入っている。
費用と納期
かかった費用はこちら。1台あたり3万円強。
先に述べたように、10人で共同購入という形にした。このため一人当たりで考えるとPCBWayが安めになっていると思われる。関税が1台分の時にこの1/10になるのかは不明。
発注から到着までの時系列は以下のような感じ。
- 2024-11-23 PCBWayに注文
- 2024-11-25 見積もりが返ってきて支払い
- 2024-12-07 ボードのアセンブリに関する質問が届く
- 2024-12-13 質問に回答(忙しくて遅れた)
- 2024-12-14 発送通知
- 2024-12-22 到着(ここの記録が残っていないが多分このあたり)
大体1カ月くらいで届いていたことになる。
ファームウェア書込
組み立て直後の状態だとファームウェアが書き込まれていないため何もできない。ファームウェアの書き込みについても公式ドキュメントに記載があるのでそちらに従って実施すればよい。
私はVMのLinux(Kali 2023.4)から実施した。初期状態(ファームウェアに何も書かれていない状態)ではUSBケーブルを接続してもシリアルポートとしては認識しない。
RAMNのレポジトリをクローンして、scripts/STbootloader/linux
にある ProgramECU_A.sh
実行してECU Aにファームウェアを書き込む。なお、初期状態はDFUモードのため、ECUA_OptionBytes_Reset.sh
の実行は必要ない(実行してもエラーになる)。
私が最初やった時は下記のようなエラーが出たが、USBケーブルの抜き差しをしたら正常に動くようになった。
ECU Aへのファームウェア書き込みができたら、ProgramECU_BCD.sh
を実行で残りのECUへファームウェアが書き込まれる。
過去のCTFで出された問題もそれぞれのファームウェア導入で再現できる。
元のファームウェアに戻す際にJTAGデバッガが必要になるかも、と書かれているがまだ私はやってないのでどうなるかわかっていない。やった人がいたら教えてほしい。
おわりに
このエントリが今後RAMNを購入する人の助けになれば幸いである。広げようカーハッキングの輪!