Skip to content
@yaq-project

yaq

A modular and extensible instrument control framework.

Our logo

👋 Hello, and welcome to the GitHub home of the yaq project.

yaq---Yet Another acQuisition

We are building a modular and extensible instrument control framework on top of Apache Avro RPC. In human terms, this means we have designed a simple user-friendly interface to control scientific hardware (motors, sensors, etc) from Python. We already support lots of hardware, and more is being added all the time.

The yaq project has no official orchestration support. We don't have "smart" tools to define experimental scans and record data. Our only goal is to build an excelent interface for addressing hardware. Let yaq solve the annoying part (hardware interface support) while you focus on the fun part (your unique experiment). Write a simple script to try an interesting experiment. Use Jupyter to interact with your hardware. Use an existing project focused on orchestration e.g. Bluesky. Develop your own one-off application, e.g. Pressure Monitoring Reactor.

# minimal 2D scan---from scratch
import time
import yaqc
motor1 = yaqc.Client(port=38000)
motor2 = yaqc.Client(port=38001)
sensor = yaqc.Client(port=38002)
data = []
for m1 in range(-10, 10, 1):
    for m2 in range(0, 300, 5):
        motor1.set_position(m1)
        motor2.set_position(m2)
        for c in [motor1, motor2]:
            while c.busy():
                time.sleep(0.001)
        sensor.measure()
        while sensor.busy():
            time.sleep(0.001)
        reading = dict()
        reading["timestamp"] = time.time()
        reading["motor1"] = motor1.get_position()
        reading["motor2"] = motor2.get_position()
        reading.update(sensor.get_measured())
        data.append(reading)

Come join us!

Our website: https://yaq.fyi/

Chat room: https://matrix.to/#/#yaq:matrix.org

Community call: https://hackmd.io/team/yaq

Email listserve: https://groups.google.com/a/g-groups.wisc.edu/g/yaq

Publication: https://doi.org/10.1063/5.0135255

Pinned Loading

  1. yaq-fyi yaq-fyi Public

    Main website for yaq documentation.

    HTML 4 6

  2. yeps yeps Public

    yaq enhancement proposals

    HTML 2 2

  3. yaq-python yaq-python Public

    Repository for yaq core python packages.

    Python 6 5

  4. yaqd-cookiecutter-python yaqd-cookiecutter-python Public

    Cookiecutter template for making new yaq daemons using Python.

    Python 1 3

  5. yaq-traits yaq-traits Public

    Tooling for working with yaq traits.

    Python 2 3

  6. yaqd-control yaqd-control Public

    Command line tools for inspecting and controlling yaq daemons.

    Python 2 3

Repositories

Showing 10 of 61 repositories
  • yaqd-simple-pid Public

    yaq daemon wrapping functionality of simple-pid Python package

    yaq-project/yaqd-simple-pid’s past year of commit activity
    Python 0 LGPL-3.0 1 1 1 Updated Oct 29, 2024
  • yaqd-mks Public

    yaq daemons for MKS instruments

    yaq-project/yaqd-mks’s past year of commit activity
    Python 0 LGPL-3.0 0 0 1 Updated Oct 29, 2024
  • yaqd-pololu Public

    Daemons for pololu motor controllers

    yaq-project/yaqd-pololu’s past year of commit activity
    Python 0 LGPL-3.0 0 0 1 Updated Oct 29, 2024
  • yaqd-brooks Public

    yaq daemons for Brooks industrial instrumentation

    yaq-project/yaqd-brooks’s past year of commit activity
    Python 0 LGPL-3.0 3 2 1 Updated Oct 29, 2024
  • yaqd-kd-scientific Public

    yaq daemons for KD scientific hardware

    yaq-project/yaqd-kd-scientific’s past year of commit activity
    Python 0 LGPL-3.0 1 1 1 Updated Oct 29, 2024
  • yaqd-ni Public

    yaq daemons for NI hardware

    yaq-project/yaqd-ni’s past year of commit activity
    Python 1 LGPL-3.0 2 3 0 Updated Oct 23, 2024
  • yaqd-watchdog Public

    yaq daemons to set up "watchdog timer" rules

    yaq-project/yaqd-watchdog’s past year of commit activity
    Python 0 LGPL-3.0 1 3 2 Updated Sep 2, 2024
  • yaqd-vimbax Public

    Camera Daemons using the Vimba X API.

    yaq-project/yaqd-vimbax’s past year of commit activity
    Python 0 LGPL-3.0 0 0 1 Updated Sep 2, 2024
  • yaq-project/yaqd-thorlabs’s past year of commit activity
    Python 1 LGPL-3.0 3 4 7 Updated Sep 2, 2024
  • yaqd-zaber Public

    yaq daemons for Zaber Technologies products

    yaq-project/yaqd-zaber’s past year of commit activity
    Python 0 LGPL-3.0 2 1 1 Updated Sep 2, 2024

Top languages

Loading…

Most used topics

Loading…