Skip to content

Scientific Instruments Database by Python Library

Welcome!

Welcome to Flojoy’s Scientific Instrument Database!

Here you can find information about some of the most popular Python libraries for scientific Instrument control - including InstrumentKit, QCodes, PyMeasure, PyVISA, and PySerial.

Flojoy uses these libraries (plus many others) to connect to Instruments with no-code, drag-and-drop blocks called “nodes” in Flojoy Studio.

Please use this Instruments Database as a resource to download Studio and create your own nodes for connecting to scientific hardware in your lab, manufacturing facility, and test stations.

InstrumentKit

Library Description InstrumentKit is a powerful and versatile Python library designed specifically for hardware engineers and scientists working with instruments. It provides a comprehensive set of tools and functionalities to control, automate, and interface with a wide range of instruments commonly used in various fields such as electronics, physics, and chemistry.

One of the key features of InstrumentKit is its intuitive and user-friendly API, which simplifies the process of instrument control and data acquisition. The library offers a consistent interface across different instrument types, allowing users to seamlessly switch between instruments without having to learn new syntax or commands. This makes it incredibly convenient for engineers and scientists who work with multiple instruments simultaneously or need to switch between different setups frequently.

InstrumentKit supports a wide variety of instruments, ranging from basic devices like multimeters and oscilloscopes to more complex instruments such as signal generators, power supplies, and spectrum analyzers. These instruments can be connected to the computer via various communication protocols, including USB, GPIB, Ethernet, and serial interfaces. The library provides built-in drivers for many popular instrument models, ensuring compatibility and ease of use.

In addition to instrument control, InstrumentKit offers powerful data acquisition and analysis capabilities. It provides functions for acquiring and processing data from instruments, enabling users to perform real-time measurements, record data for later analysis, and generate detailed reports. The library also supports advanced features like triggering, synchronization, and data streaming, allowing for precise and efficient data acquisition in complex experimental setups.

InstrumentKit is an open-source library, which means that it benefits from a vibrant and active community of developers and contributors. This ensures continuous improvement, bug fixes, and the addition of new features based on user feedback and requirements. The library is extensively documented, with comprehensive guides, tutorials, and examples to help users get started quickly and make the most of its capabilities.

Now, let’s explore some of the popular and commonly used instruments supported by InstrumentKit:

  1. Multimeters: InstrumentKit provides drivers for a wide range of multimeters, allowing users to measure voltage, current, resistance, and other electrical parameters accurately.

  2. Oscilloscopes: With InstrumentKit, you can control and acquire data from oscilloscopes, enabling you to visualize and analyze electrical waveforms in real-time.

  3. Signal Generators: InstrumentKit supports signal generators, which are essential for generating precise waveforms and signals for testing and calibration purposes.

  4. Power Supplies: The library offers drivers for power supplies, enabling users to control voltage and current outputs with high precision and stability.

  5. Spectrum Analyzers: InstrumentKit allows for interfacing with spectrum analyzers, facilitating the analysis and characterization of frequency-domain signals.

  6. Function Generators: With InstrumentKit, you can control function generators to generate a variety of waveforms, including sine, square, triangle, and arbitrary waveforms.

  7. Data Loggers: The library supports data loggers, which are useful for recording and analyzing data over extended periods, making them ideal for long-term experiments or monitoring applications.

  8. Temperature Controllers: InstrumentKit provides drivers for temperature controllers, allowing precise control and monitoring of temperature in various applications.

These are just a few examples of the instruments supported by InstrumentKit. The library’s extensive compatibility and flexibility make it an invaluable tool for hardware engineers and scientists working with instruments, enabling them to streamline their workflows, automate experiments, and extract meaningful insights from their data.

Instrumental

Library Description Instrumental is a powerful Python library designed specifically for hardware engineers and scientists who work with instruments. It provides a comprehensive set of tools and functionalities to control, communicate with, and acquire data from a wide range of instruments. With its intuitive and user-friendly interface, Instrumental simplifies the process of instrument control and data acquisition, enabling users to focus on their experiments and analysis.

One of the key features of Instrumental is its extensive support for various instrument communication protocols. It offers built-in support for popular protocols such as GPIB (General Purpose Interface Bus), USB (Universal Serial Bus), RS-232 (Recommended Standard 232), and Ethernet. This allows users to easily connect and communicate with instruments using the appropriate interface, without the need for complex low-level programming.

