Skip to main content

SciSDK: Sci-Compiler Python SDK wrapper

This package will install a wrapper for the Sci-Compiler SDK, the software layer to develop Python application to readout and configure firmware generated by Sci-Compiler

Introduction

The SciSDK is a cross-platform library to write custom control and readout software for Sci-Compiler generated user firmware.

Sci-Compiler is a Nuclear Instruments (http://www.nuclearinstruments.eu) tool to generate FPGA firmware con NI/Caen OpenHardware FPGA (https://www.caen.it/families/open-fpga-digitizers/)

The Sci-Compiler convert a block diagram description of the user firmware is a hardware compatible bitstream managing also the readout of the data from the hardware. This library is intended to be used to write the control and readout software for the user firmware and works only with firmware generated by Sci-Compiler.

Installation

Pre-requisites (Binary files installation)

This library requires that the SciSDK and all hardware related libraries are installed in the system.

The SciSDK can be installed precompiled or compiled from source. Detailed instructions on haw install the SciSDK are explained at this link: SciSDK installation(https://sci-sdk.sci-compiler.com/) The last version of the compiled SciSDK libraries setup are available here: SciSDK setup (https://gitlab.sci-compiler.com/sdk/sci-sdk/-/releases)

It is also possible to install avoid to install the SciSDK libraries system wide copying all DLL or so in the python script exectuable folder. It that case double check to execute the python.exe command from the folder where the script and all the libraries are located otherwise the script will be unable to locate the required libraries and an exception is rised. While the setup will install in the system folder the SciSDK dll and all the libraries for the supported boards, if manual setup is used, the user must ensure thal all dll are copied in the python script executable folder. For example if the user intent to connecto to the DT1260 on windows system ( Python x64 ) the following libraries are required: SciSDK_DLL.dll SCIDK_Lib.dll ftd2xx64.dll For example if the user intent to connecto to the R5560 on windows system ( Python x64 ) the following libraries are required: SciSDK_DLL.dll R5560_SDKLib.dll libzmq-v140-mt-4_3_4.dll libsodium.dll Please double check the version of python (32 or 64 bit) and use dll/so accordingly.

Python wrapper installation

In order to install the SciSDK python wrapper, just run the following command:

pip install scisdk

Usage

Import the library

Import the library in your python script:

from scisdk.scisdk import SciSDK
from scisdk.scisdk_defines import *

Create the SciSDK object

Create the SciSDK object and pass the connection string and the path to the JSON file:

# initialize scisdk library
sdk = SciSDK()

# add new device

# USB board (DT1260)                usb:10500
# ETHERNET (X556X) board            192.168.90.2:8888
# FELIB based board (CAEN X274x):   10.105.250.18
res = sdk.AddNewDevice("usb:10500","dt1260", "./DT1260RegisterFile.json","board0")
if res != 0:
    print ("Script exit due to connetion error")
    exit()

Readout the data

Please refere to the official documentation (https://sci-sdk.sci-compiler.com/)

Example of readout of the data from the oscilloscope:

res = sdk.SetParameterString("board0:/MMCComponents/Oscilloscope_0.data_processing","decode")
res = sdk.SetParameterInteger("board0:/MMCComponents/Oscilloscope_0.trigger_level", 1000)
res = sdk.SetParameterString("board0:/MMCComponents/Oscilloscope_0.trigger_mode","self")
res = sdk.SetParameterInteger("board0:/MMCComponents/Oscilloscope_0.trigger_channel", 0)
res = sdk.SetParameterInteger("board0:/MMCComponents/Oscilloscope_0.pretrigger", 150)
res = sdk.SetParameterString("board0:/MMCComponents/Oscilloscope_0.acq_mode", "blocking")
res = sdk.SetParameterInteger("board0:/MMCComponents/Oscilloscope_0.timeout", 3000)

res, buf = sdk.AllocateBuffer("board0:/MMCComponents/Oscilloscope_0")

res, buffer = sdk.ReadData("board0:/MMCComponents/Oscilloscope_0", buffer)# read data from board

Metadata

Release files for scisdk 2.2.34

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

Source distribution (sdist)

Source distribution for scisdk 2.2.34
File Size Uploaded Provenance Actions
scisdk-2.2.34.tar.gz 12.0 kB Without provenance Details for scisdk-2.2.34.tar.gz

Built distribution (wheel)

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

Total release size: 25.1 kB

Release files / scisdk-2.2.34.tar.gz

Download URL scisdk-2.2.34.tar.gz
Size 12.0 kB
Tags Source
SHA-256 checksum
How to use checksums
16da2d63439c490992f4eed3997edccaa75dce2c74cc9ad41088d8d11f610e33
BLAKE2b-256 checksum
How to use checksums
6011bfc72cca78796c054545288e8bcccd04baae285f643e2cd697145e732c32
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / scisdk-2.2.34-py3-none-any.whl

Download URL scisdk-2.2.34-py3-none-any.whl
Size 13.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d68e63b609d0465b00f9e6b89ddf74d31d7c3a0c1ab33114c68806101d57f995
BLAKE2b-256 checksum
How to use checksums
3285dd0943527889a9e91d18af36ba2fca1bfa5a56f7349cd2f0f3fd70daed81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Security for scisdk 2.2.34

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.

Release history Release notifications | RSS feed

This release

2.2.34 This release

2 release files No provenance

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