Skip to main content

Python library for interfacing with IDQ ID801 Time to Digital Converter

Project description

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

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"

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

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

idq_id801-1.0.0.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

idq_id801-1.0.0-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file idq_id801-1.0.0.tar.gz.

File metadata

  • Download URL: idq_id801-1.0.0.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.6

File hashes

Hashes for idq_id801-1.0.0.tar.gz
Algorithm Hash digest
SHA256 c5409d8cf854aaf0c37bbaa1f6e8fc7805b381b75af7374e0b588001be93137a
MD5 ca5b01fbb203e29fab695080a46f60c3
BLAKE2b-256 10fc94c64347fe6abf58cc853a6703f506a83e9f2fe162b18d0a840f65a5b11f

See more details on using hashes here.

File details

Details for the file idq_id801-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: idq_id801-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.6

File hashes

Hashes for idq_id801-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0906bbfda5ed08d23100daaa1d0bfce8ca788b40cb73eee5fc42ffe595ca041e
MD5 79e78b19de2cbcd6fda1aadc23a66090
BLAKE2b-256 c1bf758ab2889c0c5a620919f20d7b0619ac7e4eef3c7e6f0903ca3b9bc7b9c6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page