Skip to content
Snippets Groups Projects
Commit 3d170119 authored by Günter Quast's avatar Günter Quast
Browse files

improved README

parent 4c3080e6
No related branches found
No related tags found
No related merge requests found
......@@ -31,11 +31,11 @@ the server and pulls the data to the client computer.
- *mcpha_osc.ui* qt5 tab for oscilloscope
- *mcpha_hst.ui* qt5 tab for histogram display
- *mcpha_log.ui* qt5 tab for message display
- *rePosci.py* a simple oscilloscope and daq client using the same server
- *rpControl.ui* qt5 graphical user interface for *rpOsci* application
- RP-image with all files necessary to boot a RedPitaya and start the server application
based on the "small, simple and secure" linux distribution
- *rePosci.py* a simple oscilloscope and daq client using the mcpha server
- *rpControl.ui* qt5 tab for *redPosci* application
- *mcpha_daq.ui* qt5 tab for oscilloscope with daq mode
- RP-image directory with all files necessary to boot a RedPitaya and start the server
application based on the "small, simple and secure" linux distribution
[alpine-3.18-armv7-20240204](https://github.com/pavel-demin/red-pitaya-notes/releases/tag/20240204)
- utility scripts in the sub-directory *helpers/*
......@@ -43,25 +43,25 @@ the server and pulls the data to the client computer.
## Credit:
This project essentially is a fork of the sub-directory *mcpha* in a project by
[Pavel Demin, red-pitaya-notes/mcpha](https://pavel-demin.github.io/red-pitaya-notes/mcpha/).
This project essentially 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).
## Multi-Channel Pulse-Height Analyzer for the RedPitaya FPGA board
A multi-channel pulse-height analyzer produces a histogram of the heights of pulses present in a signal supplied to the input. The MCPHA project uses the FPGA an the RedPitaya board to process the digitized input signal at very high rates. A server process on the ARM processor of the RedPitaya communicates with a client process via network. The client communicates with the server, starts and stops data recording and receives and displays the data. The client is also responsible for saving data to files.
A multi-channel pulse-height analyzer produces a histogram of the heights of pulses present in a signal supplied to the input. The MCPHA project uses the FPGA on the RedPitaya board to process the digitized input signal at very high rates. A server process on the ARM processor of the RedPitaya communicates with a client process via network. The client communicates with the server, starts and stops data recording and receives and displays the data. The client is also responsible for saving data to files.
The original version by Pavel Demin has been modified to better meet the usual standards for graphics
displays in physics. A command line interface has also been added to allow easy control of important
parameters at program start.
A special version of the original oscilloscope display, *redPosci.py*, with fast transfer of data to the client for data acquisition applications is also contained in this extended package.
### Basic functionality
The *mcpha* application uses a rather simple, but straight-forward algorithm to determine the
height of pulses. When the signal voltage of a supplied input signal starts rising, the corresponding
ADC count is stored in the memory of the RedPitaya. A second ADC value is stored when the signal
level starts falling again, and the difference of these two ADC values is stored and histogrammed.
The histogram is transferred to the client upon request.
ADC count is stored. A second ADC value is stored when the signal level starts falling again, and the difference of these two ADC values is histogrammed. The histogram is transferred to the client upon request.
The *mcpha* application also contains a signal generator that runs independently and parallel to the
pulse-height analyzer. It provides configurable signal shapes and signal rates at the *out1* connector
......@@ -82,14 +82,14 @@ signal overlap in this case, making pulse-height detection more complex.
A spectrum of such pulses is shown below for input pulses at multiples of 62.5 mV between 62.5 mV
and 500 mV. The overlap of signal pulses leads to wrong pulse-height assignments below the actual
voltage and to entries above 500 mV when pulses become indistinguishable and therefor add up
voltage and to entries above 500 mV when pulses become indistinguishable and therefore add up
to a single detected pulse.
![Spectrum signals with a fall time of 10 µs at an average rate of 10 kHz](images/spectrum_10mus10kHz.png)
Note that spectra and waveforms are plotted with a very large number channels, well exceeding the
resolution of a computer display. It is therefore possible to use the looking-glass button of the *matplotlib*
window to mark regions to zoom in for a detailed inspection of the data.
Note that spectra and waveforms are plotted with a very large number of channels, well exceeding
the resolution of a computer display. It is therefore possible to use the looking-glass button
of the *matplotlib*window to mark regions to zoom in for a detailed inspection of the data.
## Oscilloscope and data recorder
......@@ -97,7 +97,7 @@ The script *redPosci.py* relies on the same server and FPGA image as the pulse-h
The *oscilloscope* and *generator* tabs provide the same functionality as in *mcpha.py*.
In addition, however, there is a button "*Start DAQ*" to run the data acquisition for the the
oscilloscope independently of the Qt timing loop, i. e. in continuous mode. As soon as data is
received by the client, the oscilloscope is restarted immediately. A dummy routine
received by the client, the oscilloscope is restarted. A dummy routine
*processData()* ist provided as an illustration; right now, it shows a graphical display once
per second and calculates and displays the trigger and data rates.
......@@ -118,8 +118,8 @@ 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.
- change directory to the installation directory and start the graphical interface of the client
software via `python3 mcpha.py` on the command line.
The application program *mcpha.py* takes care of initializing the processes on the RedPitaya board
through the server process, initiates data transfers from the RedPitaya board to
......@@ -131,13 +131,13 @@ to store the acquired spectra.
Connecting to the RedPitaya with a LAN cable is the recommended way of access. The RedPitaya
requests an ip-address via the dhcp protocol and becomes accessible under the name *rp-xxxxxx*,
where *xxxxxx* is are the last six characters of the ethernet MAC address.
where *xxxxxx* are the last six characters of the ethernet MAC address.
If a usb-to-ethernet adapter is used and a dhcp server on the client computer is enabled for the
interface, a one-to-one connection of the RedPitaya to a host computer can easily be established;
use the name *rp-xxxxxx.local* in this case. How to set up a *dhcp* server for a usb-to-ethernet
adapter depends on the operating system used on the client; please check the relevant
documentation for you system.
documentation for your system.
## Usage
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment