Skip to main content

NQontrol Servo Controller

pipeline status coverage report Code style: black

NQontrol is a Python project aiming the replacement of analog PID controllers in the lab.

The project is a solution based on the ADwin real-time platform that is able to deliver in excess of 8 simultaneous locking loops running with 200 kHz sampling frequency, and offers five second-order filtering sections per channel for optimal control performance. It can be used up to a control bandwidth of about 12 kHz. This Python package, together with a web-based GUI, makes the system easy to use and adapt for a wide range of control tasks in quantum-optical experiments.

The source code can be found on GitLab.

Read the latest changes in our changelog.

Paper Version

A fixed state of this project is version 1.1. The publicated paper about this project is available here. The preprint version of the paper describing can be found on arXiv.

Usage Example

Here is a short example for the Python API (see the full example in the docs):

# Importing a ServoDevice is enough
from nqontrol import ServoDevice

# Create a new servo device object, connecting to ADwin with the device number 0.
# Number 0 is reserved for a virtual mock device for testing.
sd = ServoDevice(0)

# Print the timestamp
print(f'Uptime {sd.timestamp}s')

# Get a servo object to control it.
s = sd.servo(1)

# Enable in and output
s.inputSw = True
s.outputSw = True

# Run a threshold analysis for locking
s.lockAnalysis()
# Enable the autolock
s.autolock(relock=True)

Graphical User Interface

NQontrol can also be used with a responsive graphical user interface that runs in a browser (more details in the docs):

NQontrol GUI

Autolock Feature

An autolock feature makes it simple to lock all the control loops. It scans the output until a threshold value of the aux signal is reached, then it activates the lock.

Documentation

For more information please read the online documentation:

NQontrol Installation

It's as simple as

pip install nqontrol

But additionally you need to install the ADwin library. For complete installation instructions please refer to the documentation page.

Contribution

If you want to make changes for yourself or contribute to the project, take a look on this page to see how to setup the environment.

Release files for nqontrol 1.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nqontrol 1.2.1
File Size Uploaded
nqontrol-1.2.1.tar.gz 178.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nqontrol 1.2.1
File Interpreter ABI Platform
nqontrol-1.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 374.1 kB

Release files / nqontrol-1.2.1.tar.gz

Download URL nqontrol-1.2.1.tar.gz
Size 178.2 kB
Tags Source
SHA-256 checksum
How to use checksums
c18cd4838516cbd07b1360b611cfd773158e4dd8b6891188c2685c76e7625386
BLAKE2b-256 checksum
How to use checksums
b70306f605cbbd62345698531d70170ae4f5482f9652d918a4d38ee69b72821e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.6 CPython/3.8.7 Linux/4.18.0-240.10.1.el8_3.x86_64

Release files / nqontrol-1.2.1-py3-none-any.whl

Download URL nqontrol-1.2.1-py3-none-any.whl
Size 195.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b2135b31003ab5fc65ace810efdbb4e9255c4af385bc2db45596b0be12aea4c
BLAKE2b-256 checksum
How to use checksums
07ea5a6c7cb1bba39226c425edbc8b14358a00426ba9200320d6d89106227c92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.6 CPython/3.8.7 Linux/4.18.0-240.10.1.el8_3.x86_64
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page