This page answers frequently asked questions about the Pixie-4 Express (Pixie-4e). If you find no good answer to solve the current problem you have with the Pixie-4e, please contact support @xia.com.

Where can I get help for the Pixie Viewer interface

  • Each Pixie Viewer Control Panel has a "Help" button, which directly displays the help topic for that panel.
  • You can use IGOR's built-in help browser to access the Pixie Viewer specific help file by selecting Help -> Help Topics from the top menu bar. Choose "Pixie-Help" in the popup menu on the left, and select the appropriate help topic from the list on the right.
  • The basic setup is explained in the Pixie User's manual (sections 2 and 3)
  • Email us at support @xia.com.

ADC traces in Oscilloscope look very noisy (500 MSPS version)

The 500 MSPS ADCs used in the high speed version of the Pixie-4e are actually two 250 MSPS ADC cores on the same IC, phase shifted by 180 degrees. The two cores have to be matched in gain and offset to avoid artifacts in the waveforms (systematic difference between odd and even samples). The [Calibrate] button in the oscilloscope panel starts a calibration routine to make that match. It is normally valid until the next time the module is rebooted or power cycled, but there can be small drifts over time and temperature, so occasional re-calibration is recommended.

Which dll or xop to use -- 32bit or 64bit?

The Pixie-4e software C library is compiled separately for 32bit and 64bit Windows systems. The compiled binaries -- dll files for LabView or C programs, xop files for Igor Pro -- are placed in two separate folders in the software distribution. For 32bit Windows, use the files from the driver\x86 folder. For 64 bit Windows, use the files from the drivers\amd64 folder. The LabView version does not matter (e.g.use the 64 bit dll with 32bit LabView on a 64bit Windows PC).

The first two digits on the parameter C_LIBRARY_BUILD (in hexadecimal representation) indicate "32" when the 32bit dll/xop is used and "64" when the 64 bit dll/xop is used. The parameter is shown under top menu XIA > About Pixie Viewer > C-library build in the Pixie Viewer (Igor Pro) interface.

The dll/xop relies on driver files for the low level PCI communication, which are also OS specific. These are normally automatically selected in the HW installation process. Point Windows to "Pixie500e.inf" in a manual installation.

What are the units for the trigger threshold

  • Simple Answer:
    The trigger threshold corresponds to ¼ of the pulse height in ADC steps, e.g. with a threshold of 20, triggers are issued for pulses shown in the Oscilloscope with amplitudes of 80 or more.
    This is true for square pulses, slower rising pulses behave somewhat different
  • Elaborate answer:
    The trigger threshold is compared to the output of the trigger filter; when the filter output exceeds the threshold, a trigger is issued. The filter is used to suppress noise and so to avoid triggering on small spikes in the signal. The trigger filter output is essentially a sum of length "trigger filter rise time" over the incoming ADC data (minus a second sum of the same length delayed by the "trigger filter flat top") divided by the filter length. When there is no pulse, the two sums are approximately equal and the filter output is near zero. 
    For a fast rising pulse that goes from baseline B to maximum M in one sample (B, B, ... B, B, M, M, M, M, M, ...) the output for a filter with length 5 is (0, 0, ... 0, 0, M/5, 2M/5, 3M/5, 4M/5, 5M/5, 5M/5 5M/5, ... ). A threshold of TH = M/4 will trigger on the 5th sample of the pulse (4x TH = M >= 5M/5). A threshold larger than M/4 will never trigger. A lower threshold will trigger earlier.
    For a slow rising pulse, the filter output increases correspondingly slower and the trigger is issued at a later time. If the maximum is maintained for fewer samples than the filter length, the average over 5 samples is smaller than the maximum, and so the effective threshold is higher than in the previous example.
    For a very small and slow rising pulse, the second (minus) sum will reach the rising edge of the pulse before the trigger is issued. That means that the filter output is the difference of two averages taken with distance "trigger filter flat top" on the rising edge, in effect a differentiation of the pulse. A trigger is issued if the slope of the rising edge is sufficiently large. To counter this effect, increase the "trigger filter flat top" -- it will sharpen the low energy cut off in the MCA spectrum.

What is the largest/smallest pulse amplitude for the Pixie-4(e)?

The specification's maximum amplitude of 3.5V is a safety limit, voltages beyond that may damage the input stage. (Depending on the termination and attenuation, you could go higher in some cases. For example, if you use the 1/8 attenuation setting, the signal gets divided by 8 before it reaches the input stage, and so 10V may be ok. But it is not recommended to operate this way.)

The voltage of the pulse that is equivalent to the highest bin in the spectrum depends mostly on the gain, and also on pulse shape and tau. Nominally, the computation is scaled such that a square pulse that spans the full ADC range in the oscilloscope is mapped to bin 32K-1. With decaying pulses, the integral over the falling pulse is less than for a square pulse, but if the tau parameter is set correctly, then that difference is accounted for in the calculation, and a pulse with a _maximum_ amplitude of the full ADC range is mapped to bin 32K-1. If tau is set incorrectly, there will be a shift in bin.
Similarly, the finite rise time of a pulse affects the bin position, but at a smaller magnitude.
The "full range of the ADC" is 2V per manufacturer. However, between Pixie-4(e) input and ADC , there is an analog gain. So for example, with a gain of 5, an input pulse with amplitude 2V/5 = 0.4V would span the full ADC range and be binned into bin 32K-1. (This ignores the 10-20% digital gain component, which is applied to the energy calculation.)
In addition, you have to consider the termination: If the detector output has 50 Ohm series termination, and the Pixie-4(e) is set for 50 Ohm termination to GND, the two Rs form a voltage divider and the effective amplitude is 50% of the detector output. (In High Z termination it's close to 100%). As the output impedance is outside our control, we can not factor that into our gain calculation.

The smallest possible input voltage depends again on the gain and then also the trigger settings -- relative to the noise. If the goal here is to detect a small pulse so it can be processed, it has to be large enough to trigger, but at the same time the noise must be lower than the effective trigger threshold. It's quite impossible to give a fixed number in mV for that. But, as an example, the typical noise in a Pixie-4e (without detector) is ~10 ADC steps (of 64K). That corresponds to ~0.3mV at the ADC or 0.06mV at the input with gain 5. A signal twice as large should trigger reliably. Even smaller signals should be able to be detected if the trigger filter is averaging over a sufficient time window.

Error messages

Booting errors

  • Problem:
    When clicking the "Start system" button, the history window or msg file says
    *INFO* (Pixie_Scan_Crate_Slots):PCI bus is EXPRESS type
    *INFO* (Pixie_Scan_Crate_Slots_GN): Device 0, Board version= 0xA5E1, S/N = 226
    *ERROR* (Pixie_Scan_Crate_Slots_GN): Could not find device with S/N=122. Check list of serial numbers.
    *ERROR* (Pixie_Boot_System): Scanning crate slots unsuccessful, error -9.

    Solution: Check the serial numbers entered in the Start Up Panel and try again. Sometimes the serial number is read incorrectly as "256" from the module in a first attempt to boot the module. In the example above, 226 is what the PC read from the module, 122 is what the user entered in the Start Up Panel.
     
  • Problem:
    When clicking the "Start System" button, an Igor Pixie Viewer popup panel says
    function execution error, system error -8
    The history window or msg file says
    *ERROR*(PIXIE4E_FPGApostboot_IO): SDRAM INIT_DONE is not set, APP_SDRAM_STATUS = 0x0
    *ERROR* (PIXIE4E14500_ProgramFPGA(): PIXIE4E_FPGApostboot_IO failed
    *ERROR* (Pixie_Boot): downloading FiPPI configuration to module 1 was not successful.

    This indicates the boot process did not complete, the SDRAM was not correctly initialized.
    Solution: Reboot the module(s). Usually it works properly in a second try.

Run time errors

  • Problem:
    During the list mode data acquisition, the history window or msg file says
    *WARNING* (Write_DMA_List_Mode_File): Spill 0, Mod 0: total=2792, short=1, ...
    This indicates the data error check routine found a transmission error in the list mode data stream. Some are false positives
    Solution:
    When viewing or parsing the list mode events, check bit 15 of the event info word which flags events as bad. Sometimes time stamps or energies may have a bit flipped.
    If the box "Print debug messages (QC error)" is checked in the Expert Panel (F8), more detail will be reported during the run. When parsing a file after the run with this option, the bad event number(s) will be listed
     
  • Problem:
    An Igor Pixie Viewer popup panel says
    Failed to stop run. Please reboot the Pixie modules.
    The history window or msg file says
    *ERROR* End run timed out
    This indicates the modules did not finish the data acquisition properly.
    Solution:
    First, reboot the modules.
    Second, to avoid recurrence, check the data readout settings in the Expert Panel (F8). Some PC don't support the PCIe interrupts from the Pixie module and so the box "No interrupts (Igor polls module" should be checked. In some cases, the box "Bypass SDRAM" should be changed as well. (This option uses a smaller memory in the FPGA to buffer list mode data; throughput to PC memory is higher but it is somewhat more liklely to loose data during bursts of quickly following pulses)

Other errors

  • Problem:
    An Igor Pixie Viewer popup panel says
    Failed to stop run, potentially fatal error communicating to module.
    The history window or msg file says
    *ERROR* (Pixie_Boot): downloading FiPPI configuration to module %d was not successful.
    Encountered potentially fatal error communicating to module, PC may lock up.
    Save all open files now, then try a PLL reset for a chance to recover

    This indicates PCIe communication with the Pixie module is locked.
    Solution:
    First, save open files. Then use the "Reset PLL" button in the Expert Panel (F8) for an attempt to recover.
    Second, to avoid recurrence, check the data readout settings in the Expert Panel (F8). Some PC don't support the PCIe interrupts from the Pixie module and so the box "No interrupts (Igor polls module" should be checked. In some cases, the box "Bypass SDRAM" should be changed as well. (This option uses a smaller memory in the FPGA to buffer list mode data; throughput to PC memory is higher but it is somewhat more liklely to loose data during bursts of quickly following pulses)