
ハードウェアハッカーのフライングプローブ自動化スタック。エージェント駆動の ターゲット発見、顕微鏡マッピング、安全監視付きCNC動作、プローブレビュー、および 制御されたピンプロービングに対応。
AutoProberは、ハードウェアハッカー向けのフライングプローブ自動化スタックであり、「新しいターゲットがプレートに載った」状態から、安全に個々のピンをプローブするために必要なすべてをエージェントに提供します。

デモ動画: https://gainsec.com/autoprober-demo-mp4/




すべてのハードウェアは、ウェブダッシュボード、Pythonスクリプト、またはエージェント自体から制御できます。

このリポジトリは、ソースコードが利用可能なリリース候補です。独自のAutoProberを作成するために必要なPython制御コード、ダッシュボード、CADファイル、およびドキュメントが含まれています。
このプロジェクトは物理的なハードウェアを動かす可能性があります。通常のウェブアプリではなく、機械制御システムとして扱ってください。
必要な安全設計は以下の通りです:
Pn:P は無視されます。CNCプローブピンは信頼できるエンドストップではありません。ハードウェアを実行する前に、docs/safety.md と docs/operations.md をお読みください。
apps/ オペレーター向けスクリプトとFlaskダッシュボードエントリポイント
autoprober/ 再利用可能なPythonパッケージ(CNC、スコープ、顕微鏡、ログ、安全)
dashboard/ シングルページウェブダッシュボード
docs/ アーキテクチャ、デバイスリファレンス、運用、安全ガイダンス
cad/ 現在のカスタムツールヘッド用の印刷可能なSTLファイル
config/ 環境/設定ファイルの例
AGENTS.md エージェント/オペレーターの安全ルール
LICENSE PolyForm Noncommercial 1.0.0ライセンスおよび商用連絡先
pyproject.toml Pythonプロジェクトメタデータ
uv.lock ロックされたPython依存関係解決
テスト済みのプロジェクトアーキテクチャは以下を使用します:
mjpg_streamer で提供されるUSB顕微鏡cad/ にある現在印刷可能なカスタムツールヘッド部品デフォルトの実行時前提条件はデバイスドキュメントに記載されています。使用前に、ご自身のラボ設定に置き換えてください。
ハードウェアの買い物リストについては、docs/BOM.md を参照してください。
これらは、プロトタイプリリースに使用された特定の部品または部品クラスです。購入前に、現在のリスト、寸法、電圧、コネクタの互換性を確認してください。
私のビルド:
cad/ 内の印刷可能なツールヘッド部品用)オプション/代替可能:
flowchart LR
Operator[Operator] --> Dashboard[Web Dashboard]
Dashboard --> Apps[Python Apps]
Apps --> CNC[GRBL CNC over USB serial]
Apps --> Microscope[USB Microscope via mjpg-streamer]
Apps --> Scope[Oscilloscope over LAN / SCPI]
Apps --> Outlet[Optional LAN Power Outlet]
Endstop[Optical Endstop] --> ScopeC4[Scope C4 Safety Voltage]
Pogo[Pogo Measurement] --> ScopeC1[Scope C1 Measurement]
ScopeC4 --> Apps
ScopeC1 --> Appsflowchart TD
Preflight[Preflight] --> SafetyCheck{Channel 4 clear?}
SafetyCheck -- no --> Stop[STOP State]
SafetyCheck -- yes --> Motion[Monitored Motion]
Motion --> Monitor[EndstopMonitor thread >= 10 Hz]
Monitor --> C4{C4 clear?}
C4 -- yes --> Capture[Microscope Capture]
C4 -- no --> FeedHold[Immediate feed hold]
FeedHold --> Stop
Capture --> Stitch[Stitch / Map]
Stitch --> Review[Manual Probe Review]
Review --> Approved{Approved target and measured probe offset?}
Approved -- no --> Stop
Approved -- yes --> Probe[Bounded probe motion]stateDiagram-v2
[*] --> Running
Running --> STOP: C4 triggered / C4 fault / CNC alarm / real limit pin
STOP --> Report: log voltage, status, action
Report --> WaitForOperator: no automatic recovery motion
WaitForOperator --> Running: operator explicitly clears condition依存関係のインストール:
uv sync
設定済みのハードウェアホストでダッシュボードを起動:
PYTHONPATH=. python3 apps/dashboard.py
ダッシュボードのデフォルトポートは 5000 です。
config/autoprober.example.env から始めてください。ラボ固有のIP、ホスト名、認証情報、キャリブレーションファイル、キャプチャしたターゲット画像を公開しないでください(公開する意図がない限り)。
重要な実行時値は設定可能です:
AUTOPROBER_LOG_PATH: 実行時ログパスAUTOPROBER_RUNTIME_ROOT: キャリブレーション、フラットフィールド、実行時状態ディレクトリAUTOPROBER_MICROSCOPE_SNAPSHOT_URL: 顕微鏡スナップショットエンドポイントAUTOPROBER_SCOPE_HOST / AUTOPROBER_SCOPE_PORT: オシロスコープSCPIエンドポイント5000ラボ固有のホスト、パス、またはターゲットデータを含むローカル環境ファイルをコミットしないでください。
このリリース候補では、意図的に以下を除外しています:
.venv、__pycache__、Playwrightアーティファクト詳細は RELEASE_MANIFEST.md を参照してください。
このプロジェクトは、PolyForm Noncommercial License 1.0.0 の下でソースコードが利用可能です。
非商用目的であれば、このプロジェクトを使用、変更、共有できます。
商用利用には、別途有償の商用ライセンスが必要です。
商用ライセンスについては、[email protected] までお問い合わせください。
このプロジェクトは、許可を得た機器やターゲットに対する管理されたラボ作業を目的としています。許可なくシステムをプローブ、損傷、分析するために使用しないでください。