diff --git a/README.md b/README.md index c79ea29fc6b822e8a88062a227740c9138a17d3e..3f27d08cf7f82dba26b2fdca3bbfb6a57626327a 100644 --- a/README.md +++ b/README.md @@ -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.  -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