ハクソク

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

ダクトテープと古いカメラ、CNCマシンを使ってAI駆動のハードウェアハッカーアームを作る男

概要

  • AutoProberはハードウェアハッカー向けの自動プロービングスタック
  • 全自動で新ターゲットの検出から安全なピンプロービングまで対応
  • WebダッシュボードやPythonスクリプトから全ハードウェア制御可能
  • 安全設計・運用ルールが厳格に定められている
  • ソース公開・非商用ライセンス、商用利用は別途連絡が必要

AutoProber概要

  • AutoProberは、ハードウェア解析やリバースエンジニアリングの自動化支援ツール
  • 新しいターゲット基板がセットされた際に、安全にピン単位でプロービングを自動実行
  • デモ動画: https://gainsec.com/autoprober-demo-mp4/
  • 主要機能
    • プロジェクト情報のインジェスト
    • ハードウェア接続状態の自動確認
    • 原点復帰(ホーミング)・キャリブレーションの自動実行
    • カスタムプローブ・マイクロスコープヘッダーの装着
    • 新ターゲット検出と位置特定、XYZ記録付きのフレーム撮影
    • フレーム合成・マッピング、ピンや部品の自動アノテーション
    • Webダッシュボードでプローブ対象の承認・却下
    • 承認済みターゲットのプロービングと結果報告
  • Webダッシュボード・Pythonスクリプト・エージェントからハードウェア制御可能
  • リポジトリ内容:Python制御コード、ダッシュボード、CADデータ、ドキュメント一式

安全モデル

  • 本プロジェクトは物理ハードウェアを動かすため、一般的なWebアプリとは異なる安全設計が必須
  • 安全設計のポイント
    • GRBL Pn:P信号は無視
    • CNCプローブピンは信頼しない
    • 独立安全エンドストップはオシロスコープChannel 4で監視
    • Channel 4の異常電圧・トリガ・CNCアラーム・X/Y/Zリミットピンは全て即時停止条件
    • 停止時は自動復旧動作なし、必ずエージェント/オペレータの操作が必要
  • 詳細はdocs/safety.md・docs/operations.md参照

リポジトリ構成

  • apps/:オペレータ向けスクリプトやFlaskダッシュボード
  • autoprober/:CNC・オシロ・マイクロスコープ・ロギング・安全制御用Pythonパッケージ
  • dashboard/:シングルページWebダッシュボード
  • docs/:アーキテクチャ、デバイスリファレンス、運用・安全ガイド
  • cad/:カスタムツールヘッド用STLファイル
  • config/:環境・設定ファイル例
  • AGENTS.md:エージェント・オペレータ用安全ルール
  • LICENSE:PolyForm Noncommercial 1.0.0ライセンス
  • pyproject.toml/uv.lock:Pythonプロジェクトメタデータ・依存解決

ハードウェア構成例

  • GRBL互換3018系CNCコントローラ(USBシリアル接続)
  • USBマイクロスコープ(mjpg_streamer経由)
  • Siglent SDS1104X-Eオシロスコープ(LAN/SCPI接続、Ch4で安全監視・Ch1で測定)
  • 光学式エンドストップ(5V電源・Ch4へ)
  • Matter Smart Power Strip(LAN制御ACタップ、USB給電対応)
  • 3Dプリンタ(カスタムツールヘッド部品用)
  • オプション:汎用オシロプローブ、USB電源ブリック、5Vピグテールケーブル
  • 詳細な部品リストはdocs/BOM.md参照

ハードウェア・ランタイムアーキテクチャ

  • オペレータ → Webダッシュボード → Pythonアプリ → CNC/マイクロスコープ/オシロ/電源タップ
  • エンドストップ(光学式)→ オシロCh4 → Pythonアプリ
  • プローブ測定 → オシロCh1 → Pythonアプリ

クイックスタート・基本ワークフロー

  • 依存パッケージのインストール:uv sync
  • ダッシュボード起動:PYTHONPATH=. python3 apps/dashboard.py(デフォルトポート5000)
  • 設定ファイル例:config/autoprober.example.envから開始
  • 主要ワークフロー
    • プリフライトチェック・Ch4クリア確認
    • ホーミング・キャリブレーション
    • 安全監視付きでマイクロスコープ撮影
    • ターゲットマップの生成・レビュー
    • プローブ候補の手動承認
    • オフセット測定後のみプローブ動作実行

