Introduction: RadSense - a Rad SolidState Gamma Radiation Detector

Picture of RadSense - a Rad SolidState Gamma Radiation Detector
"All science is either physics or stamp collecting." - Ernest Rutherford

RadSense : Custom electronics to make radiation detection totally RAD!

Building a "semi-directional" radiation and/or cosmic-ray detector is not an easy feat. In vue of this I aimed to design, construct, and test a portable and versatile Silicon photo-diode Radiation Detector suitable for the 5keV-10MeV detection range to accurately quantify low energy gamma-rays emanating from radioactive sources. In this (long) Instructables, I'll first explain briefly some theoretical concepts underlying the operation of the detector and core properties. I'll then take you through the different tests undertaken and the relevant research investigated during the multiple design iterations.

So, how do we plan to detect the radiation? With semi-­conductor radiation detectors! Or, more precisely, using photodiodes. We basically substitute Geiger­ Mueller tubes with PiN photodiodes to detect alpha and gamma radiation particles. Let's start with a little background science, before we go on to the construction :)

Step 1: Introduction

Picture of Introduction
NOTE - pay attention if you don't want to become a radio-active zombie: With radiation sources precaution is key - it is not safe to be around sources of high radiation and this device should NOT, in any circumstances, be used as a reliable way of detecting harmful radiation in the environment.

Spark chambers, Geiger's, and Photo-multiplier tube detectors... etc all these types of detectors are either cumbersome, expensive, or use high-voltages to operate. There exist few maker friendly variations of the latter, including these: Sparkfun and Adafruit. There are other methods for detecting radiation, such as solid-state detectors, for example Germanium detectors. However these are also expensive to produce and require special equipment, such as liquid nitrogen cooling. On the contrary, solid-state detectors are very cost effective. They are widely used and play an important role in high-energy particle physics, medical physics and astro-physics.

My goal for this Instructables project was to design a portable solid-state radiation detector capable to accurately quantify low energy gamma-rays emanating from radioactive sources. The system consists of an array of reverse biased large surface area silicon PiN diodes, which output to a charge pre-amplifier, a differentiator amplifier, a discriminator, and a comparator. The output of all successive stages are converted to digital signals for analysis.

I start by describing the principles of silicon particle detectors, PiN diodes, reverse biasing and other important associated parameters. I then explain the different investigations that were conducted, and the choices made. At the end, introduce the final prototype and the tests I did.

Step 2: Technical Primer

Picture of Technical Primer

(Figure legend: Ionizing radiation forms electron-hole pairs in the intrinsic region resulting in a charge pulse.)

  • SolidState Detectors

In many radiation detection applications, the use of a solid detection medium is of great advantage (alternatively called semiconductor diode detectors or solid-state detectors). Silicon diodes are the detectors of choice for a large number of applications, especially when heavy charged particles are involved. If the measurement of energy is not required, the excellent timing characteristics of silicon diode detectors permit an accurate counting and tracking of charged particles. For the measurement of high-energy electrons or gamma-rays, detector dimensions can be kept much smaller than alternatives. The use of semiconductor materials as radiation detectors also results in a larger number of carriers for a given incident radiation event, and therefor a lower statistical limit on energy resolution than is possible with other detector types. Consequently, the best energy resolution achievable today is realized through the use of such detectors. Here, the fundamental information carriers are electron-hole pairs created along the path taken by the charged particle through the detector (see figure above). By collecting these electron-hole pairs, measured as charges at the electrodes of the sensor, the detection signal is formed and it proceeds to amplification and discrimination stages. Additional desirable features of solid-state detectors are a compact size, relatively fast timing characteristics, and an effective thickness (*). As with any detector there are drawbacks, including the limitation to small sizes and relatively high susceptibility of these devices to undergo performance degradation from radiation-induced damage.

(*: Thin sensors minimize multiple scatterings, whereas thicker sensors generate more charges when a particle traverses the substrate.)

  • P−i−N diodes

