The new package makes the programming of all 200+ instruments, offering sampling rates from 5 MS/s to 10 GS/s, both faster and easier.
Python, which has proved popular for its simplicity, versatility and flexibility, offers an extensive collection of libraries and frameworks (such as NumPy) that significantly accelerates programming development cycles.
The new spcm package allows users to take full advantage of the Python language by providing a high-level Object-Oriented Programming (OOP) interface that is specifically designed for the Spectrum Instrumentation Digitizer, AWG and Digital I/O products. It includes the full source code as well as detailed examples. Available on GitHub, spcm is free of charge under the MIT license.
Spectrum’s Python package safely handles the automatic opening and closing of cards, groups of cards and Ethernet instruments, as well as the allocation of memory for transferring data to and from these devices. All the device specific functionality is capsulated in easy-to-use classes that includes: clock and trigger settings, hardware channel settings, card synchronization, direct memory access (DMA) and product features such as Block Averaging, DDS and Pulse Generator.
The package supports the use of real-world physical quantities and units (e.g. “10 MHz”) enabling the user to directly program driver settings in their preferred unit system. This removes the need for manual conversions to cryptic API settings. Moreover, this package also includes support for calculations with NumPy and Matplotlib, allowing the user to handle data coming from, or going to, the products with the vast toolbox provided by those packages.
Detailed examples can be found in the GitHub repository.
Installing the package is easy, thanks to its availability in the pip repository. Simply install Python and then the package with a single command: $ pip install spcm
Users can include the Spectrum Instrumentation Python package in their own programs, or fork to the repository to add more functionality. The package is directly maintained by Spectrum engineers and updates are released regularly offering bug-fixes and new features.
The Spectrum Python repository can be accessed using the link below.