Skip to main content

EPICS IOC for the PicoQuant HydraHarp 400

release pipeline coverage

Introduction

The HydraHarp 400 is advertized as a "multichannel picosecond event timer module" by its manufacturer, PicoQuant GmbH in Germany.

This is an EPICS Input-Output Controller (IOC) application for the HydraHarp. It uses the EMMI API, which in turn uses Diamond Light Source's EPICS wrapper pythonSoftIOC (as of September 2023). This means that miniquant-ioc's EPICS CA stack is essentially the "original" C/C++ implementation, merely interfaced by Python.

The hardware access layer is being published as miniquant -- a truly Python'esque :) API layer on top of the proprietary HydraHarp API of PicoQuant, but without the EPICS specific code.

Installation

Miniquant-ioc itself is installed fairly easy via PyPI:

pip install miniquant-ioc

Or via direct clone from Gitlab:

git clone https://gitlab.com/codedump2/miniquant-ioc \
    && pip install ./miniquant-ioc

If miniquant (the API layer) is not already installed, it will be automatically pulled from PyPI as a dependency of miniquant-ioc. In that case, you will most certainly have to go through a mildly elaborate set of post-install procedures to make sure that miniquant is, in fact, able to find and access your HydraHarp. (This is owing for one to the proprietary nature of the original PicoQuant C/C++ API for the HydraHarp, and for another to the fact that the HydraHarp 400 has a quirky USB controller; it works with any modern upstream Linux kernel, but requires specialized kernel boot parameter or USB driver module settings.)

Configuration

A specific IOC configuration file is necessary to run the Miniquant IOC. By default, the IOC loads its configuration from /etc/miniquant/harp.yaml, but that behaviour can be overridden using the -c or --harp-config command line parameter of miniquant-ioc.

The PyPI installation might have placed a copy of a usable harp.yaml in your /etc/miniquant/... directory. If it hasn't, obtain one e.g. from here.

The configuration file has two distinct sets of options, organized in as many top-level YAML sections:

  • harp: general HydraHarp device settings, like measurement mode, histogram size and resolution, offsets and zero-crossing levels; contains the following subkeys:

    • device: should have a string as value with one of "first", "any", or a HydraHarp device; the IOC will only connect to the device as specified ("first" and "any" is a good choice if you have only one device attached to a computer's USB ports)

    • presets:

    • settings:

  • epics: application settings that directly influence the IOC behavior; in turn, these are divided in:

    • prefix: single key, contains the EPICS prefix as a string value

    • defaults: default settings to be used for all exported properties, can individually be overridden

    • harpBase: contains PV definitions all non channel specific properties of a HydraHarp device to export as PVs (stuffed in a subsection exports),

    • harpChannels: contains PV definitions for all channel specific properties. The subkey interfix contains a string to use in naming the channel-specific PVs (should contain {} format specifier for the channel index), and an exports section with actual PV definitions.

  • IOC-specific settings about which properties to export as process variables (PVs).

Running

Metadata

Release files for miniquant-ioc 0.1.20

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

Source distribution (sdist)

Source distribution for miniquant-ioc 0.1.20
File Size Uploaded Provenance Actions
miniquant_ioc-0.1.20.tar.gz 40.7 kB Without provenance Details for miniquant_ioc-0.1.20.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for miniquant-ioc 0.1.20
File Interpreter ABI Platform Actions
miniquant_ioc-0.1.20-py3-none-any.whl Python 3 none any Details for miniquant_ioc-0.1.20-py3-none-any.whl

Total release size: 78.2 kB

Release files / miniquant_ioc-0.1.20.tar.gz

Download URL miniquant_ioc-0.1.20.tar.gz
Size 40.7 kB
Tags Source
SHA-256 checksum
How to use checksums
5d344e13b4181e0f0383007b70f4c1de46e782e5612241bc8eb285c3ab2c2097
BLAKE2b-256 checksum
How to use checksums
347389c220228cf14404456c02599f9dea3f6fa90016c0fd7b54cdd5671e6e95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.2

Release files / miniquant_ioc-0.1.20-py3-none-any.whl

Download URL miniquant_ioc-0.1.20-py3-none-any.whl
Size 37.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d031bd3185e35bfd466fe1ab27c5b12df6f35c73068b0e351990f63a2157e66b
BLAKE2b-256 checksum
How to use checksums
97b8d96880382232f1e4cdbb20b7cfbb6a9f7793e37ce6dbd3e1394f15480961
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.2

Security for miniquant-ioc 0.1.20

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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