From 84907f1d7de0184c5a1a91675ca44dfda436bbd5 Mon Sep 17 00:00:00 2001 From: Guenter Quast <guenter.quast@kit.edu> Date: Tue, 18 Jun 2024 20:55:42 +0200 Subject: [PATCH] more complete docu --- README.md | 49 ++++++++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 57f59bb..81d05da 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ for physics laboratory courses The RedPitaya is a small, credit-card sized single board computer with a dual-core ARM Cortex-A processor and a XILINX Zynq 7010 FPGA. The board contains two fast ADCs and two DACs with 14 bit resolution running -at a sampling frequency of 125 MHz. Extension connector provide general purpose IO pins with +at a sampling frequency of 125 MHz. Extension connectors provide general purpose IO pins with slow analog inputs and outputs and support for serial bus interfaces like I²C, SPI and UART. The system runs under Ubuntu Linux, which provides network access and supports a wide range of applications running on the board. @@ -22,13 +22,14 @@ well as an oscilloscope application capable of transferring large data reates re limit of the 1Gb port. The package consists of an FPGA image and a server process running on the RedPitaya board. A client script controls the server and pulls the data to the client computer. -This package extends the original one by a possibity to record or export waveform data and -provides helper scripts to analyze recordes spectra or to read exported waveform data. An +This package extends the original one by a possibility to record or export waveform data and +provides helper scripts to analyze recorded spectra or to read exported waveform data. An interface to the buffer manager *mimoCoRB* for buffering and parallel processing of large date volumes is also provided. -This package is in use for spectrography experiments in physics laboratory courses at the -faculty of physics at Karlsruhe Institute of Technology. +This package is in use for gamma-ray spectrography experiments in physics laboratory courses at +the faculty of physics at Karlsruhe Institute of Technology. + ### Files: @@ -59,7 +60,8 @@ faculty of physics at Karlsruhe Institute of Technology. *mcpha.py* is a fork of the sub-directory *projects/mcpha* in a project by Pavel Demin, [red-pitaya-notes](https://pavel-demin.github.io/red-pitaya-notes), -*redPaq.py* represents an extension of the oscilloscope class enabling fast restart and data export. +*redPaq.py* represents an extension of the oscilloscope class enabling fast restart +and data export. ## Multi-Channel Pulse-Height Analyzer for the RedPitaya FPGA board @@ -108,7 +110,7 @@ of the *matplotlib*window to mark regions to zoom in for a detailed inspection o ## Oscilloscope and data recorder -The script *redPdaaq.py* relies on the same server and FPGA image as the pulse-height analyzer, +The script *redPdaq.py* relies on the same server and FPGA image as the pulse-height analyzer, providing the same functionality as *mcpha.py*. In addition, however, there is a button "*Start DAQ*" in the oscilloscope tab to run the oscilloscope in data acquisition mode, i.e. continuously. A subset of the data is shown in the oscilloscope display, together with @@ -126,7 +128,7 @@ An examples of call-back functions callable from within redPdaq is provided with *redP_mimocorb.py* is script called as sub-process within the *mimiCoRB* frame-work for more advanced data analysis tasks requiring multiple processes running in parallel. A *mimoCoRB* setup-file is also provided and can be started by *./run_daq setup.yaml*; -modules and configuration files for a pulse-height analysis of tecorded signals are +modules and configuration files for a pulse-height analysis of recorded signals are contained in the subdirectories *modules/* and *config/*, respectively. @@ -135,8 +137,8 @@ contained in the subdirectories *modules/* and *config/*, respectively. The sub-directory *RP-image* contains files to be transferred to a SD card for the RedPitaya board. Proceed as follows: - - copy the contents of the directory *RP-image* to an empty SD card formatted as VFAT32. - - connect the RedPitaya to the network via the LAN port + - copy the contents of the directory *RP-image* to an empty SD card formatted as VFAT32; + - connect the RedPitaya to the network via the LAN port; - insert the SD card in the RedPitaya and connect the power. The RepPitaya directly starts the *mcpha* server application, requests an IP address via DHCP @@ -144,9 +146,9 @@ and waits for the client program to connect via network. On the client computer, download the client software: - - clone the *mcpha* repository via `git clone https://gitlab.kit.edu/guenter.quast/redpitaya-mcpha` - - change directory to the installation directory and start the graphical interface of the client - software via `python3 mcpha.py` on the command line. + - clone the *redpitaya-mcpha* repository via `git clone https://gitlab.kit.edu/guenter.quast/redpitaya-mcpha`; + - change directory to the installation directory and start the graphical interface of the desired Python + client script on the command line. The application programs *mcpha.py* or *redPdaq.py* take care of initializing the processes on the RedPitaya board through the server process, initiate data transfers from the RedPitaya board to @@ -174,21 +176,24 @@ and the server process on the RedPitaya board. Then, on the client side: - - start the client program via `python3 mcpha.py` + - start the client program from within a terminal via `python3 mcpha.py` or `python3 redPdaq.py`; - in the graphical interface, enter the network address of the RedPitaya in the field next to the orange button and click *connect*; watch out for connection errors in the *Messages* tab! - The message "*IO started*" is displayed if everything is ok, and the address turns green. + The message "*IO started*" is displayed if everything is ok, and the address turns green; - click the *oscilloscope* tab, check the trigger level and then start the oscilloscope - to see whether signals are arriving at one or both of the RedPitaya inputs. - Adjust the *decimation factor* in the top-right corner of the main display to ensure + to see whether signals are arriving at one or both of the RedPitaya inputs; + adjust the *decimation factor* in the top-right corner of the main display to ensure that the sampling rate is high enough for about 50 samples over the pulse duration. - if no signal source is available, you may click the *generator* tab, set the desired - signal parameters and start the generator; connect *out1* of the RedPitaya to the - input *in1* with a (short) cable and then check for the presence of signals in - the *oscilloscpe* tab. + signal parameters and start the generator; connect *out1* of the RedPitaya to one of + rhe inputs with a (short) cable and then check for the presence of signals in + the *oscilloscpe* tab; - now click the tab *spectrum histogram 1*; adjust the amplitude threshold and time - of exposure, then click the *Start* button and watch the spectrum building up. + of exposure, then click the *Start* button and watch the spectrum building up; + - if running `redPdaq.py`, threre is a buttton "StartDQQ"; click it to cintinuously transfer + waveform data to the client computer. If a filename was specified, data is recorded to disk + in *.npy* format; note that any active spectrum rab is put in paused mode if DAQ is active. - when finished, use the *Save* button to save the spectrum to a file with a meaningful name. @@ -215,6 +220,8 @@ Note that presently mcpha.py exports data in human-readable format using > *read_osc.py* demonstrates how to read and plot waveform data exported from the oscilloscope tab of mcpha.py. +> *read_npy.py* illustrates how to read waveform recorded by `redPdaq.py`. + ## Examples The directory *examples/* contains some spectra recorded with *mchph.py* and the Python -- GitLab