
Стек автоматизации летающего пробника аппаратного хакера для агентно-ориентированного обнаружения целей, картографирования с помощью микроскопа, движения ЧПУ с контролем безопасности, проверки пробников и контролируемого зондирования контактов.
AutoProber — это стек автоматизации летающего щупа для аппаратного хакера, предоставляющий вашему агенту всё необходимое, чтобы перейти от «на плате появилась новая цель» к безопасному зондированию отдельных контактов.

Демонстрационное видео: https://gainsec.com/autoprober-demo-mp4/




Всем оборудованием можно управлять через веб-панель, скрипты Python или самого агента.

Этот репозиторий представляет собой самодостаточный релиз-кандидат с открытым исходным кодом. Он содержит код управления на Python, панель управления, CAD-файлы и документацию, необходимые для создания собственного AutoProber.
Этот проект управляет физическим оборудованием. Относитесь к нему как к системе управления станком, а не как к обычному веб-приложению.
Требуемая конструкция безопасности:
GRBL Pn:P игнорируется. Пин щупа CNC не является надёжным конечным выключателем.Прочтите docs/safety.md и docs/operations.md перед запуском оборудования.
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
Проверенная архитектура проекта использует:
mjpg_streamer.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 --> 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
Установка зависимостей:
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]
Этот проект предназначен для контролируемой лабораторной работы с оборудованием и целями, которые вы уполномочены тестировать. Не используйте его для зондирования, повреждения или анализа систем без разрешения.