ID |
Date |
Author |
Subject |
746
|
Wed Mar 6 10:09:01 2019 |
Willy Chang | drscl "no board found" in some Win7 or Win8.X PCs | Hi all,
When connecting the board and running the Zadig program, some Windows PCs may return "driver installation failed." I coudn't find the solution from their download website. So I started the drscl first. Apparently it shows: Successfully scanned, but no boards found. Therefore I checked the Device Manager. A breakdown warning triangle appears under the serial port...
The possible solution may be found here.
Infact, the WinUsb driver has been in existence in your PC. One can just follow the instructions here:
https://docs.microsoft.com/en-us/windows-hardware/drivers/usbcon/winusb-installation
- Plug in your device to the host system.
- Open Device Manager and locate the device.
- Right-click the device and select Update driver software... from the context menu.
- In the wizard, select Browse my computer for driver software.
- Select Let me pick from a list of device drivers on my computer.
- From the list of device classes, select Universal Serial Bus devices.
- The wizard displays WinUsb Device. Select it to load the driver.
In the wizard, somehow the default setting displays Microsoft Device on the Top of the list and replaced the WinUsb Device. You can easily re-load the WinUsb Device. Just ignore the WARNING from the device manager. The board should work fine now.
Willy |
706
|
Thu Jun 28 19:55:45 2018 |
Woon-Seng Choong | Negative Bin Width | I am using a DRS4 Evaluation Board v5 and running the drsosc.exe version 5.06 on a Window 7 machine. I have performed the voltage and timing calibration.
With test pulses on channel 1 and 2, I collected binary data file with all 4 channels active sampling at 5GSPS.
Attached is a distribution of the bin_width vs. cell # for all the 4 channels. Note that there are few cells with bin_width < 10 ps.
Channel 1: bin_width[498] = -0.000348, bin_width[1010]= -0.000348
Channel 2: bin_width[498] = 0.007363
Channel 3: bin_width[498] = 0.007843
Channel 4: bin_width[498] = 0.005948
Is this normal? How can you get negative bin_width? What does negative bin_width means?
I have attached the binary data file for your verification.
|
Attachment 1: bin_width_5gsps.jpg
|
|
Attachment 2: test5gsps.dat
|
708
|
Mon Jul 16 19:39:35 2018 |
Woon-Seng Choong | Effect of interpolation on timing | Using a test pulse split into two channels of the DRS4 Evaluation Board v5, I looked at the time resolution using a leading edge threshold. The voltage and timing calibration was performed. One method (1) is to linearly interpolate between two points of the raw waveform that is above and below the threshold (this is exactly the algorithm given in read_binary.c in the drs4 source distribution); and another (2) is to use a cubic spline interpolation of the raw waveform. The results I obtained are:
Method 1: dt = 1.298 ns +/- 7.22 ps
Method 2: dt = 1.293 ns +/- 15.48 ps
I am really puzzled why the time resolution of the spline interpolation is about a factor 2 worse than the simple linear interpolation. Has anyone studied the time resolution using similar or other interpolation methods?
|
709
|
Fri Jul 20 00:44:13 2018 |
Woon-Seng Choong | Effect of interpolation on timing | Just a follow-up update.
It turns out that I was using a cubic spline interpolation with smoothing. If I required the cubic spline to go through the sampled points, then I obtained similar time resolution as the simple linear interpolation.
Woon-Seng Choong wrote: |
Using a test pulse split into two channels of the DRS4 Evaluation Board v5, I looked at the time resolution using a leading edge threshold. The voltage and timing calibration was performed. One method (1) is to linearly interpolate between two points of the raw waveform that is above and below the threshold (this is exactly the algorithm given in read_binary.c in the drs4 source distribution); and another (2) is to use a cubic spline interpolation of the raw waveform. The results I obtained are:
Method 1: dt = 1.298 ns +/- 7.22 ps
Method 2: dt = 1.293 ns +/- 15.48 ps
I am really puzzled why the time resolution of the spline interpolation is about a factor 2 worse than the simple linear interpolation. Has anyone studied the time resolution using similar or other interpolation methods?
|
|
629
|
Wed Sep 27 16:11:03 2017 |
Yoni Sher | Event acquisition pace for irregular timing | Hi,
I'm running a LIDAR application that requires that every outgoing pulse be captured. My current setup firess sets of 20-50 pulses at 1 ms intervals, about 10 times a second, but only 10-20 pulses a second are captured.
When I fire at full speed (1KHz - one pulse every ms), about 500-600 pulses a second are captured.
At the moment, I'm triggering on channel 1 and captureing the data on channel 2. Would it help if I used the external trigger? Is there anything else I can do?
Yoni |
647
|
Wed Dec 20 15:30:38 2017 |
Yoni Sher | cascading -- DRS4 Osci.cpp & DRS.cpp | Hi,
I'm trying to do the same thing (get 1 channel with 8192 bins), but I'm having some trouble with it. When I call SetChannelConfig(0, 8, 1) as suggeted, I get output that looks like noise on all readouts. Could you please explain what is supposed to happen in this case?
I will happily write the code to combine the channels correctly (and debug it) if I can understand what needs to be done.
(I should mention that my primary concern is a MATLAB interface which I have already written and don't mind sharing when it's complete).
Yoni Sher
Stefan Ritt wrote: |
Jill Russek wrote: |
Stefan Ritt wrote: |
Jill Russek wrote: |
Stefan, thanks for your help so far. If I go with your plan A of just modifying drs_exam.cpp, is there a quick way to get it to save the data from the wave, like how osci.cpp spits out an xml file? (Ignoring the cascading aspect for now)
Thanks again :)
/Jill
|
Well, you have to learn C programming, I won't do it for you. drs_exam.cpp contains already code to write to the ASCII file data.txt, so you just can use that or modify it to your needs.
/Stefan
|
Ha! So then the answer is no, there isn't a ready made function/method to pull out the timing and voltage, like how it was done in osci.cpp. That's all I wanted to know. (Not whether you would write it for me! Only trying to save time!) Thanks!
/Jill
|
You misunderstood. The answer is yes. drs_exam.cpp contains already code to write to an ASCII file. If you actually look into the file, you see:
f = fopen("data.txt", "w");
...
b->GetTime(0, b->GetTriggerCell(0), time_array);
...
b->GetWave(0, 0, wave_array[0]);
...
fprintf(f, "%5.2f %6.2f\n", time_array[i], wave_array[0][i]);
which actually pulls out the timing and voltage and writes it to the file.
|
|
649
|
Wed Dec 20 16:30:45 2017 |
Yoni Sher | cascading -- DRS4 Osci.cpp & DRS.cpp | Hi,
The board is modified (and checks out with the DRSScope program). Could you please point me to the drs_exam_2048.cpp file? I can't seem to fine the most up-to-date git repository....
Thanks,
Yoni
Stefan Ritt wrote: |
First you need a board which is modified in hardware to support channel cascading. Basically there are internal resistors which connect each input connector to two channels. You have to specify this when you order the board. Then you can use the new drs_exam_2048.cpp file contains in the git repository which correctly configures and reads out the board in two-channel cascading mode. Putting all 8 channels together is not supported by the evaluation boards.
Stefan
Yoni Sher wrote: |
Hi,
I'm trying to do the same thing (get 1 channel with 8192 bins), but I'm having some trouble with it. When I call SetChannelConfig(0, 8, 1) as suggeted, I get output that looks like noise on all readouts. Could you please explain what is supposed to happen in this case?
I will happily write the code to combine the channels correctly (and debug it) if I can understand what needs to be done.
(I should mention that my primary concern is a MATLAB interface which I have already written and don't mind sharing when it's complete).
Yoni Sher
Stefan Ritt wrote: |
Jill Russek wrote: |
Stefan Ritt wrote: |
Jill Russek wrote: |
Stefan, thanks for your help so far. If I go with your plan A of just modifying drs_exam.cpp, is there a quick way to get it to save the data from the wave, like how osci.cpp spits out an xml file? (Ignoring the cascading aspect for now)
Thanks again :)
/Jill
|
Well, you have to learn C programming, I won't do it for you. drs_exam.cpp contains already code to write to the ASCII file data.txt, so you just can use that or modify it to your needs.
/Stefan
|
Ha! So then the answer is no, there isn't a ready made function/method to pull out the timing and voltage, like how it was done in osci.cpp. That's all I wanted to know. (Not whether you would write it for me! Only trying to save time!) Thanks!
/Jill
|
You misunderstood. The answer is yes. drs_exam.cpp contains already code to write to an ASCII file. If you actually look into the file, you see:
f = fopen("data.txt", "w");
...
b->GetTime(0, b->GetTriggerCell(0), time_array);
...
b->GetWave(0, 0, wave_array[0]);
...
fprintf(f, "%5.2f %6.2f\n", time_array[i], wave_array[0][i]);
which actually pulls out the timing and voltage and writes it to the file.
|
|
|
|
523
|
Thu May 12 05:18:47 2016 |
Yu | Problem For Software Download | Hi
I can't download the software for windows on this website 'www.psi.ch/drs/software-download', there is some mistake when i click on download.
If convenient, can you send the software Version 5.0.5 for windows to me? My E-mail address is 'yuhaiyang421@163.com'. Thank you!
Best Regards
Yu |
153
|
Wed Feb 15 18:08:13 2012 |
Yuji Iwai | Evaluation Board v4 Trigger/Clock Connectors | Quick question - what type of connectors are used for the trigger and clock in/out on the v4 eval board? |
219
|
Fri Feb 22 11:46:17 2013 |
Yury Golod | DRS4 trigger, different polarity |
I need to synchronize two signals. These signals have a different polarity.
I can set triggers on different levels. But I can't set different polarity of triggers.
Now I can set (T1 and T2), I need to set (T1 and (not T2))
Is it possible?
d->SetTriggerLevel(-0.4,0.4,0.0,0.0,false);
d->EnableTrigger(1, 0); // Enable trigger
d->SetTriggerSource(1<<8 | 1<<9); // T1 and T2
file DRS.cpp:
int DRSBoard::SetTriggerLevel(double voltage1,double voltage2, double voltage3,double voltage4,bool negative)
{
…
SetDAC(fDAC_TLEVEL1, voltage1/2 + 0.8);
SetDAC(fDAC_TLEVEL2, voltage2/2 + 0.8);
…
|
628
|
Sun Aug 27 12:44:16 2017 |
Yuvaraj Elangovan | DRS4 version Support | Hi i am using DRS4 Eval Board V2, How to acquire data to a bin file using it. |
358
|
Mon Jul 14 19:03:05 2014 |
Yves Bianga | change cascading from 1024 to 2048 bins for each input channel | Hello,
I want to ask whether it is possible to modify a Evaluation Board 5.0 from 1024 to 2048 cells for each of the 4 input channels.
On the rev50 manual at page 31 I found an option to connect the 4 unused channels by setting 8 solder bridges.
The source code for controlling the board seems already prepared for 2048 bins, since version 5.0.2.
So my first question: Are there any implementations in the VHDL Code to control the write shift register in 2048 mode? / Is there a necessity for a newer/other VHDL Code or is it already implemented?
And the second: Are there any other modifications except the eight zero Ohm resistors and maybe changes in the FPGA code?
My board info output:
Mezz. Board index: 0
DRS type: DRS4
Board type: 9
Serial number: 2451
Firmware revision: 21260
Thanks a lot!
Yves Bianga |
175
|
Tue Aug 28 17:52:45 2012 |
Zach Miller | DRS-4.0.0 DOScreen.cpp | Hi,
I found an old thread regarding a fix for DOScreen.cpp for DRS-3.1.0, that fixes an "ambiguous overload problem." Currently when I attempt to build the drs-4.0.0, I get this similar error:
src/DOScreen.cpp:332:39: error: call of overloaded ‘Append(int)’ is ambiguous
This section of code is different than what the previous thread was correcting, and though I attempted to apply the logic of the old thread, I haven't fixed this yet.
The following is the code for that section:
-----
329 for (int i=0 ; i<5 ; i++)
330 if (tc & (1<<(i+8))) {
331 if (i < 4)
332 wxst1.Append(wxT('1'+i));
333 else
334 wxst1.Append(wxT('E'));
335 wxst1.Append(wxT('&'));
336 }
337 if (wxst1.Length() > 0)
338 wxst1 = wxst1.Left(wxst1.Length()-1);
339 wxst1.Append(wxT(')'));
------
I've attempted a few fixes, but unfortunately, my understanding of the code is not great, and I haven't managed to fix this yet. Any help would be appreciated.
Thanks,
Zach Miller |
177
|
Wed Aug 29 16:42:42 2012 |
Zach Miller | DRS-4.0.0 DOScreen.cpp |
Stefan Ritt wrote: |
Zach Miller wrote: |
Hi,
I found an old thread regarding a fix for DOScreen.cpp for DRS-3.1.0, that fixes an "ambiguous overload problem." Currently when I attempt to build the drs-4.0.0, I get this similar error:
src/DOScreen.cpp:332:39: error: call of overloaded ‘Append(int)’ is ambiguous
This section of code is different than what the previous thread was correcting, and though I attempted to apply the logic of the old thread, I haven't fixed this yet.
The following is the code for that section:
-----
329 for (int i=0 ; i<5 ; i++)
330 if (tc & (1<<(i+8))) {
331 if (i < 4)
332 wxst1.Append(wxT('1'+i));
333 else
334 wxst1.Append(wxT('E'));
335 wxst1.Append(wxT('&'));
336 }
337 if (wxst1.Length() > 0)
338 wxst1 = wxst1.Left(wxst1.Length()-1);
339 wxst1.Append(wxT(')'));
------
I've attempted a few fixes, but unfortunately, my understanding of the code is not great, and I haven't managed to fix this yet. Any help would be appreciated.
Thanks,
Zach Miller
|
Just put (char) in front of wxT(...), like
if (tc > 0) {
wxString wxst1, wxst2;
wxst1.Append((char)wxT('('));
for (int i=0 ; i<5 ; i++)
if (tc & (1<<i)) {
if (i < 4)
wxst1.Append((char) (wxT('1'+i)));
else
wxst1.Append((char) wxT('E'));
wxst1.Append((char) wxT('|'));
}
for (int i=0 ; i<5 ; i++)
if (tc & (1<<(i+8))) {
if (i < 4)
wxst1.Append((char) (wxT('1'+i)));
else
wxst1.Append((char) wxT('E'));
wxst1.Append((char) wxT('&'));
}
if (wxst1.Length() > 0)
wxst1 = wxst1.Left(wxst1.Length()-1);
wxst1.Append((char) wxT(')'));
|
Hi Stefan,
Thanks for the response. I have tried that and it fixes all the lines except the ones that have:
wxst1.Append((char) (wxT('1'+i)));
Those lines still don't compile for me. I've also tried: wxst1.Append((char) (wxT('1'+(char)i))); and wxst1.Append((char) (wxT((char)'1'+i))); as well as a few other combinations of (char) and Append.
I get the same error of: "Call of overloaded "Append(int)" is ambiguous."
Any other help would be greatly appreciated. Thanks!
-Zach |
179
|
Wed Aug 29 16:57:49 2012 |
Zach Miller | DRS-4.0.0 DOScreen.cpp |
Stefan Ritt wrote: |
Zach Miller wrote: |
Stefan Ritt wrote: |
Zach Miller wrote: |
Hi,
I found an old thread regarding a fix for DOScreen.cpp for DRS-3.1.0, that fixes an "ambiguous overload problem." Currently when I attempt to build the drs-4.0.0, I get this similar error:
src/DOScreen.cpp:332:39: error: call of overloaded ‘Append(int)’ is ambiguous
This section of code is different than what the previous thread was correcting, and though I attempted to apply the logic of the old thread, I haven't fixed this yet.
The following is the code for that section:
-----
329 for (int i=0 ; i<5 ; i++)
330 if (tc & (1<<(i+8))) {
331 if (i < 4)
332 wxst1.Append(wxT('1'+i));
333 else
334 wxst1.Append(wxT('E'));
335 wxst1.Append(wxT('&'));
336 }
337 if (wxst1.Length() > 0)
338 wxst1 = wxst1.Left(wxst1.Length()-1);
339 wxst1.Append(wxT(')'));
------
I've attempted a few fixes, but unfortunately, my understanding of the code is not great, and I haven't managed to fix this yet. Any help would be appreciated.
Thanks,
Zach Miller
|
Just put (char) in front of wxT(...), like
if (tc > 0) {
wxString wxst1, wxst2;
wxst1.Append((char)wxT('('));
for (int i=0 ; i<5 ; i++)
if (tc & (1<<i)) {
if (i < 4)
wxst1.Append((char) (wxT('1'+i)));
else
wxst1.Append((char) wxT('E'));
wxst1.Append((char) wxT('|'));
}
for (int i=0 ; i<5 ; i++)
if (tc & (1<<(i+8))) {
if (i < 4)
wxst1.Append((char) (wxT('1'+i)));
else
wxst1.Append((char) wxT('E'));
wxst1.Append((char) wxT('&'));
}
if (wxst1.Length() > 0)
wxst1 = wxst1.Left(wxst1.Length()-1);
wxst1.Append((char) wxT(')'));
|
Hi Stefan,
Thanks for the response. I have tried that and it fixes all the lines except the ones that have:
wxst1.Append((char) (wxT('1'+i)));
Those lines still don't compile for me. I've also tried: wxst1.Append((char) (wxT('1'+(char)i))); and wxst1.Append((char) (wxT((char)'1'+i))); as well as a few other combinations of (char) and Append.
I get the same error of: "Call of overloaded "Append(int)" is ambiguous."
Any other help would be greatly appreciated. Thanks!
-Zach
|
wxst1.Append((char) (wxT((char)('1'+i)))); maybe ???
|
Aha!
wxst1.Append((char) (wxT('1'+i)));
That one actually works as you initially thought, but you my editor was being picky of (char)wxt... instead of (char) (wxt....). For some reason, it has to have the extra set of parentheses around wxt(). Thank You! |
180
|
Thu Oct 4 20:50:36 2012 |
Zach Miller | DRS5 | Hi,
Our group had previously heard that a "DRS-5.0" might be on the horizon and that it may have ethernet capabilities as well as 16-input channels (we heard this when ordering the DRS-4). Is this still in the works and accurate information? If so, is there a rough estimate to the "release date?"
Thanks for your time,
Zach Miller |
182
|
Thu Oct 4 21:07:27 2012 |
Zach Miller | DRS5 |
Stefan Ritt wrote: |
Zach Miller wrote: |
Hi,
Our group had previously heard that a "DRS-5.0" might be on the horizon and that it may have ethernet capabilities as well as 16-input channels (we heard this when ordering the DRS-4). Is this still in the works and accurate information? If so, is there a rough estimate to the "release date?"
Thanks for your time,
Zach Miller
|
You mix up two things: The DRS5 chip is a new device with improved samling speed (10 GSPS) and lower dead time. This chip might come in 2-3 years. The 16-input board you mentioned is a DAQ board based on the DRS4 chip. This board well be operational beginning of 2013 as a prototype. It is not clear however at this point in which way this board will be made available for public. Maybe we will license this to industry. The design is however pretty much defined: 16 channels with gain 0.1-100, 1 GHz Bandwidth, Gigabit Ethernet output, and multi-board capabilities. Trigger on each channel with logical combinations. 80 MSPS continuous sampling (in addition to the DRS4 sampling). Each channel can be biased 0-210 V for SiPMT or APD power. A 19" 3 HE crate will host 16 boards with 256 channels.
/Stefan
|
Thanks, Stefan. That was the information we were looking for.
Cheers.
-Zach |
136
|
Mon Oct 31 09:15:02 2011 |
Zhongwei Du | How to link PMT | I want to measure the signal from PMT . But it is a current signal, should i just put a series resistance, or use a amplifier to convert it to voltage signal before drs4?
Can you give me some advice ? |
151
|
Sat Feb 4 11:59:26 2012 |
Zhongwei Du | what sort of detectors for physical experiment the DRS4 used? | Hello.
We are designing a waveform sampling board for Si strip array detector ,whose rise time is less than 10 ns, which makes we doubt whether the DRS4 can do more accurate than traditional charge integral circuit for charge measuring.
So we need to know what sort of detectors for physical experiment the DRS4 has been used in?
Can you give me some information? For example, Si strip array detector or CsI scintillator r ball detector ? PMT or APD ? |
200
|
Tue Dec 4 09:24:22 2012 |
Zhongwei Du | Question of drs4 using | When Denable and Dwrite is high , the voltage of PLLOUT is 0 V. And the Dtap is turn high with no delay when the Denable turns high.
After power up and configuration(the WSR,WCR,CR are all set to 11111111), the readout data is no change whenever the input analog signal and rofs,bias,oofs changes. I have test useing the DAC to supply the Dspeed voltage, and change a new DRS4 chip, but all is the same. The readout data is strange : the first about 100 cells is rise or fall and the last 900 cells is out of the range of ADC.
So how should I do for debugging the drs4 now. |
|