ID |
Date |
Author |
Subject |
848
|
Wed Oct 27 08:11:42 2021 |
Stefan Ritt | Trigger multiple boards independently | I'm not sure if the rate would go up to 2 kHz (not 2 GHz!). Depends how the USB hub is designed. What you can do however is to buy 4 RaspberryPis (total cost 150$) and run everythign in parallel. The evaluation boards works nicely with the Pi's.
Javier Caravaca wrote: |
A related question is: if the 4 boards are triggering at max rate (500Hz), would the total data throughtput (of the four boards together) be 2GHz (500Hz x 4)? Or is the limitation on the readout, rather than the triggering?
|
|
847
|
Tue Oct 26 23:18:32 2021 |
Javier Caravaca | Trigger multiple boards independently | Thank you Stefan. Actually I noticed that the source code of drs_exam was available after I started this thread, and that was the solution that occurred to me too. I'll give that a try.
A related question is: if the 4 boards are triggering at max rate (500Hz), would the total data throughtput (of the four boards together) be 2GHz (500Hz x 4)? Or is the limitation on the readout, rather than the triggering?
Best,
Javier.
Stefan Ritt wrote: |
Unfortunately an independent operation from a single computer is not supported by the software. You can try to modify the drs_exam program and extend it. You can poll all boards in sequence and just read out that one which got a trigger, then start the loop again. But I don't know how good you are in programming. I needs a bit of experience to do that.
Stefan
Javier Caravaca wrote: |
Hello,
I recently acquired 4 DRS4 boards and I wanted to ask if it was possible to trigger them independently from the same computer.
I know that you can daisy-chain boards and trigger them all at the same time, but in my case, each of my boards record independent events, so I want them to trigger when trigger conditions are met in each board. I currently use the provided DRSOSC software, that can trigger on only the board that is being displayed at that moment. I tried opening several instances of DRSOSC to associate each to each board, but that is not possible since the second instance already does not find the boards. I wonder if there is a way of triggering from each board independently without having to use four computers.
Thank you,
Javier.
|
|
|
846
|
Tue Oct 26 15:05:18 2021 |
Mehrpad Monajem | External trigger and drs_exam | Thanks for your reply.
1- I want to have a window size of 25.6ns instead of 200ns at 5GSPS. I have a 200khz high voltage pulser, which applies a pulse to my sample. I want to digitize the detector signal for each pulse (each pulse has a 25.6ns period). The pulser and digitizer use same 200khz trigger signal from each channel of the signal generator.
2- My DRS board has a 2048 combined stick on it. But the software distribution that I have doesn't contain the drs_exam_2048.cpp program. Could you please send the link that I can download this program? I can't find it under the link below.
link: https://www.dropbox.com/sh/clqo7ekr0ysbrip/AACoWJzrQAbf3WiBJHG89bGGa?dl=0
Best regards,
Mehrpad
Stefan Ritt wrote: |
1. Why should your waveform start from 0 to 5ns? I don't get your point. Whenever you trigger a readout, you get a 200ns wide time window, and by definition it starts at zero.
2. In the software distribution you have a drs_exam_2048.cpp program. Note that your board needs to be physically modified before delivery to switch to 2048 bins.
Best,
Stefan
Mehrpad Monajem wrote: |
Hi Stefan,
I have two problems regarding using the drs_exam file with external trigger:
1- I connected a 200Khz signal with 20ns rising edge, 50 ohm load, and 27% duty cycle as an external trigger. The output of the drs_exam file starts from 0 to 200ns. Since I use an external trigger, I think it should be starting from 0 to 5ns and then again starting from 0. Could you please tell me where the problem is?
2- How is it possible to change from 1024 to 2048 bins in the drs_exam example?
You can find my code in the attachment.
Best regards,
Mehrpad
|
|
|
845
|
Tue Oct 26 12:02:56 2021 |
Stefan Ritt | Trigger multiple boards independently | Unfortunately an independent operation from a single computer is not supported by the software. You can try to modify the drs_exam program and extend it. You can poll all boards in sequence and just read out that one which got a trigger, then start the loop again. But I don't know how good you are in programming. I needs a bit of experience to do that.
Stefan
Javier Caravaca wrote: |
Hello,
I recently acquired 4 DRS4 boards and I wanted to ask if it was possible to trigger them independently from the same computer.
I know that you can daisy-chain boards and trigger them all at the same time, but in my case, each of my boards record independent events, so I want them to trigger when trigger conditions are met in each board. I currently use the provided DRSOSC software, that can trigger on only the board that is being displayed at that moment. I tried opening several instances of DRSOSC to associate each to each board, but that is not possible since the second instance already does not find the boards. I wonder if there is a way of triggering from each board independently without having to use four computers.
Thank you,
Javier.
|
|
844
|
Tue Oct 26 12:00:51 2021 |
Stefan Ritt | External trigger and drs_exam | 1. Why should your waveform start from 0 to 5ns? I don't get your point. Whenever you trigger a readout, you get a 200ns wide time window, and by definition it starts at zero.
2. In the software distribution you have a drs_exam_2048.cpp program. Note that your board needs to be physically modified before delivery to switch to 2048 bins.
Best,
Stefan
Mehrpad Monajem wrote: |
Hi Stefan,
I have two problems regarding using the drs_exam file with external trigger:
1- I connected a 200Khz signal with 20ns rising edge, 50 ohm load, and 27% duty cycle as an external trigger. The output of the drs_exam file starts from 0 to 200ns. Since I use an external trigger, I think it should be starting from 0 to 5ns and then again starting from 0. Could you please tell me where the problem is?
2- How is it possible to change from 1024 to 2048 bins in the drs_exam example?
You can find my code in the attachment.
Best regards,
Mehrpad
|
|
843
|
Tue Oct 26 10:41:46 2021 |
Mehrpad Monajem | External trigger and drs_exam | Hi Stefan,
I have two problems regarding using the drs_exam file with external trigger:
1- I connected a 200Khz signal with 20ns rising edge, 50 ohm load, and 27% duty cycle as an external trigger. The output of the drs_exam file starts from 0 to 200ns. Since I use an external trigger, I think it should be starting from 0 to 5ns and then again starting from 0. Could you please tell me where the problem is?
2- How is it possible to change from 1024 to 2048 bins in the drs_exam example?
You can find my code in the attachment.
Best regards,
Mehrpad |
842
|
Mon Oct 25 18:48:04 2021 |
Javier Caravaca | Trigger multiple boards independently | Hello,
I recently acquired 4 DRS4 boards and I wanted to ask if it was possible to trigger them independently from the same computer.
I know that you can daisy-chain boards and trigger them all at the same time, but in my case, each of my boards record independent events, so I want them to trigger when trigger conditions are met in each board. I currently use the provided DRSOSC software, that can trigger on only the board that is being displayed at that moment. I tried opening several instances of DRSOSC to associate each to each board, but that is not possible since the second instance already does not find the boards. I wonder if there is a way of triggering from each board independently without having to use four computers.
Thank you,
Javier. |
841
|
Fri Oct 15 06:15:53 2021 |
Keita Mizukoshi | livetime (or deadtime) of DRS4 evaluation board | Thank you very much.
Stefan Ritt wrote: |
I would say not exactly, but it's a good approximation.
Keita Mizukoshi wrote: |
Thank you very much for your response.
Excuse me for my very stupid confirmation.
If I take N events finally and the hardware scaler value is M, the livetime is realtime*(N/M). Is this correct
|
|
|
840
|
Thu Oct 14 18:42:31 2021 |
Stefan Ritt | livetime (or deadtime) of DRS4 evaluation board | I would say not exactly, but it's a good approximation.
Keita Mizukoshi wrote: |
Thank you very much for your response.
Excuse me for my very stupid confirmation.
If I take N events finally and the hardware scaler value is M, the livetime is realtime*(N/M). Is this correct
|
|
839
|
Thu Oct 14 18:03:52 2021 |
Keita Mizukoshi | livetime (or deadtime) of DRS4 evaluation board | Thank you very much for your response.
Excuse me for my very stupid confirmation.
If I take N events finally and the hardware scaler value is M, the livetime is realtime*(N/M). Is this correct?
Stefan Ritt wrote: |
The one thing you can do easily is to look at the scaler values. If one channel counts all physical events, and you have all read out events, then the ratio give you the live/deadtime. The hardware scalers also keep running during the DRS readout.
Stefan
Keita Mizukoshi wrote: |
Dear experts,
I would like to use the DRS4 evaluation board for actual physics experiment.
I made a CUI script based on the drs_exam, https://github.com/mzks/drs4_tools/blob/main/build/source/drscmd.cpp.
In this framework, how can we obtain DAQ livetime (or deadtime)?
Has some function already provided to evaluate them from firmware?
Best regards,
Keita
|
|
|
838
|
Thu Oct 14 15:25:07 2021 |
Stefan Ritt | livetime (or deadtime) of DRS4 evaluation board | The one thing you can do easily is to look at the scaler values. If one channel counts all physical events, and you have all read out events, then the ratio give you the live/deadtime. The hardware scalers also keep running during the DRS readout.
Stefan
Keita Mizukoshi wrote: |
Dear experts,
I would like to use the DRS4 evaluation board for actual physics experiment.
I made a CUI script based on the drs_exam, https://github.com/mzks/drs4_tools/blob/main/build/source/drscmd.cpp.
In this framework, how can we obtain DAQ livetime (or deadtime)?
Has some function already provided to evaluate them from firmware?
Best regards,
Keita
|
|
837
|
Thu Oct 14 15:19:00 2021 |
Keita Mizukoshi | livetime (or deadtime) of DRS4 evaluation board | Dear experts,
I would like to use the DRS4 evaluation board for actual physics experiment.
I made a CUI script based on the drs_exam, https://github.com/mzks/drs4_tools/blob/main/build/source/drscmd.cpp.
In this framework, how can we obtain DAQ livetime (or deadtime)?
Has some function already provided to evaluate them from firmware?
Best regards,
Keita |
835
|
Sat Sep 18 15:48:30 2021 |
Stefan Ritt | drs_exam_multi with non-v4 boards, default configuration | Hi,
please note the the evaluation board is what it says, a board to evaluate the chip, and is not meant for a full-blown shiny multi-board DAQ channel, so support for that is kind of limited.
Strange that you only find two out of four boards. What happens if you disconnect the two boards the system finds and then try again? Might be that your USB hub does not have enough power to supply four boards (each taking 2.5W, so you need 10W in total). Unplugging some board will show you if you have a power problem.
The drsosc.cfg stores the current configuration. For this to work, the drsosc program has to have write access to the directory where the drsosc.cfg program is stored, which is usually the directory from where the program is started. Maybe you have to adjust permissions. Yes you have commands to set everything, just look into drs_exam.cpp and you will find most of them.
Best,
Stefan
Patrick Moriishi Freeman wrote: |
Hello,
I made a modified version drs_exam_multi.cpp, but ran into an issue when running. When I ran it, it only found the two boards with lower serial numbers (2781 and 2879) and complained that the others (2880 and 2881) were not v4. Would there be a simple workaround for this type of thing? Also, would I be able to use the .dat format to keep the file sizes down.
If not, I am curious if there is a way I can at least set a default configuration for the drsosc program. It seems the drsosc.cfg is written when drsosc starts? Does it load the configuration from somewhere else? It would be very helpful to keep the same settings between runs, in particular the trigger delays, levels, trigger mode, and voltage offsets. Maybe I can even do this with just a few of the CLI commands? I know this is for experts only, but I think I would just need a few commands (setTrig, setTrigMode, setTrigDelay, that sort of thing) if they do exist. I would check the help now, but I'm running, and I'm pretty sure I saw some for trigger settings.
Anyhow, any help is appreciated in creating a more repeatable and automated data acquisition. Thanks!
|
|
834
|
Sat Sep 18 15:47:50 2021 |
Stefan Ritt | how to acquire the stop channel with 2x4096 cascading | The problem must be on your side, since the Write Shift Register readout works in other applications with the DRS4 chip. So I can only speculate what could be wrong:
- Do you really properly set the WSR? When you program it with 00010001b, add 8 more clock cycles and you should see the 00010001b pattern at WSROUT.
- Do all tests with an oscilloscope, to avoid potential problems in your FPGA firmware (like an input configures as an output by mistake).
- DWRITE must be high to see the contents of the WSR at the WSROUT pin, maybe that’s your mistake, see datasheet p 5 of 16.
- To see the contents of the WSR at SROUT, A0-3 must be 1101b, please check with your oscilloscope
- The addresses A0-A3 are simply connected to a multiplexer, so no clock is necessary after the addresses change
Stefan
Jiaolong wrote: |
Hi Steffan,
I have a question about how to acquire the stop channel:
Process: Configure the Write Shift Register with 00010001b to achieve 4-channel cascading, then after a trigger, set A3-A0 to 1101, sclk keeps 0.
Result: the WSROUT pin keeps 0, the SROUT pin has no clock pulse as written in datasheet, but keeps always 1 or 0. It can be seen the stop channel is channel 0 or channel 1, but no situation to represtent channel 3 or channel 4. And if set sclk with 8 pulses, the WSROUT and SROUT both keep 0.
What should I pay attention to? Looking forward to your reply.
Jiaolong
|
|
833
|
Thu Sep 16 19:04:06 2021 |
Patrick Moriishi Freeman | drs_exam_multi with non-v4 boards, default configuration | Hello,
I made a modified version drs_exam_multi.cpp, but ran into an issue when running. When I ran it, it only found the two boards with lower serial numbers (2781 and 2879) and complained that the others (2880 and 2881) were not v4. Would there be a simple workaround for this type of thing? Also, would I be able to use the .dat format to keep the file sizes down.
If not, I am curious if there is a way I can at least set a default configuration for the drsosc program. It seems the drsosc.cfg is written when drsosc starts? Does it load the configuration from somewhere else? It would be very helpful to keep the same settings between runs, in particular the trigger delays, levels, trigger mode, and voltage offsets. Maybe I can even do this with just a few of the CLI commands? I know this is for experts only, but I think I would just need a few commands (setTrig, setTrigMode, setTrigDelay, that sort of thing) if they do exist. I would check the help now, but I'm running, and I'm pretty sure I saw some for trigger settings.
Anyhow, any help is appreciated in creating a more repeatable and automated data acquisition. Thanks!
|
832
|
Mon Sep 6 14:42:23 2021 |
Jiaolong | how to acquire the stop channel with 2x4096 cascading | Hi Steffan,
I have a question about how to acquire the stop channel:
Process: Configure the Write Shift Register with 00010001b to achieve 4-channel cascading, then after a trigger, set A3-A0 to 1101, sclk keeps 0.
Result: the WSROUT pin keeps 0, the SROUT pin has no clock pulse as written in datasheet, but keeps always 1 or 0. It can be seen the stop channel is channel 0 or channel 1, but no situation to represtent channel 3 or channel 4. And if set sclk with 8 pulses, the WSROUT and SROUT both keep 0.
What should I pay attention to? Looking forward to your reply.
Jiaolong |
831
|
Tue Aug 10 13:57:09 2021 |
Mehrpad Monajem | C code to read the 4 channel with external trigger | Thank you for the reply.
In the version that I have, I cannot find drs_exam_2048.cpp file. Could you please send me the link to download the software folder, which contain this file.
Best,
Mehrpad
Stefan Ritt wrote: |
Sorry the late reply, I was on vacation.
Here are some answers:
1. I'm sorry I can't help much here, since I currently don't have a Windows 10 computer here to compile any code. I moved now completely to MacOSX, being very similar to Linux. I'm not allowed to run a Windows 7 computer any more for security reasons. Last time this worked for me was with Wxwidget version 3.0 and libusb 1.0, but I guess libusb is not critical so you can use a newer version. If you just compile drs_exam.cpp, you don't need any Wxwidget library. That one is only used for the oscilloscope program.
2. The program drs_exam_2048.cpp is meant to read channels in 2048-bin mode.
3. To adjust the delay between the trigger and the readout, use the function b->SetTriggerDelayNs(xxx)
Best,
Stefan
Mehrpad Monajem wrote: |
Hi there,
Recently I bought a 5GSPS evaluation board with 2048 sampling points.
I want to read 4 inputs of the evaluation bord ar 5 GSPS or 2.5GSP and use an external trigger.
I've checked your website and download drs-5.0.5 which contains the source code in C. It seems that the file drs_exam.cpp can do what I am looking for.
So far I could make and compile the project in Linux Ubuntu, but I couldn't compile it in Windows 10. I've used Cygwin64 to compile the project in windows 10.
I have the following questions:
1- Since I only need to compile the drs_exam.cpp file, could please help me with how can I compile it directly(without making the entire project). Or tell me which version of Wxwidget and libusb I have to install.
2- If you have any sample code that can read 4 inputs with an external trigger, please tell me where can I find it.
In the end, I want to write a wrapper on this C file(which returns digitized data) and run it from my python program. Thank you in advance.
Best regards,
Mehrpad
|
|
|
830
|
Mon Aug 9 12:50:31 2021 |
Stefan Ritt | C code to read the 4 channel with external trigger | Sorry the late reply, I was on vacation.
Here are some answers:
1. I'm sorry I can't help much here, since I currently don't have a Windows 10 computer here to compile any code. I moved now completely to MacOSX, being very similar to Linux. I'm not allowed to run a Windows 7 computer any more for security reasons. Last time this worked for me was with Wxwidget version 3.0 and libusb 1.0, but I guess libusb is not critical so you can use a newer version. If you just compile drs_exam.cpp, you don't need any Wxwidget library. That one is only used for the oscilloscope program.
2. The program drs_exam_2048.cpp is meant to read channels in 2048-bin mode.
3. To adjust the delay between the trigger and the readout, use the function b->SetTriggerDelayNs(xxx)
Best,
Stefan
Mehrpad Monajem wrote: |
Hi there,
Recently I bought a 5GSPS evaluation board with 2048 sampling points.
I want to read 4 inputs of the evaluation bord ar 5 GSPS or 2.5GSP and use an external trigger.
I've checked your website and download drs-5.0.5 which contains the source code in C. It seems that the file drs_exam.cpp can do what I am looking for.
So far I could make and compile the project in Linux Ubuntu, but I couldn't compile it in Windows 10. I've used Cygwin64 to compile the project in windows 10.
I have the following questions:
1- Since I only need to compile the drs_exam.cpp file, could please help me with how can I compile it directly(without making the entire project). Or tell me which version of Wxwidget and libusb I have to install.
2- If you have any sample code that can read 4 inputs with an external trigger, please tell me where can I find it.
In the end, I want to write a wrapper on this C file(which returns digitized data) and run it from my python program. Thank you in advance.
Best regards,
Mehrpad
|
|
829
|
Wed Jul 14 14:55:09 2021 |
Mehrpad Monajem | C code to read the 4 channel with external trigger | Hi there,
Recently I bought a 5GSPS evaluation board with 2048 sampling points.
I want to read 4 inputs of the evaluation bord ar 5 GSPS or 2.5GSP and use an external trigger.
I've checked your website and download drs-5.0.5 which contains the source code in C. It seems that the file drs_exam.cpp can do what I am looking for.
So far I could make and compile the project in Linux Ubuntu, but I couldn't compile it in Windows 10. I've used Cygwin64 to compile the project in windows 10.
I have the following questions:
1- Since I only need to compile the drs_exam.cpp file, could please help me with how can I compile it directly(without making the entire project). Or tell me which version of Wxwidget and libusb I have to install.
2- If you have any sample code that can read 4 inputs with an external trigger, please tell me where can I find it.
In the end, I want to write a wrapper on this C file(which returns digitized data) and run it from my python program. Thank you in advance.
Best regards,
Mehrpad
|
828
|
Wed May 5 10:12:44 2021 |
Stefan Ritt | recording only timestamp and amplitude and/or filesize maximum | The maximum file size depends on the underlying linux file system. Common values are 4-16 GBytes.
Stefan
Abaz Kryemadhi wrote: |
Hi,
I have been collecting some date using the DRS4 board at a trigger rate of 10-20 Hz, I only need the timestamp and the amplitude, is there anyway to select only these two live as the data comes in to be stored.
Alternatively, What's the maximum file size or maximum number of events I can store in one binary file in linux.
Thanks,
Best,
Abaz
|
|
|