Noureddine RAMDI / AutoProber: AI-driven hardware automation with oscilloscope-monitored safety for PCB analysis

Created Mon, 04 May 2026 10:23:02 +0000 Modified Sat, 23 May 2026 20:41:27 +0000

GainSec/AutoProber

AutoProber stands out by integrating an oscilloscope as a dedicated hardware safety monitor in its flying probe system for PCB analysis. This repo orchestrates motion control, imaging, and safety with a strict safety architecture rarely seen in open hardware automation, making it a noteworthy project for anyone working with AI-driven hardware probing.

What AutoProber does and how it is built

AutoProber is a Python-based automation stack designed to operate a flying probe system tailored for PCB hardware analysis. It combines control over a GRBL-compatible 3018 CNC machine, a USB microscope for visual inspection, and a Siglent oscilloscope that monitors a dedicated safety channel.

The software provides a Flask web dashboard as its user interface, enabling operators to manage the entire probing workflow. This includes ingesting target data, capturing microscope frames with stitching capabilities, manual approval of probe targets, and executing probe movements within calculated bounds that consider microscope-to-probe offsets.

Under the hood, the system uses Python for orchestration, with dependency management handled by uv. The choice of GRBL-compatible CNC hardware is pragmatic, leveraging a widely supported open motion control platform. The USB microscope integration allows high-resolution frame capture and image stitching, facilitating detailed PCB feature annotation.

A key architectural element is the continuous safety monitoring using the Siglent oscilloscope’s Channel 4 to watch for voltage anomalies that indicate endstop triggers or faults. This setup supports a feed-hold safety mechanism where any fault immediately stops motion and requires manual operator clearance before resuming.

AutoProber is licensed under PolyForm Noncommercial 1.0.0, which restricts commercial use but allows source availability for research and experimentation.

The oscilloscope-based safety architecture

What truly distinguishes AutoProber is its robust, production-grade safety model implemented through hardware monitoring. The system dedicates an oscilloscope channel exclusively for safety endstop monitoring. A high-frequency thread polls Channel 4 at 10 Hz or more, continuously checking the voltage level for any anomaly.

If the oscilloscope detects a voltage outside the expected range — indicating a triggered safety endstop or a fault — the system immediately sends a feed-hold command to the CNC controller. This halts any motion instantly. Beyond that, the system transitions to a mandatory STOP state that cannot be bypassed automatically. Resuming operation requires explicit manual intervention, ensuring a human-in-the-loop for safety-critical recovery.

This architecture is a rare example of integrating an independent hardware safety check into an AI-driven automation stack. Most CNC or probe systems rely on firmware or software endstops within the motion controller itself, which can be less reliable if the controller firmware has bugs or the AI agent misbehaves.

By monitoring the safety endstop signal externally and independently, AutoProber significantly reduces the risk of uncontrolled motion that could damage expensive PCB hardware or the probe mechanism. This level of safety engineering is often found in industrial systems but is uncommon in open-source AI hardware projects.

The tradeoff is complexity: requiring a Siglent oscilloscope and wiring its Channel 4 signal to the hardware endstop increases the hardware footprint and setup time. Moreover, the manual clearance requirement after a fault can slow down automated workflows. But for high-value hardware analysis, this tradeoff is often justified.

The codebase reflects this focus on safety, with clear separation between motion commands, safety monitoring threads, and manual override logic. The Flask dashboard offers real-time status and control, supporting operator awareness and intervention.

Quick start with AutoProber

To get started with AutoProber, first install the dependencies using the provided command:

uv sync

Once dependencies are in place, launch the dashboard on your configured hardware host with:

PYTHONPATH=. python3 apps/dashboard.py

The web dashboard will be accessible on port 5000 by default, providing the interface to control and monitor the probe system.

This quick start assumes you have already set up the hardware components (GRBL CNC, USB microscope, Siglent oscilloscope) and configured the system according to the project’s documentation.

Verdict

AutoProber is a well-engineered automation stack that addresses a niche but critical use case: AI-driven flying probe control with hardware-level safety monitoring for PCB analysis.

Its standout feature is the oscilloscope-monitored safety endstop, which adds a layer of fault tolerance and operator safety rarely seen in open hardware projects. This makes it suitable for environments where hardware damage is costly and safety is paramount.

However, the project assumes access to specific hardware (Siglent oscilloscope, GRBL-compatible CNC, USB microscope) and a level of hardware integration expertise that might limit its accessibility to hobbyists or casual users.

The PolyForm Noncommercial license restricts commercial use, so this is more of a research and experimentation tool than a ready-to-deploy commercial solution.

If you work with PCB hardware analysis and want to explore AI-augmented automated probing with serious safety considerations, AutoProber is worth a close look. Its architecture and safety model offer valuable insights and a solid foundation for further development in hardware automation.


→ GitHub Repo: GainSec/AutoProber ⭐ 296 · Python