Instrumental also provides a unified API (Application Programming Interface) for instrument control, making it easy to write code that is compatible with different instruments. This means that users can write instrument control code once and seamlessly switch between instruments without having to modify their code. This greatly enhances productivity and flexibility in experimental setups.

Furthermore, Instrumental offers a wide range of functionalities for instrument control and data acquisition. It supports various instrument operations such as setting instrument parameters, querying instrument status, and triggering instrument actions. It also provides efficient data acquisition capabilities, allowing users to acquire data from instruments at high speeds and with precise timing.

In addition to instrument control and data acquisition, Instrumental includes powerful data analysis and visualization tools. It provides functions for data processing, filtering, and analysis, as well as plotting and visualization capabilities. This enables users to perform real-time analysis of acquired data, visualize experimental results, and make informed decisions based on the data.

Now, let’s explore some of the popular and commonly used instruments supported by the Instrumental Python library:

  1. Oscilloscopes: Instrumental provides comprehensive support for controlling and acquiring data from oscilloscopes. Users can easily set trigger conditions, acquire waveforms, and perform real-time analysis on acquired data.

  2. Function Generators: With Instrumental, users can easily control function generators to generate precise waveforms for various applications such as signal testing and stimulus generation.

  3. Multimeters: Instrumental offers seamless integration with multimeters, allowing users to read and analyze voltage, current, resistance, and other electrical parameters with ease.

  4. Power Supplies: Instrumental provides extensive support for controlling power supplies, enabling users to set voltage and current levels, monitor power output, and perform automated power cycling.

  5. Spectrum Analyzers: Users can leverage Instrumental to control spectrum analyzers, enabling them to analyze and visualize frequency spectra of signals with high accuracy and resolution.

  6. Network Analyzers: Instrumental supports network analyzers, allowing users to measure and analyze the performance of electrical networks, including impedance, reflection, and transmission characteristics.

  7. Data Loggers: Instrumental facilitates data logging by providing functionalities to acquire and store data from various sensors and instruments over extended periods of time.

These are just a few examples of the wide range of instruments supported by the Instrumental Python library. With its comprehensive features and intuitive interface, Instrumental empowers hardware engineers and scientists to efficiently control instruments, acquire data, and perform analysis, ultimately enhancing their productivity and enabling groundbreaking research and development.

PyMeasure

Library Description PyMeasure is a powerful and versatile Python library designed specifically for controlling and interfacing with various scientific instruments. It provides a comprehensive set of tools and utilities that simplify the process of instrument control, data acquisition, and analysis. With PyMeasure, Python developers and scientists can effortlessly automate experiments, collect data, and perform complex measurements with ease.

One of the key features of PyMeasure is its extensive support for a wide range of instruments commonly used in scientific research and engineering applications. These instruments can be easily integrated into Python scripts, allowing for seamless control and data acquisition. Here are some popular and commonly used instruments supported by PyMeasure:

  1. Oscilloscopes: PyMeasure provides a convenient interface to control and acquire data from oscilloscopes. It supports popular models from various manufacturers, such as Tektronix, Agilent, and Keysight. Users can easily configure the oscilloscope settings, trigger measurements, and retrieve waveform data for further analysis.

  2. Multimeters: PyMeasure enables users to interact with multimeters, which are essential for measuring voltage, current, resistance, and other electrical parameters. It supports a wide range of multimeter models, including those from Keithley, Fluke, and Keysight. Users can easily read measurements, set measurement ranges, and perform various operations on the acquired data.

  3. Power Supplies: PyMeasure allows users to control power supplies, which are used to provide electrical power to devices under test. It supports popular power supply models from manufacturers like Agilent, Keithley, and Rohde & Schwarz. Users can set voltage and current limits, enable or disable outputs, and monitor the power supply status.

  4. Function Generators: PyMeasure provides a convenient interface to generate and control waveforms using function generators. It supports models from various manufacturers, including Tektronix, Agilent, and Rigol. Users can easily set waveform parameters such as frequency, amplitude, and offset, and generate complex waveforms for testing and experimentation.

  5. Temperature Controllers: PyMeasure offers support for temperature controllers, which are crucial for precise temperature control in scientific experiments. It supports popular temperature controller models from manufacturers like Lakeshore, Eurotherm, and Omega. Users can easily set temperature setpoints, read temperature measurements, and control heating or cooling elements.

  6. Spectrum Analyzers: PyMeasure allows users to control and acquire data from spectrum analyzers, which are used to analyze the frequency content of signals. It supports models from manufacturers such as Keysight, Rohde & Schwarz, and Anritsu. Users can configure frequency ranges, resolution bandwidths, and perform measurements such as power spectral density and harmonic distortion.

