Skip to main content

IDQ ID801 TDC (Time to Digital Converter) or "Time Tagging Box"

This package is developed within the advisory of the Gallicchio Research Group, Harvey Mudd College.

It has a fast counter with a period ("native bin") of 81 ps. It outputs the value of this counter along with which channel saw the rising edge. This instruction assumes that you have the latest version of firmware updated on the physical IDQ ID801. Firmware update is contained with the official manual provided by the IDQ company itself (you should contact them directly if you own the device).

Table of Contents

Required setup to interface with IDQ devices

grant the permission to manage the IDQ USB device by running the following shell command:

sudo vim /etc/udev/rules.d/idq.rules

then, add the following lines to the file and press :wq to save and quit

# Make IDQ devices available to all users
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", MODE="0660"

install the package by running the following shell command:

pip install idq-id801

Python module that utilizes C library shared-object

I implemented a Python interface that connects to the C library shared-object. This module allows for simple integration with other Python scripts. The use cases are laid out in this example notebook.

A Python script to try is the real-time plotter that you can call by the following shell command:

# This is an example for configurations below:
# exposure: 100ms
# coincidence window: 500TDC
# switch_termination: off
# save: do not save to CSV file
# A graph: plot channels "1" and "2"
# B graph: plot channel "1/2" (coincidence between channels "1" and "2")
python3 real-time_plotter.py -e 100 -w 500 -t 0 -A "1" "2" -B "1/2"  

To record the raw timestamps from the device record timestamps could be used:

python3 record_timestamps.py -e 100 -b 10_000  # to record all timestamps at 100ms exposure and 10_000 CSV writing batch size

Python-based publisher-subscriber or server-client pattern

To meet the need for accessing the coincidence data from the ID801 from multiple scripts at the same time, Next O. comes up with two distinct patterns to tackle this:

  • publisher-subscriber: good for retrieving the same data across multiple scripts simultaneously with no side-effect to the ID801 main device.
  • server-client: good for retrieving specific data for each script's goal simultaneously with possible reconfiguration of the ID801 main device

To start the publisher, we can run:

python3 id801_publisher.py  # this will spin up the publisher of ID801 device

To start the server, we can run:

python3 id801_server.py  # this will spin up the server of ID801 device

To see the example of how to request/subscribe to the server, refer ID801_client script that contains the client object API and is executable to fetch the data every 1 second.

Troubleshooting

If no information is retrieved from the device but no error is shown, try running python3 -m pytest -v to test if the device is working correctly. Note that you have to enable to channels first unless no channel is turned on by default.

Metadata

Release files for idq-id801 1.0.2

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

Source distribution (sdist)

Source distribution for idq-id801 1.0.2
File Size Uploaded
idq_id801-1.0.2.tar.gz 19.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for idq-id801 1.0.2
File Interpreter ABI Platform
idq_id801-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 38.9 kB

Release files / idq_id801-1.0.2.tar.gz

Download URL idq_id801-1.0.2.tar.gz
Size 19.3 kB
Tags Source
SHA-256 checksum
How to use checksums
42fab9f9558fa4457880f39e6657e2313ba98904b44d04f394f23ef95cc642ec
BLAKE2b-256 checksum
How to use checksums
b291b30af7fd81cd66988f05aa569742e5bca8619dca4e87cd2bc18a3823c949
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.6

Release files / idq_id801-1.0.2-py3-none-any.whl

Download URL idq_id801-1.0.2-py3-none-any.whl
Size 19.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6dc225c3e3119674f3f4b076a85dfb2339ca1cbcaa59bb4d9b51aab3c31199d9
BLAKE2b-256 checksum
How to use checksums
4633bb58bd65715938d6c3760c98ef5ce63477cc1ac0317b5139f6b76a7175c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.6

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

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