除外事項

  • 本リリース候補には以下が含まれない
    • テスト撮影画像・合成画像
    • アップロード済みリファレンス画像
    • ローカルバックアップ・アーカイブ
    • .venv、pycache、Playwright成果物
    • ランタイムログ・キャリブレーションキャッシュ・フラットフィールド画像
    • マシン固有のSSH/デプロイ状態
  • 詳細はRELEASE_MANIFEST.md参照

ライセンスと商用利用

  • PolyForm Noncommercial 1.0.0ライセンスでソース公開
  • 非商用利用は自由、商用利用は別途ライセンス契約が必要
  • 商用ライセンス連絡先:autoprober@gainsecmail.com

現状の制限事項と責任ある利用

  • マイクロスコープとプローブのXYオフセットは事前測定必須
  • キャリブレーションは機器ごとに現場で生成、流用禁止
  • ダッシュボードは信頼できるネットワーク内のみで運用
  • 許可されたターゲット・設備のみで利用、無断利用・損壊・解析は禁止
  • 著者:Jon 'GainSec' Gaines

Hackerたちの意見

完全には理解できてないけど、これって誰かが一つのGitHubリポジトリで履歴書として採用される匂いがするね。
最近は前者が後者の条件になってるみたいだから、君に同意するよ。
> 誰かが一つのGitHubリポジトリで履歴書として採用される それっていいことじゃない?
かっこいいけど、ちょっと混乱するね。これはPCBのフライングプローブテストを商品化しようとしてるの?それとも、LLMを使って回路を逆解析しようとしてるの?両方?二つのプロジェクトに分けた方が良さそうな気がする。自分のPCBをテストする時、エージェントに任せたくないな、少なくとも普段は。追加のコストや複雑さ、非決定性には理由がないしね。他人の設計を逆解析する場合、自動プローバーを作るのはやりすぎに思える。単一のプローブじゃ足りないことが多いし。最もシンプルなシリアルインターフェースでも、クロック用のラインとデータ用のラインがあるから、どちらにしても手動で接続しなきゃならないよ。
面白いね。実際に何をするのかはよくわからないけど。ハードウェアは3軸CNCメカニズムのオシロスコーププローブなんだ。それが「フライングプローブ」と呼ばれていて、買うこともできる。[1] いいけど、AIは何をするの?「プロジェクトを取り込む」ってどういう意味?すべてのピンを見つけること?それはスタートだね。SPICEモデルを使って各ピンに何があるべきかを考えて、チェックする?それならすごいけど。おそらくその中間くらいだろうね。この手のものの一般的な使い方は、既知の良い基板をプローブして、どこにどんな電圧や信号が現れるかを調べて、新しく製造された基板と比較することなんだ。それが一般的な生産チェックだよ。ここには可能性があるね。もしAIがテスト中の基板が何をしているかを理解して、問題を診断できるなら、かなり役立つよ。[1] https://huntron.com/products/access2.htm
私の理解では、いろんな操作中にボードを調査して、結果を処理し、どの信号が役立つか、ボード上でどんなトラフィックが流れているか(例えば、プライベートキー、使用されるプロトコル、デバッグインターフェース、ファームウェアコンポーネント、チップの機能など)を推測するってことだよね。
ここでの新しいアイデアは、好きなハードウェアを組み合わせて、よく理解されたインターフェースで「物理的な現実世界」のことをできるようにして、それにアクセスできるClaudeを立ち上げるってことだと思う。私が考えているのは、これは_ワークフロー_の革新ってことかな? つまり、見えるチップのデータシートを要求して、ユーザーの手間を最小限に抑えてPDFを出力ディレクトリに入れるって感じ。ボードをひっくり返すことや、接続の基本的なアイデアを尋ねること、高解像度の表面画像を取得することなどが含まれるけど、もちろんこれらは今でも可能だけど、かなりの低労力でできるかもしれない。事前に_ソフトウェアスタック_が必要なわけじゃない。Claudeにやってほしいことを頼むと、どうやってやるかを考えて、コードを書いたり、OSSを取り入れたりして実現するんだ。プロジェクトのソフトウェアを使うも使わないも自由だよ。「JTAGヘッダーがどこにあると思う?」って聞けば、そのタスクを最善を尽くしてこなすためのワークフローを考えてくれる(結果はバラバラかもしれないけど…)。でも、今のところ私が知っている商業製品にはこういうことはできない。プローブを使うと面白くなるよね。もちろん、経験豊富なハードウェアやリバースエンジニアはすでにこれらのことをすべてできていて、いろんなワークフローを持っているけど、一般化できるアプローチの興味深いPOCだと思う。この特定のソフトウェアスタックは使っても使わなくてもいいし、ハードウェアもあまり関係ない、何でもくっつけられるからね。
著者が「研究チームと5年」の規模の問題に対して即効の解決策を妄想してる感じがする。
標準的な生産チェックって、製造者だからこそ、既知のネット間の連続性を確認する感じだよね。どこが露出してるかも分かってるし、部品を追加する前にチェックできるから。部品を追加した後のチェックはもっと複雑になるよ。アクティブな部品やパッシブな部品が見える電圧や特性を変えちゃうから、物理的な洞察が同じレベルで得られなくなることが多いし。機械がセットアップされたら、製造ラインに自信がない時(例えば、メンテナンスや再構成)や、特に小さいビアや基板の端に近いトレースを扱ってる時にしか、こういうチェックはしないと思う。役立てるためには、2つのフライングプローブが必要だね。そうじゃないと、あまり新しい情報は得られないよ。
でも、1つのプローブだと何ができるの?実際にプローブするには2つ必要だよね?だから、2つ目のプローブの問題はどう解決するのか気になるな。似たようなことを考えたことがあるけど、小さな重りをポゴピンに付けて、CNCアームがそれを動かすってアイデア。だけど、基板上に部品があると完全に信頼できる動作にはならないかも。
> デジタルガイド製造 > ニューヨーク[1] [1] https://www.governor.ny.gov/news/keeping-new-yorkers-safe-go...
キャシー・ホクルが違法なフライングプローブマシンに厳しく対処してるね。
これが実現してほしいと思ってるのは誰よりも私だけど、実際に仕事をする準備にはほど遠いね。実際のPCBを撮影するのは難しいし、フィデューシャルの数学もないし、実際のプロービングも行われてない。単に写真の写真をエージェントに流してるだけだよ。もし本当に主張していることを実現できていたら、普通の人はデモ動画からそれを除外しないだろうね。https://gainsec.com/2026/04/16/autoprober/
エージェントは写真のために特注の補正アルゴリズムを開発できるのかな?
男がガムの棒、ペーパークリップ、古い車で車を作る。
https://en.wikipedia.org/wiki/MacGyver
すごいデモだけど、AIエージェントに物理プローブを操作させるのは問題があるかもしれない。AIは確率的だけど、ハードウェアは正確だからね。もしモデルがピンの位置を0.1mmでも間違えたら、プローブがボードを壊しちゃうかも。著者がエージェントの「推測」と、ハードウェアを壊さないために必要なサブミリメートルの精度のギャップをどう埋めるのか気になるな。
だいたい解決されてると思う。エージェントに計算を全部Pythonでやらせればいいんじゃない?
スプリングロードのプローブで十分そうだね。
これを使って(2つのプローブで)リバースエンジニアリング用の配線ネットを作れたらクールだね。
同じようなコンセプトで、複数のプローブを同時に使うものが、このブログシリーズでオープンソースのハードウェアとソフトウェアとして公開されてるよ:https://www.schutzwerk.com/en/blog/proboter-01/ デモ動画ではいくつかのユースケースが説明されてる:https://youtu.be/TYEjZA-xbGo?is=osWXCrBkLOi4JHxO
これめっちゃ役立ちそうだけど、著者たちがこういう「ソース利用可能」みたいなくだらないことをやめてほしいな。プロジェクトに寄付する代わりに、FOSSに変換するためにGPU時間を買わなきゃいけないのはちょっとね。