A collection of Python examples demonstrating how to control and interact with test and measurement equipment using SCPI (Standard Commands for Programmable Instruments) commands.
This repository contains practical examples for automating and controlling various test and measurement instruments. Currently focused on oscilloscope control, the examples demonstrate common tasks and best practices for instrument automation.
SCPIExamples/
├── Oscilloscopes/
│ ├── AutoSet/ # Intelligent auto-setup functionality
│ ├── PlotWaveform/ # Waveform capture and visualization
│ ├── PlotFFT/ # FFT analysis and visualization
│ ├── Simple/ # Basic PyVISA usage example
│ ├── RESTAPI/ # Modern REST API control
│ └── WebControl/ # Web-based oscilloscope control interface
-
- Intelligent auto-setup for oscilloscope channels
- Automatic scale optimization
- Multi-channel support
- Precise measurements
-
- USB and network connection support
- Raw and HiSLIP protocol compatibility
- Waveform capture and visualization
- Metadata extraction
-
- Frequency domain analysis
- Real-time FFT capture
- Frequency spectrum visualization
- Bin frequency and magnitude data
-
- Basic PyVISA usage demonstration
- Simple SCPI command examples
- Clear learning-focused implementation
- Minimal error handling
-
- Modern web-based control interface
- No VISA drivers required
- JSON-based command structure
- Async operation support
-
- Browser-based oscilloscope control
- Real-time waveform display
- Interactive time scale and memory depth control
- Continuous acquisition mode
- Modern, responsive UI using Bootstrap
- Python 3.6+
- PyVISA
- Additional requirements specified in individual example directories
- Clone this repository
- Install the required dependencies for the example you want to run
- Navigate to the specific example directory
- Follow the README instructions in each example directory
Feel free to contribute additional examples or improvements to existing ones. Please follow the existing code structure and documentation patterns.
This project is licensed under the MIT License.