
Pila de automatización de sonda voladora para hackers de hardware, para descubrimiento de objetivos impulsado por agentes, mapeo de microscopio, movimiento CNC monitoreado por seguridad, revisión de sondas y prueba controlada de pines.
AutoProber es el stack de automatización de sondas voladoras para hackers de hardware, que le da a tu agente todo lo que necesita para pasar de "hay un nuevo objetivo en la placa" a sondear pines individuales de forma segura.

Video de demostración: https://gainsec.com/autoprober-demo-mp4/




Todo el hardware puede controlarse a través del panel web, scripts de Python o el propio agente.

Este repositorio es un candidato de lanzamiento autónomo con código fuente disponible. Contiene el código de control en Python, el panel, archivos CAD y la documentación necesaria para crear tu propio AutoProber.
Este proyecto puede mover hardware físico. Trátalo como un sistema de control de máquinas, no como una aplicación web normal.
El diseño de seguridad requerido es:
Pn:P de GRBL es ignorado. El pin de sonda CNC no es un final de carrera de confianza.Lee docs/safety.md y docs/operations.md antes de ejecutar 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
La arquitectura probada del proyecto utiliza:
mjpg_streamercad/Las suposiciones predeterminadas de tiempo de ejecución están documentadas en la documentación del dispositivo. Reemplázalas con tus propios ajustes de laboratorio antes de usar.
Para una lista de hardware orientada a compras, consulta docs/BOM.md.
Estas son las piezas o clases de piezas específicas utilizadas para el lanzamiento del prototipo. Verifica listados actuales, dimensiones, voltaje y compatibilidad de conectores antes de comprar.
Mi montaje:
cad/Opcional / intercambiable:
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
Instalar dependencias:
uv sync
Iniciar el panel en un host de hardware configurado:
PYTHONPATH=. python3 apps/dashboard.py
El panel usa el puerto 5000 por defecto.
Empieza desde config/autoprober.example.env. No publiques IPs específicas del laboratorio, nombres de host, credenciales, archivos de calibración o imágenes de objetivos capturadas a menos que tengas la intención de publicarlas.
Los valores importantes de tiempo de ejecución son configurables:
AUTOPROBER_LOG_PATH: ruta del registro de ejecuciónAUTOPROBER_RUNTIME_ROOT: directorio de calibración, campo plano y estado de ejecuciónAUTOPROBER_MICROSCOPE_SNAPSHOT_URL: punto final de instantánea del microscopioAUTOPROBER_SCOPE_HOST / AUTOPROBER_SCOPE_PORT: punto final SCPI del osciloscopio5000No confirmes archivos de entorno locales que contengan hosts, rutas o datos de destino específicos del laboratorio.
Este candidato de lanzamiento excluye intencionalmente:
.venv, __pycache__, artefactos de PlaywrightVer RELEASE_MANIFEST.md para más detalles.
Este proyecto tiene código fuente disponible bajo la Licencia PolyForm No Comercial 1.0.0.
Puedes usar, modificar y compartir este proyecto con fines no comerciales.
El uso comercial requiere una licencia comercial paga por separado.
Para licencias comerciales, contacta: [email protected]
Este proyecto está destinado a trabajo de laboratorio controlado en equipos y objetivos que estás autorizado a probar. No lo uses para sondear, dañar o analizar sistemas sin permiso.