These are just a few examples of the wide range of instruments supported by PyMeasure. The library’s modular design and extensibility make it easy to add support for additional instruments or customize existing instrument drivers. PyMeasure empowers Python developers and scientists to seamlessly integrate instrument control and data acquisition into their workflows, enabling efficient and automated experimentation and analysis.

PyTango

Library Description PyTango is a powerful Python library that provides a comprehensive framework for controlling and interacting with scientific instruments and devices. It is widely used in the field of experimental physics and engineering, offering a flexible and efficient solution for instrument control and data acquisition.

At its core, PyTango is built on top of the Tango Control System, which is a distributed control system designed for scientific and industrial applications. Tango provides a standardized communication protocol and a set of tools for managing and controlling devices, making it easier to integrate different instruments into a unified control system.

PyTango extends the capabilities of Tango by providing a Python interface that simplifies the development of instrument control applications. It offers a high-level API that abstracts the complexities of Tango, allowing users to focus on the specific functionality of their instruments. With PyTango, you can easily create device servers, which act as intermediaries between the instrument hardware and the control software.

One of the key features of PyTango is its support for asynchronous programming. It leverages the power of Python’s asyncio framework to enable concurrent and non-blocking communication with multiple devices. This allows for efficient handling of multiple instrument interactions, ensuring smooth and responsive control of complex experimental setups.

PyTango also provides a rich set of tools for instrument configuration, monitoring, and data acquisition. It offers a graphical user interface called Jive, which allows users to interact with devices, visualize data, and configure instrument properties. Additionally, PyTango integrates well with popular scientific libraries such as NumPy and matplotlib, enabling seamless data analysis and visualization.

Now, let’s explore some popular and commonly used instruments that can be controlled using PyTango:

  1. Motor: The Motor device is used for controlling motorized stages or actuators. It provides methods for moving the motor to specific positions, setting velocity and acceleration profiles, and monitoring the motor’s status.

  2. Camera: The Camera device is used for acquiring images from scientific cameras. It supports various image formats and provides methods for capturing images, adjusting exposure settings, and performing image processing operations.

  3. Spectrometer: The Spectrometer device is used for measuring the intensity of light at different wavelengths. It allows users to configure the spectrometer’s parameters, perform spectral scans, and analyze the acquired data.

  4. Temperature Controller: The Temperature Controller device is used for controlling the temperature of a system or sample. It provides methods for setting the target temperature, monitoring the current temperature, and applying control algorithms to maintain temperature stability.

  5. Power Supply: The Power Supply device is used for controlling and monitoring electrical power supplies. It allows users to set voltage and current limits, measure output values, and protect the connected devices from overloads.

  6. Pressure Gauge: The Pressure Gauge device is used for measuring pressure in vacuum systems. It provides methods for reading pressure values, calibrating the gauge, and triggering alarms based on predefined thresholds.

  7. Magnetometer: The Magnetometer device is used for measuring magnetic fields. It allows users to perform magnetic field measurements, calibrate the sensor, and analyze the acquired data.

These are just a few examples of the wide range of instruments that can be controlled using PyTango. The library’s flexibility and extensibility make it suitable for controlling various scientific devices, enabling researchers and engineers to build sophisticated experimental setups and automate complex measurement processes.

QCodes

Library Description QCodes is a powerful Python library designed specifically for controlling and interacting with scientific instruments. It provides a comprehensive framework for instrument control, data acquisition, and analysis, making it an essential tool for researchers and engineers in various scientific fields.

At its core, QCodes offers a unified and consistent interface for controlling a wide range of instruments, regardless of their underlying communication protocols or hardware interfaces. This means that you can seamlessly control instruments from different manufacturers using a single, intuitive API. QCodes abstracts away the complexities of instrument communication, allowing you to focus on your experiment or measurement rather than the intricacies of instrument control.

One of the key features of QCodes is its modular architecture, which allows for easy integration of new instrument drivers. Instrument drivers are responsible for translating high-level commands into low-level instructions that the instrument understands. QCodes provides a growing collection of instrument drivers for popular devices, and you can also create your own drivers to support custom or specialized instruments.

In addition to instrument control, QCodes provides a powerful data acquisition framework. It allows you to easily configure and synchronize multiple instruments, acquire data with high precision and speed, and store it in various formats for further analysis. QCodes also offers advanced features like real-time plotting, data streaming, and data logging, making it a versatile tool for experimental data acquisition.

