
Pilha de automação de sonda voadora para hacker de hardware, voltada para descoberta de alvos orientada por agentes , mapeamento por microscópio, movimento CNC monitorado por segurança, revisão de sondas, e teste de pinos controlado.
AutoProber é o stack de automação de sonda voadora para hackers de hardware, fornecendo ao seu agente tudo o que é necessário para ir de "há um novo alvo na placa" até a sondagem de pinos individuais de forma segura.

Vídeo de demonstração: https://gainsec.com/autoprober-demo-mp4/




Todo o hardware pode ser controlado através do painel web, scripts Python ou pelo próprio agente.

Este repositório é um candidato a lançamento de código-fonte disponível autocontido. Ele contém o código de controle Python, painel, arquivos CAD e documentação necessários para criar seu próprio AutoProber.
Este projeto pode mover hardware físico. Trate-o como um sistema de controle de máquina, não como um aplicativo web normal.
O design de segurança necessário é:
Pn:P é ignorado. O pino de sonda CNC não é um fim de curso confiável.Leia docs/safety.md e docs/operations.md antes de executar o hardware.
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
A arquitetura de projeto testada utiliza:
mjpg_streamercad/As suposições padrão de execução estão documentadas nos documentos do dispositivo. Substitua-as pelas suas próprias configurações de laboratório antes do uso.
Para uma lista de hardware voltada para compras, veja docs/BOM.md.
Estas são as peças específicas ou classes de peças usadas para o lançamento do protótipo. Verifique as listagens atuais, dimensões, tensão e compatibilidade de conectores antes de comprar.
Minha montagem:
cad/Opcional / intercambiável:
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
Instale as dependências:
uv sync
Inicie o painel em um host de hardware configurado:
PYTHONPATH=. python3 apps/dashboard.py
O painel usa a porta 5000 por padrão.
Comece a partir de config/autoprober.example.env. Não publique IPs específicos do laboratório, nomes de host, credenciais, arquivos de calibração ou imagens de alvo capturadas, a menos que pretenda liberá-los.
Valores importantes de execução são configuráveis:
AUTOPROBER_LOG_PATH: caminho do log de execuçãoAUTOPROBER_RUNTIME_ROOT: diretório de calibração, campo plano e estado de execuçãoAUTOPROBER_MICROSCOPE_SNAPSHOT_URL: endpoint de snapshot do microscópioAUTOPROBER_SCOPE_HOST / AUTOPROBER_SCOPE_PORT: endpoint SCPI do osciloscópio5000Não faça commit de arquivos de ambiente locais que contenham hosts, caminhos ou dados de alvo específicos do laboratório.
Este candidato a lançamento intencionalmente exclui:
.venv, __pycache__, artefatos do PlaywrightVeja RELEASE_MANIFEST.md para detalhes.
Este projeto está disponível como código-fonte sob a Licença PolyForm Não Comercial 1.0.0.
Você pode usar, modificar e compartilhar este projeto para fins não comerciais.
O uso comercial requer uma licença comercial paga separada.
Para licenciamento comercial, contate: [email protected]
Este projeto é destinado a trabalhos de laboratório controlados em equipamentos e alvos que você está autorizado a testar. Não o use para sondar, danificar ou analisar sistemas sem permissão.