Skip to main content

SDK for Sci-Compiler generated firmware

Project description

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

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

scisdk-2.2.2.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

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

scisdk-2.2.2-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

Details for the file scisdk-2.2.2.tar.gz.

File metadata

  • Download URL: scisdk-2.2.2.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for scisdk-2.2.2.tar.gz
Algorithm Hash digest
SHA256 7445f283e63555c43feb9fb52704026b9d8a8be113e537449407e03653abe782
MD5 4eb3d1299d0711caf6d1967a95caa442
BLAKE2b-256 da11ddf5eec2caa202ce30d8937392f10d7e7120b4d8a0f23f6377a995ab7d7f

See more details on using hashes here.

File details

Details for the file scisdk-2.2.2-py3-none-any.whl.

File metadata

  • Download URL: scisdk-2.2.2-py3-none-any.whl
  • Upload date:
  • Size: 10.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for scisdk-2.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 22a8bc689e00f420c15f0cdf9ce28e9489a32ab8abbb4910bd6a36d29ffad4e3
MD5 eae68f9087ef66951cd5459c95936f41
BLAKE2b-256 5d9db1f52f8d55b5815e06f70827e1eafe4ede7e6f721388412408c62c2e3e38

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