Each type of radiation detector produces a characteristic output after interaction with radiation. Interactions of particles with matter are distinguished by three effects: the photo-electric effect (*1), Compton scattering (*2), and pair-production (*3). The basic principle of a planar silicon detector is the usage of a PN junction in which particles interact via these three phenomena. The simplest planar silicon sensor consists of a P doped substrate and a N-implant at one side. Electron-hole pairs are created along a particle trajectory. In the area of the PN junction there is a region free of charge carriers, called the depletion zone. The electron-hole pairs created in this region are separated by a surrounding electrical field. Therefore, the charge carriers can be measured at either the N or P -side of the silicon material. By applying a reverse-bias voltage to the PN junction diode, the depleted zone grows and can cover the complete sensor substrate. You can read more about this here: Wikipedia article PN junction.

A PiN diode has an intrinsic i region, between the P and N junctions, flooded with charge carriers from the P and N-regions. This wide intrinsic region also means the diode has a low capacitance when reverse biased. In a PiN diode, the depletion region exists almost completely within the intrinsic region. This depletion region is much larger than with a regular PN diode. This increases the volume where electron-hole pairs can be generated by an incident photon. If an electric field is applied to the semiconductor material, both the electrons and holes undergo a migration. The PiN diode is reverse biased so that the entire i-layer is depleted of free carriers. This reverse bias creates an electric field across the i-layer so that the electrons are swept to the P-layer and the holes, to the N-layer (*4). This flow of carriers in response to a pulse of radiation, constitutes the measured current pulse. To maximize this current, the i-region must be as large as possible. The properties of the junction are such that it conducts very little current when biased in the reverse direction. The P-side of the junction becomes negative with respect to the N-side, and the natural potential difference from one side of the junction to the other is enhanced. Under these circumstances, it is the minority carriers which are attracted across the junction and, because their concentration is relatively low, the reverse current across the diode is quite small. When a reverse bias is applied to the junction, virtually all the applied voltage appears across the depletion region, because its resistivity is much higher than that of the normal N or P-type material. Indeed, the reverse bias accentuates the potential difference across the junction. The thickness of the depletion region is also increased, extending the volume over which radiation-produced charge carriers are collected. Once the electric field is sufficiently high, the charge collection becomes complete and the pulse height no longer changes with further increases in the detector bias voltage.

(*1: Electrons in the bound state of an atom are knocked out by photons when the energy of the incident particles is higher than the binding energy. ; *2: Interaction involving the scattering of a particle off a free or loosely bound electron, and the transfer of some of the energy to the electron. ; *3: Production of an elementary particle and its anti-particle. ; *4: Electrons are drawn in the opposite direction to the electric field vector, whereas holes move in the same direction as the electric field.)

Step 3: The Prototype

Picture of The Prototype

Here you can see the prototype version of the "detector" that I constructed, debugged and tested. However, because it had some bugs and was not functioning optimally, I decided to omit it from this Instructables to avoid Makers building a detector full of flaws. These initial design iterations with another sensor were performed with the BPW-34 photodiode; a famous sensor if you google around - there are even a few related Instructables that use it for the very purpose of detecting radiation such as this excellent one:

I settled for a larger area sensor, namely, the X100 − 7 from First Sensor. For testing purposes and modularity I designed three different portions, stacked upon each other:

  1. Sensors and amplification (low noise charge amplifier + pulse shaping amplifier)
  2. Discriminators and comparator
  3. DC/DC regulation and DAQ.

Each stage was assembled, validated, and tested separately as you will see in the next step.

Step 4: Design Specs & Calculations

Picture of Design Specs & Calculations

(Image legends: (1) Specifications of the X100-7 photodiode: 100mm^2 active area, 0.9mm depleted zone, light blocking coating, low dark current... As shown in the absorption probability plot, PiN diodes readily absorb gamma-ray energy, (2) Two X100-7s mounted on the PCB, (3) charge deposition calculation for Americium−241)

