Spectrum Instrumentation presents a new open-source Python package (spcm) that is now available for the current line of all Spectrum Instrumentation test and measurement products. The new package makes the programming of all 200+ instruments, offering sampling rates from 5 MS/s to 10 GS/s, faster and easier. Python, popular for its simplicity, versatility and flexibility, boasts 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 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 a number of 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. This includes clock and trigger settings, hardware channel settings, card synchronization, direct memory access 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 tedious 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.
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 example in the photo shows the opening of the first analog-output card (AWG) and programming of a simple 10 MHz sine-wave output using the DDS option.