Introduction

The Devices section currently provides examples of opensource hardware APIs to control a range of scientific instruments. For each device, you can follow the Github link and download drivers to try it for yourself! We are actively working on adding more drivers to this list and supporting more languages.

These easy-to-use APIs are implemented as abstractions to low-level drivers and communication protocols used to interact with scientific instruments. Building on top of these hardware APIs, we offer a cloud-based solution that integrates APIs from multiple vendors, streamlining communication, automating measurements, and generating AI-powered workflows in one place. If you are interested in using web APIs to control these instruments or would like us to add a driver to this list, please reach out to us.

Web APIs have transformed software communication, data sharing, and application integration in the last decade. Our platform brings similar convenience and flexibility to the hardware domain. With pre-built templates, users spend less time interfacing with their devices and more time using them for research and development projects in a modern, browser-based user interface.

Users can save a lot of time using our AI-Powered Automation Workflow. This intelligent functionality allows users to generate automation scripts for a wide variety of devices such as motorized stages, lasers, sensors, cameras, and more. Users simply need to input specific prompts based on the devices currently supported. For example, a prompt could be as simple as "Home the CNC machine, and take a picture using the ueye camera after homing." Alternatively, it can handle more complex instructions, like "I have two Thorlabs stages with brushless DC motor controllers. I am using the Pure Photonics laser and measuring optical power using a Thorlabs power meter. I want to run gradient search optimization on the two stages to maximize optical power." The platform swiftly responds with a Python script and additional code information. This AI-driven process drastically cuts down time previously spent on writing drivers and generating code, making hardware automation swift, efficient, and user-friendly.

Communication Protocols

When it comes to communicating with scientific instruments, there are a bunch of different ways to make it happen. Over the years, people have used a variety of communication protocols to help computers and instruments work together. Our hardware APIs use more than one communication protocols listed below. Let's take a look at some of the most popular ones.

  • GPIB (General Purpose Interface Bus): GPIB, also known as IEEE-488, is an established protocol for connecting and controlling multiple instruments in a test and measurement setup. Developed in the late 1960s, it enables computers to send data, commands, and responses to instruments through a parallel data bus.
  • RS-232 (Recommended Standard 232): RS-232 is another well-known protocol for connecting various devices, including scientific instruments. It is designed for asynchronous data transmission over short distances (usually less than 50 feet). Despite the emergence of newer protocols, RS-232 remains in use with some older devices.
  • USB (Universal Serial Bus): USB is a widely adopted method for connecting and communicating between computers and peripheral devices, including scientific instruments. It offers advantages such as plug-and-play functionality, hot-swapping capabilities, and relatively fast data transfer rates.
  • Ethernet/LAN (Local Area Network): Ethernet is a standard choice for wired communication in local networks. Many scientific instruments now support Ethernet, providing high-speed communication and seamless integration with existing network infrastructures.
  • LXI (LAN eXtensions for Instrumentation): LXI is an extension of Ethernet, specifically designed for test and measurement instruments. It builds upon Ethernet by adding features such as precise synchronization, web-based instrument control, and easy integration with various programming environments.
  • Bluetooth and Wi-Fi: Wireless communication protocols like Bluetooth and Wi-Fi have also been adopted in the field of scientific instruments. These wireless technologies enable instruments and computers or mobile devices to communicate without any physical connections, offering greater flexibility and convenience.

How to find device address (Windows)

To find available COM ports and devices on Windows, you can:

  • Open Device Manager, expand the "Ports (COM & LPT)" section, and look for devices listed as "COM#". The number indicates the COM port number.
  • For USB devices, expand the "Universal Serial Bus controllers" section and look for your device. You can view more details about the device by right-clicking on it and selecting "Properties".

Using the PyVISA Library

To find available resources using Python and the `pyvisa` library, you can follow these steps:

  1. Install the `pyvisa` library:
  2. pip install pyvisa
  3. Create a Python script to list available resources:
  4. import visa
    
    rm = visa.ResourceManager()
    resources = rm.list_resources()
    
    for resource in resources:
        print(f"Resource: {resource}")

The `pyvisa` library allows you to interact with various resources, such as serial, USB, and GPIB devices.

References

A number of open-source python packages exist to control scientific instruments. Each has their own framework and a list of devices they support. We encourage our users to check them out as well.