A dominant advantage of semiconductor detectors is the small ionization energy (E), independent of both the energy and type of incident radiation. This simplification allows to account for number of electron-hole pairs in terms of the incident radiation energy, provided the particle is fully stopped within the active volume of the detector. For silicon at 23C (*) we have E~3.6eV. Assuming that all energy is deposited and using the ionization energy we can calculate the amount of electrons produced by a given source. For example, a 60keV gamma-ray from an Americium−241 source would give: -see equation pictured above- , and resulting in a deposited charge of 0.045 fC/keV.

As shown in the specifications of the diode specs, above a biasing voltage of approximately ~15V the depletion region can be approximated as constant. This sets the target range for our biasing voltage to 12−15V.

(*: E increases with decreasing temperature.)

Step 5: Block Diagram

Picture of Block Diagram

(Image legends: (1) Block diagram of detector: from signal creation to data acquisition., (2) Application note of manufacturer which confirmed the design concept and helped to choose initial component values., (3) Quick calculations for component value tuning.)

Functionality of the different modules of detector, their constituents, and associated calculations.

When evaluating the detector, the sensitivity (*1) was crucial. An extremely sensitive charge pre-amplifier is required because an incident gamma-ray may only generate a few thousand electrons in the semiconductor depletion region. Because I amplify a tiny current pulse, particular attention must be given to component selection, careful shielding and circuit board layout.

(*1: Minimum energy to be deposited in the detector to produce a distinct signal, and the signal-to-noise ratio.)

To properly chose component values, I first summarize the requirements, the desired specifications, and the constraints:

  • Sensors:

- Large possible detection range, 1keV-1MeV

- Low capacitance to minimize noise, 20pF-50pF

- Negligible leakage current under reverse bias.

  • Amplification and Discrimination:

- Charge sensitive pre-amplifiers

- Differentiator for pulse shaping

- Comparator for signal pulse when above set threshold

- Comparator for noise output when within threshold interval

- Comparator for channel coincidences

- General threshold for event filtering.

  • Digital and micro-controller:

- Fast analog-to-digital converters

- Output data for processing and user interface.

  • Power and filtering:

- Voltage regulators for all stages

- High-Voltage supply to generate the bias power

- Proper filtering of all power distribution.

Requirements set forth above led me to chose the following components:

- DC Boost Converter: LM 2733

- Charge Amplifiers: AD743

- Other Op-Amps: LM393 & LM741

- DAQ/Readout: Arduino Nano.

And additional imposed specifications include:

- Operating rate: > 250 kHz (84 channels), 50 kHz (coincidence)

- Resolution: 10bit ADC

- Sample rate: 5kHz (8 channels)

- Voltages: 5V Arduino, 9V op-amps, ~12V Biasing.

The overall arrangement and order of the above components is represented in the block diagram figure.


I did my calculations with component values used during the testing phase (see the third image attached above).

(*: Some component values are not the same as initially planned nor the same as those currently in place; nonetheless these calculations provide a guidance frame.)

Step 6: Signal Treatment

Picture of Signal Treatment

(Figure legends: (1) Overall schematic of stages 1-3 of a single channel, including diode basing and voltage dividers that provide references to each stage., (...) Circuit sub-sections.)

I'll now describe the "flow" of the detection signal of one of the four channels from its creation to digital acquisition. The only signal of interest originates from the photodiodes. These sensors are reverse biased, as explained prior. The biasing supply is a stable 12V which is ran through a low pass filter to eliminate any unwanted noise/jitter of ~f > 1Hz. Upon ionization of the depletion region, a charge pulse is created at the pins of the diode. This signal is picked-up by our first amplification stage: the charge amplifier (light blue figure).

A charge amplifier (purple figure) can be made with any operational amplifier, but low noise specification is very important. The objective of this stage is to convert the charge pulse detected at the inverting input, into a DC voltage at the op-amp’s output. The non-inverting in-put is filtered and set to a voltage divider at a known and chosen level. This first stage is difficult to tune, but after numerous tests we settled for a feedback capacitor of 2[pF], and a feed- back resistor of 44[MOhm], resulting in a pulse of 2[pF] × 44[MOhm] = 88[μs].

