
2026/04/17 6:56
グイが、デュオテープ、古いカメラ、およびCNCマシンを組み合わせて、AIを駆使したハードウェアハッカー用の腕を作成しました。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
改善されたサマリー: 本テキストの主なメッセージは、電子機器に対する安全なピンプローブを可能化することを目的としたソースアベイラブルなハードウェアハッキング自動化スタックである「AutoProber」の導入です。標準的なツールが盲目的に進む可能性に対して、AutoProber は CNC モーション制御、光学顕微鏡、リアルタイムオシロスコープ監視を「安全第一」というアーキテクチャに統合します。本システムはプロジェクトを読み込み、ハードウェアと接続し、軸をキャリブレーションし、エージェントまたはダッシュボードを使用してターゲットを検出およびアノテーション済みマップをステッチします。特に重要なのは、安全が独立したチャンネル(オシロスコープ チャンネル 4)によって執行されており、電圧を連続的に監視することであり、あらゆる曖昧さ、アラート、またはトリガーが発生した場合に自動回復なく即座に停止し、作業者の介入を必須としている点です。
GRBL 互換 CNC ミル(例:SainSmart Genmitsu)、USB 顕微鏡、および Siglent オシロスコープを基盤とし、本スタックは現在、特定の安全制約付きで制限リリースカンドイドとして存在しています:コントロールダッシュボードが信頼できないネットワークに露出させてはならないこと、および商用ライセンス発行にはメールでの申請が必要であることが含まれます。本プロジェクトは、複雑なプローブ作業中の機器破損や人身傷害を防ぐために、ダッシュボード上でのプローブターゲット承認などの作業者による専用の監督を強調しており、ハードウェアハッキングにおける標準的な自動化ワークフローの前提を根本的に変化させます。
本文
AutoProber:ハードウェアハッカー向けのプロベリング自動化スタック ターゲットの発見から、ピンを安全に測定するまでの一連の流れをエージェントに完全に実装するためのツールです。
デモ動画: https://gainsec.com/autoprober-demo-mp4/
動作フロー
- エージェントにプロジェクトの取り込みを指示する。
- ハードウェア接続を確認する。
- エージェントに各パーツが正常に動作しているか確認させる。
- ホーミングおよび校正を実行させる。
- カスタムプローブと顕微鏡ヘッダーを装着する。
- プレート上に新しいターゲットがあることをエージェントに通知する。
- 自動でターゲットの位置を検出し、個別のフレームを取得する。XYZ 座標とともに、パッド、ピン、チップ、および他の興味深い特徴を記録します。
- フレームを接合し、ピンの位置や同定された興味深いコンポーネントなどを注釈付きでマップ化します。
- プローブ候補を Web ダッシュボードに追加し、承認または否認のためにオペレーターへ提示する。
- 承認されたターゲットのプロービングを実行し、結果を報告する。
すべてのハードウェア制御は、Web ダッシュボード、Python スクリプト、あるいはエージェント自体から行うことが可能です。
本リポジトリは、自分独自の AutoProber を構築するために必要な Python コントロールコード、ダッシュボード、CAD データ、およびドキュメントをまとめた、自己完結型のソースアベイラブルなリリース候補版です。
安全モデル
このプロジェクトは物理的なハードウェアを動作させるため、通常の Web アプリケーションとは異なり「機器制御システム」として扱う必要があります。必要となる安全設計は以下の通りです:
- GRBL Pn:P は無視されます(CNC のプローブピンは信頼できないエンドストップとみなされます)。
- 独立した安全エンドストップの信号はオシロスコープのチャンネル 4 から読み取ります。
- 運動中、チャンネル 4 は常に監視され続けなければなりません。
- チャンネル 4 のトリガー、曖昧な電圧、CNC アラーム、または実際の X/Y/Z リミットピンのアクティベーションはすべて「停止条件」となります。
- エージェントおよびオペレーターが停止し、状況を報告する必要があります。自動的な回復運動は行われません。
ハードウェアを動作させる前に必ず
docs/safety.md および docs/operations.md をお読みください。
リポジトリ構成
| ディレクトリ/ファイル | 説明 |
|---|---|
| オペレーター向けスクリプトおよび Flask ダッシュボードのエントリーポイント |
| CNC、オシロスコープ、顕微鏡、ログ記録、安全機能のための再利用可能な Python パッケージ |
| シングルページの Web ダッシュボード |
| 建築設計図、デバイスリファレンス、操作方法、および安全ガイドライン |
| カスタムツールヘッド用の現在の印刷可能な STL ファイル |
| 例となる環境設定ファイルや構成ファイル |
| エージェント/オペレーターの安全ルール |
| PolyForm Noncommercial 1.0.0 ライセンスおよび商用利用への連絡先 |
| Python プロジェクトのメタデータ |
| ロックされた Python 依存関係の解決結果 |
ハードウェアスタック
本プロジェクトで検証済みのアーキテクチャには以下の機器が使用されています:
- USB シリアル経由で GRBL 互換の 3018 スタイル CNC コントローラ
- mjpg_streamer による USB 顕微鏡
- LAN/SCPI プロトコルを使用して、チャンネル 4 で安全監視(およびチャンネル 1 で測定)を行う Siglent オシロスコープ
- 外部 5V サプライとオシロスコープのチャンネル 4 に接続された光学的エンドストップ
- ラボの電源制御のためのオプションとしての LAN 制御対応コンセント
フォルダに用意されている印刷可能なカスタムツールヘッド部品cad/
デフォルトの動作環境に関する設定はデバイスドキュメントに記載されています。利用前に、これらのデフォルト設定を自らのラボ環境の設定に置き換えてください。ショッピング向けのハードウェアリストについては
docs/BOM.md を参照してください。
リファレンスパーツ
本プロトタイプリリースで実際に使用された特定の部品や部品のクラスです。購入前には、現在の在庫状況、寸法、電圧、およびコネクターの互換性を必ず確認してください。
実際の構築例:
- 光学的エンドストップ
- USB 顕微鏡
- SainSmart Genmitsu 3018-PROVer V2
- Matter Smart Power Strip(個別に制御可能な AC アウトレット付き、USB-A ポート 2 と USB-C ポート 2 搭載)
- Siglent SDS1104X-E オシロスコープ
- デュポンッドワイヤー
- ペンのスプリングまたは同等の軽い圧縮ばね
の印刷用ツールヘッド部品を作成するための 3D プリンタcad/
オプション / 交換可能:
- ユニバーサルオシロスコーププローブ
- USB パワーbrick (5V)
- USB 2.0 ピグテイルケーブル
ハードウェアアーキテクチャ
flowchart LR Operator[オペレーター] --> Dashboard[Web ダッシュボード] Dashboard --> Apps[Python アプリ] Apps --> CNC[USB シリアル経由の GRBL CNC] Apps --> Microscope[mjpg-streamer 経由の USB 顕微鏡] Apps --> Scope[LAN/SCPI 経由のオシロスコープ] Apps --> Outlet[オプションの LAN 電源コンセント] Endstop[光学的エンドストップ] --> ScopeC4[オシロ C4 サイバー電圧] Pogo[Pogo 測定] --> ScopeC1[オシロ C1 測定] ScopeC4 --> Apps ScopeC1 --> Apps
ランタイムアーキテクチャ
flowchart TD Preflight[プリフライト] --> SafetyCheck{チャンネル 4 はクリア?} SafetyCheck -- なし --> Stop[STOP 状態] SafetyCheck -- はい --> Motion[監視下の運動] Motion --> Monitor[エンドストップモニタースレッド >= 10 Hz] Monitor --> C4{C4 クリア?} C4 -- はい --> Capture[顕微鏡キャプチャ] C4 -- なし --> FeedHold[即時のフィードホールド] FeedHold --> Stop Capture --> Stitch[接合/マッピング] Stitch --> Review[手動でのプローブ候補レビュー] Review --> Approved{承認済みターゲットかつプローブオフセット測定済?} Approved -- なし --> Stop Approved -- はい --> Probe[限定されたプローブ運動]
STOP 状態
stateDiagram-v2 [*] --> Running Running --> STOP: C4トリガー / C4エラー / CNCアラーム / 実際のリミットピン STOP --> Report: ボルト、ステータス、アクションをログ出力 Report --> WaitForOperator: 自動回復運動なし WaitForOperator --> Running: オペレーターが条件を明示的に解除した場合
クイックスタート
依存関係をインストールします。
構成済みのハードウェアホストでダッシュボードを開始します:
PYTHONPATH=. python3 apps/dashboard.py
ダッシュボードのデフォルトポートは 5000 です。
設定
config/autoprober.example.env から開始してください。ラボ固有の IP アドレス、ホスト名、認証情報、校正ファイル、またはキャプチャされたターゲット画像を公開する意図がない限り、これらを公開しないでください。
重要なランタイム値は以下のように設定可能です:
: ランタイムログの保存パスAUTOPROBER_LOG_PATH
: 校正データ、フラットフィールド画像、およびランタイム状態の保存ディレクトリAUTOPROBER_RUNTIME_ROOT
: 顕微鏡のスナップショット取得エンドポイントAUTOPROBER_MICROSCOPE_SNAPSHOT_URL
/AUTOPROBER_SCOPE_HOST
: オシロスコープ SCPI エンドポイントAUTOPROBER_SCOPE_PORT
ダッシュボードは Flask を使用し、ポート 5000 で起動します。
ローカル環境ファイル(ラボ固有のホスト、パス、またはターゲットデータを含むもの)をコミットしないでください。
メインワークフロー
- プリフライトチェックを実行する。
- チャンネル 4 がクリアであることを確認する。
- 物理的なセットアップが完了している場合にのみ、ホーミングおよび校正を行う。
- モニタリング下で顕微鏡フレームをキャプチャする。
- レビュー用にターゲットマップアーティファクトをインポートまたは生成する。
- プロローブ候補を手動で承認する。
- 顕微鏡からプローブへのオフセットを測定し保存した後のみに、任意のプローブ運動を実行する。
除外事項
このリリース候補版には意図的に以下の機能が除外されています:
- テスト用の顕微鏡キャプチャと接合されたターゲット画像
- アップロードされたリファレンス画像
- ローカルバックアップおよびアーカイブ
、.venv
、Playwright 関連のアーティファクト__pycache__- ランタイムログ、校正キャッシュ、フラットフィールド画像
- 機器固有の SSH/デプロイメント状態
詳細は
RELEASE_MANIFEST.md をご参照ください。
ライセンス
本プロジェクトは PolyForm Noncommercial License 1.0.0 のもとでソースアベイラブルです。非商用目的で使用、修正、共有することができます。商用利用には別途有料の商用ライセンスが必要です。商用ライセンシングのご連絡先:autoprober@gainsecmail.com
現在の制限事項
- 実際のプロービング前に、顕微鏡からポゴピンへの XY オフセットを測定する必要があります。
- 校正データを人工的に生成してはいけません。動作するマシン上でランタイム校正ファイルを生成してください。
- ダッシュボードはラボ制御ツールであり、信頼できないネットワークに公開しないでください。
責任ある利用
本プロジェクトは、テストの権限を持った機器およびターゲットに対する制御されたラボ作業を目的としています。許可なくシステムをプロービングし、破損させたり分析したりする用途で使用しないでください。
著者: Jon 'GainSec' Gaines