
Stack di automazione per sonde volanti da hacker hardware per scoperta di target guidata da agenti, mappatura al microscopio, movimento CNC monitorato per la sicurezza, revisione delle sonde e probing controllato dei pin.
AutoProber è lo stack di automazione per sonde volanti dell'hacker hardware, progettato per fornire al tuo agente tutto ciò di cui ha bisogno per passare da "c'è un nuovo target sul piatto" alla verifica sicura di singoli pin.

Video dimostrativo: https://gainsec.com/autoprober-demo-mp4/




Tutto l'hardware può essere controllato tramite il dashboard web, script Python o dall'agente stesso.

Questo repository è un candidato al rilascio autonomo con codice sorgente disponibile. Contiene il codice Python di controllo, il dashboard, i file CAD e la documentazione necessari per creare il tuo AutoProber.
Questo progetto può muovere hardware fisico. Trattalo come un sistema di controllo macchina, non come una normale applicazione web.
Il progetto di sicurezza richiesto è:
Pn:P viene ignorato. Il pin della sonda CNC non è un finecorsa affidabile.Leggi docs/safety.md e docs/operations.md prima di eseguire l'hardware.
apps/ Script orientati all'operatore e punto di ingresso del dashboard Flask
autoprober/ Pacchetto Python riutilizzabile per CNC, oscilloscopio, microscopio, logging, sicurezza
dashboard/ Dashboard web a pagina singola
docs/ Architettura, riferimenti ai dispositivi, operazioni e linee guida sulla sicurezza
cad/ File STL stampabili per la testina utensile personalizzata corrente
config/ File di esempio per ambiente/configurazione
AGENTS.md Regole di sicurezza agente/operatore
LICENSE Licenza PolyForm Noncommerciale 1.0.0 e contatto commerciale
pyproject.toml Metadati del progetto Python
uv.lock Risoluzione delle dipendenze Python bloccata
L'architettura del progetto testata utilizza:
mjpg_streamercad/Le ipotesi predefinite di runtime sono documentate nei documenti dei dispositivi. Sostituiscile con le tue impostazioni di laboratorio prima dell'uso.
Per un elenco hardware orientato all'acquisto, consulta docs/BOM.md.
Queste sono le parti specifiche o classi di parti utilizzate per il rilascio del prototipo. Verifica listini attuali, dimensioni, tensione e compatibilità dei connettori prima di acquistare.
La mia configurazione:
cad/Opzionale / intercambiabile:
flowchart LR
Operator[Operatore] --> Dashboard[Dashboard Web]
Dashboard --> Apps[App Python]
Apps --> CNC[CNC GRBL su seriale USB]
Apps --> Microscope[Microscopio USB tramite mjpg-streamer]
Apps --> Scope[Oscilloscopio su LAN / SCPI]
Apps --> Outlet[Presa LAN opzionale]
Endstop[Finecorsa ottico] --> ScopeC4[Tensione di sicurezza C4]
Pogo[Misurazione Pogo] --> ScopeC1[Misurazione C1]
ScopeC4 --> Apps
ScopeC1 --> Apps
flowchart TD
Preflight[Preflight] --> SafetyCheck{Canale 4 libero?}
SafetyCheck -- no --> Stop[STATO STOP]
SafetyCheck -- yes --> Motion[Movimento monitorato]
Motion --> Monitor[Thread EndstopMonitor >= 10 Hz]
Monitor --> C4{C4 libero?}
C4 -- yes --> Capture[Acquisizione microscopio]
C4 -- no --> FeedHold[Feed hold immediato]
FeedHold --> Stop
Capture --> Stitch[Unione / Mappa]
Stitch --> Review[Revisione manuale sonde]
Review --> Approved{Target approvato e offset sonda misurato?}
Approved -- no --> Stop
Approved -- yes --> Probe[Movimento sonda limitato]
stateDiagram-v2
[*] --> Running
Running --> STOP: C4 attivato / guasto C4 / allarme CNC / pin di limite reale
STOP --> Report: registra tensione, stato, azione
Report --> WaitForOperator: nessun movimento di recupero automatico
WaitForOperator --> Running: operatore cancella esplicitamente la condizione
Installa le dipendenze:
uv sync
Avvia il dashboard su un host hardware configurato:
PYTHONPATH=. python3 apps/dashboard.py
Il dashboard utilizza la porta predefinita 5000.
Inizia da config/autoprober.example.env. Non pubblicare indirizzi IP, nomi host, credenziali, file di calibrazione o immagini dei target acquisiti specifici del laboratorio a meno che non intendi rilasciarli.
Alcuni valori importanti modificabili:
AUTOPROBER_LOG_PATH: percorso del log runtimeAUTOPROBER_RUNTIME_ROOT: directory per calibrazione, flat-field e stato runtimeAUTOPROBER_MICROSCOPE_SNAPSHOT_URL: endpoint snapshot del microscopioAUTOPROBER_SCOPE_HOST / AUTOPROBER_SCOPE_PORT: endpoint SCPI dell'oscilloscopio5000Non eseguire il commit di file di ambiente locali che contengono host, percorsi o dati di target specifici del laboratorio.
Questo candidato al rilascio esclude intenzionalmente:
.venv, __pycache__, artefatti PlaywrightConsulta RELEASE_MANIFEST.md per i dettagli.
Questo progetto è disponibile con codice sorgente sotto la licenza PolyForm Noncommercial 1.0.0.
Puoi utilizzare, modificare e condividere questo progetto per scopi non commerciali.
L'uso commerciale richiede una licenza commerciale a pagamento separata.
Per licenze commerciali, contatta: [email protected]
Questo progetto è destinato a lavori di laboratorio controllati su apparecchiature e target che sei autorizzato a testare. Non utilizzarlo per sondare, danneggiare o analizzare sistemi senza autorizzazione.