Furthermore, QCodes seamlessly integrates with other popular Python libraries such as NumPy, SciPy, and Matplotlib, enabling you to leverage their capabilities for data analysis, visualization, and processing. This integration makes QCodes a valuable tool for end-to-end scientific experimentation and analysis workflows.

Now, let’s explore some of the popular and commonly used instruments that can be controlled using QCodes:

  1. Keithley 2400 Series SourceMeter: This instrument combines the functionality of a precision power supply, current source, and digital multimeter. It is widely used in semiconductor characterization, materials research, and device testing.

  2. Keysight E5071C Network Analyzer: This network analyzer is used for measuring the scattering parameters (S-parameters) of high-frequency electrical networks. It is commonly employed in RF and microwave engineering, telecommunications, and signal integrity analysis.

  3. Agilent 34401A Digital Multimeter: This versatile multimeter offers high accuracy and resolution for measuring voltage, current, resistance, and other electrical parameters. It is widely used in electronics testing, calibration, and research applications.

  4. Thorlabs PM100D Power Meter: This power meter is designed for precise optical power measurements. It is commonly used in optics and photonics research, laser characterization, and fiber optic communications.

  5. Tektronix TDS3000 Series Oscilloscope: This digital oscilloscope provides high-speed waveform capture and analysis capabilities. It is extensively used in electronics design, signal analysis, and troubleshooting.

  6. Lakeshore 340 Temperature Controller: This instrument is used for precise temperature control in cryogenic and low-temperature experiments. It is commonly employed in condensed matter physics, superconductivity research, and quantum computing.

These are just a few examples of the wide range of instruments that can be controlled using QCodes. The library’s flexibility, extensibility, and integration capabilities make it a valuable asset for any scientist or engineer working with scientific instruments.

QCodes Community

Library Description QCodes Community is a powerful Python library that has revolutionized the way hardware engineers interact with instruments. It provides a comprehensive and user-friendly interface for controlling and acquiring data from a wide range of scientific instruments. With its extensive functionality and intuitive design, QCodes Community has become the go-to choice for researchers and engineers working in various fields.

One of the key features of QCodes Community is its ability to seamlessly integrate with different instrument types, making it a versatile solution for any laboratory setup. Whether you are working with oscilloscopes, signal generators, power supplies, or any other instrument, QCodes Community provides a unified interface that simplifies instrument control and data acquisition.

The library offers a modular architecture that allows users to easily extend its capabilities by adding support for new instruments. This flexibility ensures that QCodes Community can adapt to the evolving needs of the scientific community, making it a future-proof solution for instrument control.

QCodes Community also provides a powerful data acquisition framework that enables users to efficiently collect and analyze experimental data. It offers various data storage options, including in-memory storage, SQLite databases, and HDF5 files, allowing users to choose the most suitable method for their specific requirements. Additionally, the library supports real-time plotting and visualization of acquired data, making it easier to monitor experiments and make informed decisions.

Now, let’s explore some of the popular and commonly used instruments supported by QCodes Community:

  1. Keithley 2400 SourceMeter: This instrument is widely used for sourcing and measuring electrical signals. With QCodes Community, you can easily control the Keithley 2400, set voltage and current levels, and acquire measurement data with high precision.

  2. Keysight E8267D PSG Vector Signal Generator: This signal generator is commonly used in RF and wireless communication applications. QCodes Community provides a comprehensive interface to control the E8267D PSG, allowing users to generate complex waveforms, modulate signals, and perform frequency sweeps effortlessly.

  3. Tektronix DPO7000 Series Oscilloscope: QCodes Community offers seamless integration with Tektronix DPO7000 series oscilloscopes, enabling users to control various oscilloscope settings, acquire waveform data, and perform advanced triggering and analysis.

  4. Agilent 34401A Digital Multimeter: This multimeter is a popular choice for measuring voltage, current, and resistance in a wide range of applications. QCodes Community provides a convenient interface to control the Agilent 34401A, allowing users to perform measurements with high accuracy and flexibility.

  5. Stanford Research Systems SR830 Lock-In Amplifier: QCodes Community offers comprehensive support for the SR830 Lock-In Amplifier, enabling users to control various amplifier settings, acquire data, and perform advanced signal processing and analysis.

These are just a few examples of the instruments supported by QCodes Community. The library also provides support for many other instruments, including power supplies, function generators, spectrum analyzers, and more. With its extensive instrument compatibility, intuitive interface, and powerful data acquisition capabilities, QCodes Community has become an indispensable tool for hardware engineers and researchers in the scientific community.