An inverting active bandpass filter amplifier (orange figure), which acts like a differentiator, follows the charge amplifier. This stage filters and converts the converts DC level, emanating from previous stage into a pulse with a gain of 100. The raw detector signal is probed at the output of this stage.

Next in line are the signal and noise channels (green figure). These two outputs go directly to the DAQ as well as to the second analog PCB. Both function as op-amps comparators. The only difference between the two is that the noise channel has a lower voltage at it’s non-inverting input than the signal channel, and the signal channel is also filtered to remove frequencies above the expected output pulse from the second amplifying stage. An LM741 op-amp acts as a comparator against a variable threshold to discriminate the signal channel, enabling the detector to only send select events to the ADC/MCU. A variable resistor on the non-inverting input sets the trigger level.

Next is the coincidence counter (red figure). Here, signals from each channel are fed to an op-amp acting as a summing circuit. A fixed threshold is set coinciding with two active channels. The op-amp outputs high if two, or more, photodiodes register a hit simultaneously.

Finally, the blue figure is the power circuitry. However, I made a crucial mistake by putting the DC/DC step-up converter of the biasing power near the charge sensitive op-amps on the amplification PCB. Perhaps I'll fix this in a later version.

Step 7: PCB Design

Picture of PCB Design

Because the sensor selected for the final detector only exists as an SMT footprint component I had to design PCBs (2 layers). Therefore, all associated circuitry was also migrated onto PCB boards rather than the breadboard. All analog components were placed on two separate PCBs, and the digital components on another to avoid noise interferences.

These were the first PCBs I ever made so I had to get some help for the layout in Eagle. The most important PCB is that of the sensors and amplification. With an oscilloscope monitoring the outputs at test-points the detector can operate solely with this board (DAQ bypass). I found and fixed my errors; these included wrong component footprints, which resulted in our low noise op-amps to be wire-tapped, and end-of-life components that were swapped with alternatives. Additionally two filters were added to the design to suppress ringing oscillations.

Step 8: Assembled Stack & Casing

Picture of Assembled Stack & Casing

The goal of the 3D printed casing, the lead sheet and foam is for: mounting purposes, thermal isolation, providing a noise shield, and to block ambient light.

Step 9: Apparatus Testing

Picture of Apparatus Testing

(Figure legends: (1) Resulting pulse of a 60Co source (t ~ 760ms) signal-to-noise ratio ~3:1., (2) Injection equivalent to the charge deposited by a source of energy ~2 MeV., (3) Injection equivalent to the charge deposited by a 60Co source (~ 1.2 MeV ) )

The Arduino simply reads it's analog inputs and spits that data out on the USB port for a desktop software to plot/analyze. The Processing code is rather crude but does the trick:

