e-scooterのファームウェアをRustで書き直した男

Reverse engineering my e-scooter and rewriting the firmware in Rust

e-scooterのファームウェアをRustで書き直した男

Egret GTのUSB-Cポートを調べたら、2本のピンがCANバスとして使われていた。ESP32-C6でCANスニファを自作し、スロットルや走行モードの通信を解読。さらに交換用のディスプレイとコントローラを入手してファームウェアを抽出し、Rustで独自ファームウェアを書き始めた。

驚いたことに、USB-Cの2本のピンがCANバスとして使われていた(これはひどく非準拠な香りがする)。
  1. arlattimore

    Berm PeakというYouTubeチャンネルが、レトロなTron風のe-bikeで似たようなリバースエンジニアリングをやっていました。新しいファームウェアに書き換える必要はなかったのですが、どうやってそれを成し遂げたかについての良い動画でもあります。https://www.youtube.com/watch?v=hPrtVGimBYs。

  2. abound

    これは信じられないほど印象的なプロジェクトで、素晴らしい記事です。とても満足感があります。作者はUIにSlint [1] を使うことを検討したのか気になります。buoyant(これもとてもクールに見えます)でコード生成の肥大化問題があったようですから。どちらも使ったことはありませんが、Embassyでいくつかプロジェクトをやったことがあり、組み込みGUIツールを試す口実をいつも探しています。

    [1] https://slint.rs/

  3. trevithick

    このようなリバースエンジニアリングは私にとって黒魔術です。記事は良いです。詳細で、私にはとても真似できないほど愚かですが、著者が何をしているのかを追うことができました。よくやった、著者。

    Introductionの箇条書き2が気に入りました。

  4. zoobab

    Boschのシステムを自由にする必要があります。彼らは多くのオープンソースライブラリを使っていますが、チェーン全体(スペアバッテリーなど)を閉鎖しているので、他のサプライヤーの外部バッテリーを接続することができません。

  5. asimovDev

    投稿ありがとうございます!この春にe-scooterを手に入れ、公式アプリとBLEログをリバースエンジニアリングした後、自分用のアプリを書きました。ただし、ファームウェアに手を出す勇気はありません。少なくとも今はまだ。

  6. quietraster

    スクーターのファームウェアをRustで書き直すなんて、ここに来る理由である不必要なほどの卓越性です。どうやってブリックせずにデバッグしたのですか、SWDプローブですか、それとも純粋な信仰ですか。

  7. blacklion

    すべてのオリジナルファームウェアが全く保護されていなかったことに驚いています。

    私はSTM32ベースの安価な(しかし良いDACとアナログ回路を持つ)中国製メディアプレーヤーのファームウェアを修正しようとしましたが、ファームウェアはno-readヒューズで保護されており、この場合に可能な唯一の操作はフラッシュを消去することであり、ファームウェアを読み出すことではありませんでした。

    そして、このスクーターははるかにプロフェッショナルに作られ、高価な製品に見えます。

  8. yonatan8070

    > 驚いたことに、USB-Cピンの2つがCANバスとして使われていました(これはひどく非準拠な匂いがします)。

    ああ、それはひどい。なぜ正気の誰がこんなことをするのでしょうか?

この日のほかの記事

2026-09-13