A library for controlling and taking data from Kinetic Inductance Detector readout electronics. Users will use this base library to build up an application specific to their project. The idea beging that most of the low level details are taken care of. Users should focus on the minutia of their integration and the science they would like to perform. A nominal system consists of a ZCU111 RFSOC connected to an Intermediate Frequency Up/Down rf converter which is in turn, connected to detectors in a cryostat.
Control over ethernet is facilitated via a Redis server.
It's best practice to use a virtual environmet instead of your system python installation.
With virtual enviornments, you can ensure there are no conflicting packages or package versions
with other projects. You can utilize Anaconda or Python's venv package to this end.
Example:
Create an environment python3 -m venv kp3env
Activate the environment source kp3env/bin/activate
- Python 3.8+
- Redis 6.2+ and it's build requirements
- Ethernet card supporting jumbo frames of 8208 bytes or more
- Ubuntu 20.04+ LTS
- Ubuntu network configured for a mtu of 9000
Please use requirements.txt to satisfy dependencies. ( Instructions shall assume you are using a Python Virtual Enviornment)
pip install -r requrements.txt
Git does not include the bitstream required by the software.
Please download it here
and unzip it into ./rfsoc/ before uploading the folder to the RFSOC.
Contributions should be documented using reStructuredText Markup. This is for the future to help keep things clearer in terms of documentation. Examples for documention functions and classes are placed in the docs folder.
- rfsocInterface:writeWaveform Function signature has changed, breaks rfsoc/rediscontrol 20230612-1857