<p>import processing.serial.*;<br>Serial myPort;<br>boolean canInput=true;
PFont font;
int rectX = 10, rectY = -50, rectW = 100, rectH = 50;
float partH;
int xPos = 1;
int numValues = 6;float A = 0;
int Amin = 0, Amax = 1023;
float B = 0;
int Bmin = 0, Bmax = 1023;
float C = 0;
int Cmin = 0, Cmax = 1023;
float D = 0;
int Dmin = 0, Dmax = 1023;
float E = 0;
int Emin = 0, Emax = 1023;
float F = 0;
int Fmin = 0, Fmax = 1023;
float I = 0;
int Imin = 0, Imax = 1023;
float J = 0;
int Jmin = 0, Jmax = 1023;
float K = 0;
int Kmin = 0, Kmax = 1023;
void setup() {
 size(1280, 768);
 partH = height / numValues;
 myPort = new Serial(this, Serial.list()[5], 115200);
void draw() {
 if (canInput) {
 fill(0, 200, 200);
void serialEvent(Serial myPort) { 
 line(0, partH, width, partH);
 line(0, partH*2, width, partH*2);
 line(0, partH*3, width, partH*3);
 line(0, partH*4, width, partH*4);
 line(0, partH*5, width, partH*5);
 line(0, partH*6, width, partH*6);
 line(0, partH*7, width, partH*7);
 String inString = myPort.readStringUntil('\n');
 if (inString != null) {
 inString = trim(inString);
 int[] values = int(split(inString, ","));
 if (values.length >= numValues) { 
 A = map(values[0], Amin, Amax, 0, partH);
 B = map(values[2], Bmin, Bmax, 0, partH);
 C = map(values[1], Cmin, Cmax, 0, partH);
 D = map(values[3], Dmin, Dmax, 0, partH);
 E = map(values[4], Emin, Emax, 0, partH);
 F = map(values[6], Fmin, Fmax, 0, partH);
 I = map(values[5], Imin, Imax, 0, partH);
 J = map(values[7], Jmin, Jmax, 0, partH);
 K = map(values[8], Kmin, Kmax, 0, partH);
 stroke(78, 124, 227);
 line(xPos, partH, xPos, partH - A);
 stroke(0, 204, 255);
 line(xPos, partH, xPos, partH - C);
 stroke(227, 194, 78);
 line(xPos, partH*2, xPos, partH*2 - B);
 stroke(204, 255, 0);
 line(xPos, partH*2, xPos, partH*2 - D);
 stroke(227, 125, 78);
 line(xPos, partH*3, xPos, partH*3 - E);
 stroke(255, 186, 0);
 line(xPos, partH*3, xPos, partH*3 - F);
 stroke(174, 78, 227);
 line(xPos, partH*4, xPos, partH*4 - I);
 stroke(255, 0, 237);
 line(xPos, partH*4, xPos, partH*4 - J);
 stroke(255, 255, 255);
 line(xPos, partH*5, xPos, partH*5 - K);
 text("V2.0; Threshold Hit @Px:", 20, partH*5+70);
 if (A >= Amax/4) {
 stroke(78, 124, 227);
 arc(partH*9, partH*5+60, 80, 80, 0, HALF_PI);
 text("#1", 250, partH*5+70);
 if (B >= Bmax/4) {
 stroke(227, 194, 78);
 arc(partH*9, partH*5+60, 80, 80, HALF_PI, PI);
 text("#2", 500, partH*5+70);
 if (E >= Emax/4) {
 stroke(227, 125, 78);
 arc(partH*9, partH*5+60, 80, 80, PI, PI+HALF_PI);
 text("#3", 750, partH*5+70);
 if (I >= Imax/4) {
 stroke(174, 78, 227);
 arc(partH*9, partH*5+60, 80, 80, PI+HALF_PI, PI+PI);
 text("#4", 1000, partH*5+70);
 if (K >= Kmax/4) {
 stroke(255, 0, 0);
 arc(partH*9, partH*5+60, 80, 80, 0, TWO_PI);
 if (xPos >= width) {
 xPos = 0;
 } else {

Charge injection was done with a pulse generator coupled to a capacitor (1pF) at the sensor pad and terminated to ground via a 50Ohm resistor. These procedures enabled me to test my circuits, fine tune the component values and simulate the responses of the photodiodes when exposed to an active source. I set both an Americium−241 (60 KeV ) and an Iron−55 (5.9 KeV) source in front of the two active photo-diodes, and neither channels saw a distinctive signal. I verified via pulse injections, and concluded that the pulses from these sources were below the observable threshold due to noise levels. However, I was still able to see hits from a 60Co (1.33 MeV) source. The major limiting factor during the tests was the significant noise. There were many sources of noise and few explanations as to what was generating these. I found that one of the most significant and detrimental source was the presence of noise prior to the first amplification stage. Due to the huge gain this noise was amplified almost a hundred-fold! Maybe improper power filtering and Johnson noise re-injected into the feedback loops of the amplifier stages also contributed (this would explain the low signal to noise ratio).I didn't investigate the dependence of noise with biasing, but I might look into that further in the future.

Step 10: Enjoy Your Rad Detector!

Picture of Enjoy Your Rad Detector!

If you made it this far and followed the steps, then congratulations! You've built an apparatus for a real-world applications like the LHC! Perhaps you should consider a career change and go into the field of nuclear physics! ;)

In more technical terms, you've built a solid-state radiation detector consisting of a matrix of photo-diodes and associated circuitry to localize and discriminate events. The detector consists of multiple amplification stages that convert small charge pulses into observable voltages then discriminate and compares them. A comparator, between channels also provides information regarding spatial distribution of detected events. You also incorporated the use of an micro-controller and basic software for data collection and analysis.

Step 11: Related Links

Picture of Related Links

In addition to the wonderful PDFs attached, here are some related informative resources:

- F. A. Smith, A Primer in Applied Radiation Physics, World Scientific, River Edge, NJ, 2000.

- First Sensor, First Sensor PIN PD Data Sheet Part Description X100-7 SMD, Web.

- Horowitz, Paul and Hill, Winfield, The Art of Electronics. Cambridge University Press, 1989.

- C. W. Thiel, An Introduction to Semiconductor Radiation Detectors, Web.

- Lyndon Evans, The Large Hadron Collider: a Marvel of Technology, Ed. EPFL Press, 2009.


nhgerardo (author)2015-03-27

This is the first Instructable i can say about it: So awesome!

LostNeutrino (author)nhgerardo2015-04-18

I concur!

tomatoskins (author)2015-03-26

So much information! Thanks for sharing!

MoonLanding (author)tomatoskins2015-03-26

Thanks - glad you like it! :)

SHOE0007 (author)2017-11-14

190-60 = 130 CPM ave.

SHOE0007 (author)2017-11-14

This is thorium in a bag it emits Gamma at 60 CPM at 3.33 uS an Hr.

SHOE0007 (author)2017-11-12

You have done a great great Job explaining the semiconductors besides using other types of solid state tubes. How much would this cost. I do experiments with clover and Thorium and it a gamma emitter (pretty high).

So I bought this to read up to 65,000 CPM!!! The meter was 160 dollars CAN.

Ruby Laser (author)2017-07-17

Nice!!! I LOVE the use of silicon detectors, I fact I've actually been doing some research of my own. One technique I've found that helped reduce noise involves using a 4-5 second delay circuit with a peak detector and comparator to help auto calibrate it against noise from RF waves as well as small light leaks. Keep exploring!

Ruby Laser (author)Ruby Laser2017-07-17

Oh yeah, I also spotted a little bit of disinformation though. In the Instructable you stated that the detectors undergo "performance degradation" from high radiation fields which is simply not true. It should be noted that only electronics using EEPROM and other low capacitance devices are majorly affected by radiation (this is due to ionizing radiation causing ionization and thus conduction in the silicon dioxide insulating layer). Other than that the radiation has basically no effects on electronics.

NachiketK1 (author)2016-11-15

This is really great I would love try it out.Good job.

kvital (author)2015-12-03

One part of article is about one project, other one about other project. Tell me how photodiode that can detect only visible light will see gamma?

weish (author)kvital2016-09-13

all silicon semiconductors are sensitive to radiation, and in this case you have an unshielded diode already intended for sensing, which if you reverse bias the diode and shield it from visible light, you can register the hits from beta and gamma (alpha rarely can penetrate even thin fabric shielding) radiation by amplifying the tiny signal you get and reading the output data with a microcontroller. depending on how you set it all up, you can even get a rough idea of the energy level of the particle that caused the hit.

About This Instructable




More by MoonLanding:RadSense - A Rad SolidState Gamma Radiation Detector3D Printed Underwater CameraVintage Look - Jungle Lantern
Add instructable to: