
Hardware-Hacker-Flying-Probe-Automation-Stack für agentengesteuerte Zielerkennung, Mikroskopkartierung, sicherheitsüberwachte CNC-Bewegung, Sondenüberprüfung und gesteuertes Pin-Probing.
AutoProber ist der Flying-Probe-Automatisierungsstack für Hardware-Hacker, der Ihrem Agenten alles gibt, was er braucht, um von „ein neues Ziel auf dem Teller“ bis zum sicheren Sondieren einzelner Pins zu gelangen.

Demovideo: https://gainsec.com/autoprober-demo-mp4/




Die gesamte Hardware kann über das Web-Dashboard, Python-Skripte oder den Agenten selbst gesteuert werden.

Dieses Repository ist ein eigenständiger, quelloffener Release-Kandidat. Es enthält den Python-Steuerungscode, das Dashboard, CAD-Dateien und die Dokumentation, die zur Erstellung eines eigenen AutoProber erforderlich sind.
Dieses Projekt kann physische Hardware bewegen. Behandeln Sie es als Maschinensteuerungssystem, nicht als normale Webanwendung.
Das erforderliche Sicherheitsdesign ist:
Pn:P wird ignoriert. Der CNC-Sonden-Pin ist kein vertrauenswürdiger Endanschlag.Lesen Sie docs/safety.md und docs/operations.md, bevor Sie Hardware betreiben.
apps/ Operator-facing scripts and Flask dashboard entrypoint
autoprober/ Reusable Python package for CNC, scope, microscope, logging, safety
dashboard/ Single-page web dashboard
docs/ Architecture, device references, operations, and safety guidance
cad/ Printable STL files for the current custom toolhead
config/ Example environment/configuration files
AGENTS.md Agent/operator safety rules
LICENSE PolyForm Noncommercial 1.0.0 license and commercial contact
pyproject.toml Python project metadata
uv.lock Locked Python dependency resolution
Die getestete Projektarchitektur verwendet:
mjpg_streamercad/Die Standard-Runtime-Annahmen sind in den Gerätedokumenten festgehalten. Ersetzen Sie sie vor der Verwendung durch Ihre eigenen Laboreinstellungen.
Eine einkaufsorientierte Hardwareliste finden Sie in docs/BOM.md.
Dies sind die spezifischen Teile oder Teileklassen, die für den Prototypen-Release verwendet wurden. Überprüfen Sie vor dem Kauf aktuelle Angebote, Abmessungen, Spannung und Steckerkompatibilität.
Mein Aufbau:
cad/Optional / austauschbar:
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 --> Apps
flowchart 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
Abhängigkeiten installieren:
uv sync
Starten Sie das Dashboard auf einem konfigurierten Hardware-Host:
PYTHONPATH=. python3 apps/dashboard.py
Das Dashboard verwendet standardmäßig Port 5000.
Beginnen Sie mit config/autoprober.example.env. Veröffentlichen Sie keine labspezifischen IPs, Hostnamen, Anmeldeinformationen, Kalibrierungsdateien oder aufgenommene Zielbilder, es sei denn, Sie beabsichtigen, sie freizugeben.
Wichtige Laufzeitwerte sind konfigurierbar:
AUTOPROBER_LOG_PATH: Laufzeit-Log-PfadAUTOPROBER_RUNTIME_ROOT: Kalibrierungs-, Flatfield- und LaufzeitzustandsverzeichnisAUTOPROBER_MICROSCOPE_SNAPSHOT_URL: Mikroskop-Snapshot-EndpunktAUTOPROBER_SCOPE_HOST / AUTOPROBER_SCOPE_PORT: Oszilloskop-SCPI-Endpunkt5000Committen Sie keine lokalen Umgebungsdateien, die labspezifische Hosts, Pfade oder Zieldaten enthalten.
Dieser Release-Kandidat schließt bewusst aus:
.venv, __pycache__, Playwright-ArtefakteEinzelheiten finden Sie in RELEASE_MANIFEST.md.
Dieses Projekt ist unter der PolyForm Noncommercial License 1.0.0 quelloffen verfügbar.
Sie können dieses Projekt für nichtkommerzielle Zwecke verwenden, modifizieren und teilen.
Die kommerzielle Nutzung erfordert eine separate kostenpflichtige kommerzielle Lizenz.
Für kommerzielle Lizenzen kontaktieren Sie: [email protected]
Dieses Projekt ist für kontrollierte Laborarbeiten an Geräten und Zielen gedacht, die Sie testen dürfen. Verwenden Sie es nicht, um Systeme ohne Erlaubnis zu sondieren, zu beschädigen oder zu analysieren.