The Pixie-Net is a multi-channel digital spectrometer for radiation detectors in desktop format with integrated processor, networking and USB resources. No PC is required for operation. Advantages include:

  • Compact desktop or OEM card formats
  • Embedded processor with Linux OS, – no PC required
  • Web Server interface for remote operation
  • High Performance specification: 250 MSPS at 12-bit resolution
  • Optional IEEE 1588 PTP time synchronization over network
SKU: PIXIE-NET Categories: , ,
User's ManualManualDownload
Quick Start GuideManualDownload
Pixie-Net APIAPI/GUIUbuntuARMDownload
Disk ImageOS ImageN/AN/ADownload
Rev A - StandardBootfilesUbuntuARMDownload
Rev B - StandardBootfilesUbuntuARMDownload
Rev B - Precision Time ProtocolBootfilesUbuntuARMDownload
Rev B - Pulse Shape AnalysisBootfilesUbuntuARMDownload


How do I know what Pixie-Net Revision I have?


Serial Number Range


0 – 1011


1012 +

How do I upgrade my Pixie-Net Bootfiles?
  1. Download the software zip file (PixieNet_Vxxx.zip) and one of the bootfiles zip files. (If you did not purchase the PSA or PTP variant, use the _STD variant). Both sets of files work together, so they must be from the same version.

  2. Extract the software zip file and copy (overwrite) the contents to /var/www on the Pixie-Net’s SD card. This is done most easily when sharing this folder via SMB over the network, i.e. with the Pixie-Net powered up and connected to the network, type \\ (or equivalent IP number for your Pixie-Net) into the address bar of the Windows Explorer.  You should see one shared folder (PNvarwww) which is the shared name of /var/www on the Pixie Net . Windows will ask for login credentials if you open this folder. 

  3. Extract the bootfiles zip file and copy (overwrite) the contents to the FAT partition of the Pixie-Net’s SD card. This is done most easily by inserting the SD card into a Windows PC. Windows will detect it as a new removable drive and offer to show you the contents. This new drive is the FAT partition of the SD card. (Do not let Windows “scan and fix” the drive.)


You can also insert the SD card into a Linux computer which gives you direct access to the “boot” partition of the SD card.

Is it possible to increase the number of samples for the gettraces/cgitraces functions?

This can be easily modified by changing the respective C functions. For example, in cgitraces.c, line ~95, there are 4 loops that read the samples from the 4 channels. You can either increase the number of samples, or add delays between samples. (Instead of single samples taken after delays, one could also build some kind of average). After the code change, just type “make” to recompile. The web page displaying the ADC samples is not particular to the number of samples in the csv files.

Can the Pixie-Net be directly connected to a PC (not through a network router)?

While this may sound like the most simple and straightforward setup, it’s usually not a good solution. You would normally not connect 2 PCs directly through their Ethernet ports, and the Pixie-Net is much like its own PC.

Unless the PC has multiple Ethernet ports, it will lose connection to the rest of the world if you use its port to directly connect to a Pixie-Net. The Pixie-Net will not be able to synchronize time and date unless the PC provides that service, and will start with a date in 1970 after every reboot.

If the Pixie-Net can not be connected to the facility’s network due to administrative restrictions, we recommend setting up a small dedicated network with a local router (similar to a home network for DSL users).

You can connect to the Pixie-Net through the USB-UART port for a terminal login. (See section 2.2 of the manual.) This allows changing settings and start/stop run operations. No network related functions will be available to view or transfer files, but data transfers can be made with an USB stick.

It is possible to make a direct Ethernet connection between the Pixie-Net and a host PC. This requires reconfiguration of the network settings on both sides. See section 2.8 in the user manual for Windows or see here for an example in Linux.
However, unless the PC has multiple Ethernet ports, it will lose connection to the rest of the world if you use its port to directly connect to a Pixie-Net. The Pixie-Net will not be able to synchronize time and date unless the PC provides that service, and will start with a date in 1970 after every reboot.

The Pixie-Net becomes very warm. Is something wrong?

The Pixie-Net dissipates around 10W in a small space. The enclosure acts as a heat sink and can become noticeably warm. It is normal to feel warm, but should not be too hot to touch. Adequate ventilation is recommended — not necessarily a fan blowing on the Pixie-Net, but don’t put it in an enclosed space either.

The Pixie-Net has 2 thermal sensors built in, one for the ADC board and one for the Zynq board. Their reading is reported by the progfippi function and in the run statistics webpage. Typical values for operating in an air conditioned lab is around 70 degrees Celsius. The ICs inside the Pixie-Net are rated for operation to 85 degrees or higher.

What is the Pixie-Net input range?

The input range is always a bit tricky, since one has to account for gain and termination.

First, gain: Per specs, the input range is “from 0V to (2V/analog gain)” . The ADC accepts 0-2V, but there is an analog gain stage in front of it. The analog gain is 2 or 5 (parameter ANALOG_GAIN in the settings file). So at gain 5, the range on the Pixie-Net’s SMA connector is 0-0.4V.

Second, termination. The 50 Ohm termination on the Pixie-Net and the (assumed) 50 Ohm series termination on the signal source form a resistive divider. At the Pixie-Net’s SMA connector, you have therefore only half the amplitude of the signal source. So a signal from 0-0.8V at the source maps to 0-0.4V at the SMA and, with gain 5, to 0-2V at the ADC. The DC offset just shifts the signal up or down.

Which parameters influence the peak position in the MCA spectrum?

There are several parameters. Listed in order of signal processing, they are:

  1. MCSRB_TERM01_01, MCSRB_TERM23_02 control 50 Ohm termination vs “high Z” termination. Assuming a 50 Ohms series impedance of the signal source, 50 Ohm termination will divide the signal amplitude by a factor 2 (and often reduce reflections and ringing in the signal).

  2. ANALOG_GAIN is the amplification of the incoming signal in the analog stage after termination and before the ADC. It is used to ensure that the ADC’s input range of 0-2V matches the signal amplitude (after termination and analog gain).

  3. TAU is the decay time for the falling edge of the pulse. It is used in the pulse height computation to correct for overlapping pulses and for decay of the signal during the filter sums. The TAU parameter is used in a factor exp(-t/TAU) in the pulse height computation, so changing TAU will change the computed pulse height and therefore the peak position in the MCA spectrum. However, It is critical for best energy resolution that TAU matches the decay time of the pulse, especially at high rates from a detector (with random time between pulses).

  4. DIG_GAIN is an arbitrary factor that is applied to the computed pulse height. While the previous parameter are constrained by requirements to bring the signal into th ADC range and match the decay time, DIG_GAIN can be freely chosen (any positive floating point number).

  5. BINFACTOR controls the mapping of the computed pulse height into the available MCA bins. This rarely needs changing and is usually not listed in settings.ini, only in defaults.ini. Pulse heights are computed as 16bit integers, 0-64K. The MCA has 32K bins. With a default BINFACTOR of 1, pulse height values are downshifted by 1 bit (divided by 2) to match the full MCA range of 0-32K. BINFACTOR 2,3 etc downshift pulse height values by 2,3, etc bits (divide by 4, 8, etc) to map the full pulse height range into an MCA spectrum of 16K, 8K, etc. This is sometimes useful to better show peaks in cases of low resolution detectors with low count rates.

Why do the Pixie-Net web pages not display correctly in [my favorite browser] ?

Some of the Pixie-Net web pages rely on freely available java scripts. We do not control the contents and compatibility of those scripts, nor can we try out the Pixie-Net pages on all possible browsers. The web pages are currently only tested with Firefox.

The Igor Pro interface for the Pixie-Net starts with a compile error. What is wrong?

The Pixie-Net Igor Pro interface relies on Igor’s “very dumb terminal” functions to communicate over the serial port. Make sure the VDT functions are loaded in Igor: The file VDT2.xop must be present in the Igor Extensions folder. (Usually C:\Program Files (x86)\WaveMetrics\Igor Pro Folder\Igor Extensions)

How can I change the Pixie-Net's MAC address?

The Pixie-Net boot process relies on the U-boot utility, which has a simple command-line interface to modify basic settings and environment variables. The environment variables are stored on local flash memory, not the SD card.

U-boot’s shell is reached by typing any character on the UART console immediately after U-boot starts. In that shell, to change the MAC address to 00:11:22:33:44:55, type:

1xillinux-uboot> set ethaddr 00:11:22:33:44:55
2xillinux-uboot> saveenv
3Saving Environment to SPI Flash...
4Erasing SPI flash...Writing to SPI flash...done

For more info, please see the xillybus manual, section 4.3.4. 

How can I change to a larger SD card?

The procedure would be to first clone the old/small card to the new/large card, then resize the file system. For the latter, please see the xillybus manual, section 4.4.1.

What's the relationship between findsettings and progfippi?

The typical startup sequence is to run ./progfippi pretty much as soon as the modules is powered up to initialize all parameters in the pulse processing logic. Then, with detectors connected, run ./findsettings to resolve a possible random channel swap and to find the offsets. If you prefer to keep the original offsets from settings.ini, run ./progfippi again to overwrite the changes that ./findsettings made to the offsets, else update settings.ini with the offsets found by ./findsettings to keep applying the new offsets in all future executions of ./progfippi.

Every time there is a change in settings.ini, run ./progfippi to apply the changes to the pulse processing logic.


  • The inversion option in settings.ini must be set correctly (pulses appear as fast rise slow decay) for ./findsettings to find the offsets

  • ./findsettings changes the offset parameters in the pulse processing logic, but not in the settings file settings.ini.

  • The offsets found by ./findsettings should be good for all future operations with the detector (unless it drifts). If settings.ini has been updated with those offsets once, it does not need to be edited (unless the detector drifts). However, ./findsettings still must be run once after power up to resolve the possible random channel swap. 

  • ./findsettings should be executed again after changes in analog gain and input termination as this likely affects the offsets. 

Where can I find a good summary of essential Linux commands?

Please see here, Appendix A