- All orders placed from 12/30/2014 at 9PM (CET) onwards will be billed dated 2015 -
libelium
  • rss
  • flickr
  • instagram
  • twitter
  • facebook
  • youtube

Geiger Counter
Radiation Sensor Board for Arduino

Contents


 

Manifesto

The main finality of the Radiation Sensor Board for Arduino is to help people in Japan to measure the levels of radiation in their everyday life after the unfortunate earthquake and tsunami struck Japan in March 2011 and cause the nuclear radiation leakages in Fukushima. We want to give the chance to measure by themselves this levels instead of trusting in the general advises which are being broadcasted. The usage of this sensor board along with the affordable and easy to use Arduino platform helps people to get radiation values from specific places.

As technical guys, we feel the responsibility of providing our support in those areas where we can contribute. As a result, first batch has been shipped to Japan at no charge to the Tokyo Hackerspace and other working groups.

The design of the board is open hardware and the source code is released under GPL.

The Libelium Team. April 2011.

 
radiation_logos

UPDATE -- Wireless and Autonomous Geiger Counter: We have created a second project in order to make the Radiation Sensor Board work autonomously using internal batteries and wirelessly with ZigBee and GPRS radios in the Waspmote platform. The idea of this technology is double, on the one hand it allows to monitor as a prevention procedure the surroundings of a nuclear power plant along with the closest cities autonomously without the need of human intervention, and on the other hand it let us quickly deploy emergency control points when a radioactive leakage happens. Read more .

NOTE: If you are interested in Wireless Sensor Networks (WSN), M2M and the Internet of Things (IoT) projects check our new open source sensor platform: Waspmote which counts with more than 70 sensors available to use and a low consumption mode of just 0.7uA to ensure years of battery life. Know more at:

The Board

The radiation board has two main parts, the power circuit and the signal circuit .

The power part is used to provide the voltage necessary for the tube ( 400V - 1000V ) and the signal circuit is used to adapt the pulses output from the tube and connect it to the input of the microcontroller.

Once the tube is powered, we can receive the pulses in the microcontroller and count them, then with an easy calculation we can get the value of radiation.

arduino_geiger_board_vertical

The code we use for the board is counting pulses for 10 seconds, then we multiply the number of pulses by 6, so we get the number of pulses by minute (cpm) , then, according to the tubes documentation we divide cpm by the conversion factor of the tube (360 by default) and we have the value of radiation in µSV/h .

Depending on the tube you use, maybe you need to change the calculation, you should try with different values and comment us witch value is working better.

types_of_radiation2

Radiation Sensor Board with the SBM-20 Geiger Tube

types_of_radiation2

Radiation Sensor Board with the official tube chosen: J305β Geiger Tube

The electronic used in the radiation board could be divided in five parts:

  1. High voltage power supply

    For the high voltage power supply we use a circuit based on an oscillator connected to a voltage multiplier made with diodes, transistors, resistors and capacitors (see schematic for detail). With this circuit we get a power of 500V in the tube. We've added a line of zener diodes connected in series that can be used if we need more than 500V for powering the tube. We'll add as volts to the output as volts in zener diodes we add.

  2. Adaptation circuit for the Geiger output

    The adaptation circuit for the output is based on a NPN transistor, this transistor will trigger the interrupt pin in the microcontroller, this transistor is also activating/deactivating the piezo speaker and LED indicator generating the audio/visual signal.

  3. Piezo speaker and LED indicator

    The piezo speaker and LED indicator are connected to the adaptation circuit, so the LED will blink with each pulse and the speaker will sound with each pulse.

  4. LCD screen

    The LCD screen is connected to the microcontroller using the 4-bit mode (4 data lines in addition to RS, Enable and RW control lines).

  5. LED bar

    The LED bar is made with five standard LEDs, 3 green and 2 red. These leds are connected to digital pins of the microconroller with a series resistor.

Video - Testing Beta and Gamma detection with the SBM-20 Geiger tube:

In the video the sensor board is tested using Vaseline Glass which has been previously highly charged using ultraviolet light. This radioactivity level lasts only a couple of minutes but is enough to see how the irradiated Beta and Gamma particles are detected.


 

Connecting the Radiation board to Arduino

 

If the board is connected to Arduino, the power is taken from the 5V pin. The pulses can be counted using the interruption 0 (digital pin 2).

The LED bar is connected to these digital pins:

  • LED green 0 => Digital pin 9
  • LED green 1 => Digital pin 13
  • LED green 2 => Digital pin 12
  • LED red 0 => Digital pin 11
  • LED red 1 => Digital pin 10
geiger_shield_and_arduino
geiger_shield_and_arduino

Arduino with the Radiation Sensor Board connected


IMPORTANT: In order to power on the Radiation Sensor Board, place its switch in the required position as shown in next image:

geiger_shield_and_arduino

Radiation Sensor Board switch

The Geiger Tube

A Geiger–Müller tube consists of a tube filled with a low-pressure (~0.1 Atm) inert gas such as helium, neon or argon (usually neon), in some cases in a Penning mixture, and an organic vapor or a halogen gas. The tube contains electrodes, between which there is a potential difference of several hundred volts (~500V), but no current flowing. The walls of the tube are either entirely metal or have their inside surface coated with a conductor to form the cathode while the anode is a wire passing up the center of the tube.

When ionizing radiation passes through the tube, some of the gas molecules are ionized , creating positively charged ions, and electrons. The strong electric field created by the tube's electrodes accelerates the ions towards the cathode and the electrons towards the anode. The ion pairs gain sufficient energy to ionize further gas molecules through collisions on the way, creating an avalanche of charged particles.

This results in a short, intense pulse of current which passes (or cascades) from the negative electrode to the positive electrode and is measured or counted.

geiger_tubes

SBM-20 and LND-712 Geiger Tubes

Types of Radiation

types_of_radiation
  • Alpha:

    Alpha radiation consists of positively (+2) charged particles emitted from the nucleus of an atom in the process of decay. These particles are also very dense which, with their strong positive charge, precludes them from penetrating more than an inch of air or a sheet of paper. Because of this, Alpha particles are not a serious health hazard, except when they are emitted from within the body as a result of ingestion, for instance, when their high energy poses an extreme hazard to sensitive living tissue. A weak form of ionizing radiation detectable on some models of Geiger counters, typically those that incorporate a thin mica window at one end of the Geiger -Mueller tube.
  • Beta:

    Beta radiation consists of negatively charged (-1) particles emitted from an atom in the process of decay. These particles are relatively light and can penetrate somewhat better than an Alpha particle, though still only through a few millimeters of aluminium at best. If ingested, Beta radiation can be hazardous to living tissue. A relatively weak form of ionizing radiation detectable on many Geiger counters, generally dependent on the thickness of the Geiger-Mueller tube wall or the existence of a window at the end of the tube.
  • Gamma:

    Gamma radiation represents one extreme of the electromagnetic spectrum, particularly that radiation with the highest frequency and shortest wavelength. (That same spectrum also includes the more familiar X-rays, ultraviolet light, visible light, infrared rays, microwaves, and radio waves, listed in order of decreasing frequency and increasing wavelength from Gamma rays.) Gamma rays can pass through virtually anything, and are effectively shielded or absorbed only by materials of high atomic weight such as lead. Gamma rays are produced naturally by the sun and other bodies in outer space, their transmission to earth being known as "cosmic radiation". A very powerful and potentially very dangerous type of ionizing radiation detectable on virtually all Geiger counters.

types_of_radiation2
  • Background radiation:

    Certain minerals that make up part of the earth containing the radioactive elements Uranium and/or Thorium also emit Gamma rays. This, along with the cosmic radiation (Gamma rays which come from the sun and other stars), combine to produce the "background count" of a Geiger counter. This might typically be in the range of 15 to 60 counts per minute, but will vary depending upon your location on the earth, your altitude, and the efficiency of the Geiger counter. The background count should always be factored in or "subtracted" from the overall reading derived from a specific radioactive source.

    Common background radiation goes from 0.041μSv/h to 0.081μSv/h (3650 - 7200μSv/year).

Sources: Wikipedia , Blacksmith Institute , Geigercounters.com

Supported Geiger Tubes

The idea of the Radiation Sensor Board is to make it compatible with several Geiger tubes from different manufacturers. For this reason we have tested and validated tubes from LND (US) , GStube (Russia) and North Optic Electronic (China) .

In general any Geiger tube which works inside the range 400V-1000V can be integrated. This include many other Geiger tubes from vendors like Centronic and Vacutec which have not been tested due to the high price.


Country Vendor Model Alpha Beta Gamma Length Voltage Material Price
types_of_radiation2 GSTube SBM-20   X X 100mm 400V Aluminium Low
types_of_radiation2 GSTube SBM-21   X X 20mm 650V Aluminium Low
types_of_radiation2 GSTube Si-1g     X 50mm 440V Aluminium Low
types_of_radiation2 GSTube SBT-9   X X 73mm 380V Aluminium Low
types_of_radiation2 GSTube Si-3bg   X X 40mm 400V Aluminium Low
usa_flag LND LND-712 X X X 40mm 500V Mica Medium
usa_flag LND LND-7124 X X X 40mm 500V Mica High
usa_flag LND LND-7224 X X X 40mm 500V Mica High
china_flag North Optic J408γ     X 220mm 420V Glass Low
china_flag North Optic J305β   X X 111mm 350V Glass Low
china_flag North Optic J306β   X X 200mm 420V Glass Low

The official tube chosen:

Finally we have chosen the J305ß as the official tube for the radiation sensor board as it is fairly sensible to Beta and Gamma radiation at the same time it keeps a affordable price at a minimum size (11cm).

geiger_tubes

Official tube chosen: J305β Geiger Tube

Specifications:

 

  • Manufacturer: North Optic
  • Radiation Detection: β, γ
  • Length: 111mm
  • Diameter: 11mm
  • Recommended Voltage: 350V
  • Plateau Voltage: 360-440V
  • Sensitivy γ ( 60 Co): 65cps/(µR/s)
  • Sensitivy γ (equivalent Sievert): 108cpm / (µSv/h)
  • Max cpm: 30000
  • cps/mR/h: 18
  • cpm/m/h: 1080
  • cpm/µSv/h: 123.147092360319
  • Factor: 0.00812037037037

Testing Sources

In order to test the Radiation Sensor Board we have used Americium and Uranium glass.

Gamma Test:

As previously commented, all the Geiger tubes detect Gamma radiation which comes from the background radiation, so just turning on the Geiger Counter we will be receiving a random interval of detections which normally goes from 10 to 30 pulses per minute depending on factors such as the altitude, the location, etc.

Beta and Gamma Test:

In order to test that our Geiger Counter is detecting Beta and Gamma particles we can use Vaseline Glass . This material contains a very small amount of uranium (0.2%) usually in oxide diuranate form. This material has fluorescent properties when charged with ultraviolet light.

uranium_glass

Uranium Glass

Alpha Test:

In order to test the Alpha detection we used Americium an element which its isotope form 241 Am is used in smoke detectors in a very small amount (0.2μg).

americium
americium

Ionizing Chamber with Americium extracted from a Smoke detector

Actuators: Speaker, Leds and LCD

The Radiation Sensor Board counts with three different actuators.

The Speaker sounds each time a pulse is generated as it is connected directly to the Geiger tube output producing the typical "chirp"

In the radiation board we use several indicators for showing the radiation level to the user. We've connected to the Geiger tube output an LED and a piezo speaker. The piezo speaker will play one audible sound, one "chirp" for each particle counted and the LED will blink also one time for each particle.

In addition there is a LED bar (3 green LEDs and 2 red LEDs) that can be controlled directly by Arduino, each LED is connected to a digital pin (see schematic and code). This bar can be configured in order to give a visual information of the radioactivity amount we are measuring.

Finally we have a LCD screen where the information of the radiation is shown (counts per minute and μSv/h).

lcd

Thank you to Sergio Sorrenti and SimpleMachines Team for the donation of the LCDs used in the board.

From counts per minute to Sieverts

The unit measure by the Geiger Tubes are basically the number of pulses generated. This means that in one second we will have "n" counts (counts per second - cps) and in 1 minute the counts per minute ( cpm ). This value is common for all the Geiger Tubes, however, it is not an energy value but just the number of pulses. In order to get the real energy irradiated and the amount that is absorbed by a body we need to get how many Sieverts per hour are producing these pulses.

The formula which passes from cpm to Sieverts depends mostly on the Geiger Tube: the size, the shape, the material, the sensibility, the dead time, the type of particle measured, etc. Normally a conversion factor can be extracted from the charts provided by the manufacturer in the calibration process:

  cpm * conversion factor  = μSv/h

For example, the conversion factor for the LDN-712 tube is 0.01 and for the SBM-20 is 0.0057. This means that detecting 120cpm will have the next value depending on the tube used.

  LDN-712 : 120 * 0.01 = 1.20μSv/h
SBM-20 : 120 * 0.0057 = 0.684μSv/h

The conversion factor (CF) for the official tube J305ß is 0.008120 . Let's see how to get this value from the official specifications of the tube:

J305β :65 cps/µR/s for 60Co

It means:

  1µR/s = 65cps -> 1mR/s = 65000cps -> 1mR/h = 18cps

Then:

  18 cps/mR/h -> 18*60 cpm/mR/h -> 1080/8.77 = 123.14 cpm/µSv/h

So:

  1 cpm ~ 1/123.14 = 0.008120 µSv/h

* Thanks to Lionel Bergeret for the help with the CF calculation process.

 

NOTE: This conversion factor is extracted by the manufacturer in the calibration process. However, this value is only accurate when the element which is radiating is the same as the one used in the calibration process eg: 137 Cs, 60 Co.

terminal_output

Dangerous levels?

OK. Now I can read the level of radiation in my house, the garden and in the supermarket, but how do I know if this is a normal or dangerous level?

The danger when being exposed to a radiation source depends mainly on two factors. The radiation level (μSv) and the period of exposition (t). For this reason, when the authorities stablish the maximum levels use the mark radiation absorbed in an entire year. This limit is set in 50000μSv .

The thing is in how much time takes us to we receive this maximum level. In normal conditions even after one year we will be far away from this point with levels close to 3650μSv. Even if we have to receive medical scans we will get 3000μSv for a mammogram or 20μSv for a chest X-ray. Far away from the limits unless you have to be continuously under tests.

Common background radiation is around 0.081μSv/h so in 1 year we will receive 3650μSv.

Anyhow being able to measure levels above 0.1μSv/h can give us valuable information of anormal values when analysing people skin, tools or even food.

If we calculate the average (per hour) radiation that we obtain from dividing the maximum level between the number of hours in a year (50000μSv)/(24*365) = 5.70μSv/h of maximum radioactivity per hour. In Fukushima on 21th March the level was 7.47μSv/h .

Some other reference levels (just the nominal value not the exposed time!):

  • 10 μSv – The average radiation you received today
  • 40 μSv – The radiation you receive by taking a flight from New York to L.A.
  • 100 μSv – The radiation you receive during a dental x-ray
  • 800 μSv – Total radiation dose at Three-Mile Island for the duration of the accident
  • 3000 μSv – Radiation dose from a mammogram
  • 3600 μSv – Average radiation a US citizen receives in a year from all sources
  • 50000 μSv – Maximum allowable yearly occupational dose (USA)
  • 100000 μSv – Lowest yearly dose likely linked to increased cancer risk
  • 2000000 μSv – Severe radiation poisoning (sometimes fatal)

Source Code

/*
 *  ------Geiger Tube board (Arduino Code) Example--------
 *
 *  Explanation: This example shows how to get the signal from the Geiger Tube
 *  in Arduino, we use one of the Arduino interrupt pins (PIN2).
 *  We count the time (ms) between two pulses of the Geiger tube.
 *
 *  Copyright (C) 2011 Libelium Comunicaciones Distribuidas S.L.
 *  http://www.libelium.com
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 2 of the License, or
 *  (at your option) any later version.
 * 
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 * 
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 *  Version:		0.3
 *  Design:		Marcos Yarza, David Gascon
 *  Implementation:	Marcos Yarza
 */

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(3,4,5,6,7,8);


// Threshold values for the led bar
#define TH1 45
#define TH2 95
#define TH3 200
#define TH4 400
#define TH5 600

// Conversion factor - CPM to uSV/h
#define CONV_FACTOR 0.00812

// Variables
int ledArray [] = {10,11,12,13,9};
int geiger_input = 2;
long count = 0;
long countPerMinute = 0;
long timePrevious = 0;
long timePreviousMeassure = 0;
long time = 0;
long countPrevious = 0;
float radiationValue = 0.0;

void setup(){
  pinMode(geiger_input, INPUT);
  digitalWrite(geiger_input,HIGH);
  for (int i=0;i<5;i++){
    pinMode(ledArray[i],OUTPUT);
  }

  Serial.begin(19200);

  //set up the LCD\'s number of columns and rows:
  lcd.begin(16, 2);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Radiation Sensor");
  lcd.setCursor(0,1);
  lcd.print("Board - Arduino");  
  delay(1000);

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(" Cooking Hacks");
  delay(1000);

  lcd.clear();
  lcd.setCursor(0,1);  
  lcd.print("www.cooking-hacks.com");
  delay(500);
  for (int i=0;i<5;i++){
    delay(200);  
    lcd.scrollDisplayLeft();
  }
  delay(500);

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("  - Libelium -");
  lcd.setCursor(0,1);
  lcd.print("www.libelium.com");    
  delay(1000);

  lcd.clear();  
  lcd.setCursor(0, 0);
  lcd.print("CPM=");
  lcd.setCursor(4,0);
  lcd.print(6*count);
  lcd.setCursor(0,1);
  lcd.print(radiationValue);

  attachInterrupt(0,countPulse,FALLING);

}

void loop(){
  if (millis()-timePreviousMeassure > 10000){
    countPerMinute = 6*count;
    radiationValue = countPerMinute * CONV_FACTOR;
    timePreviousMeassure = millis();
    Serial.print("cpm = "); 
    Serial.print(countPerMinute,DEC);
    Serial.print(" - ");
    Serial.print("uSv/h = ");
    Serial.println(radiationValue,4);      
    lcd.clear();    
    lcd.setCursor(0, 0);
    lcd.print("CPM=");
    lcd.setCursor(4,0);
    lcd.print(countPerMinute);
    lcd.setCursor(0,1);
    lcd.print(radiationValue,4);
    lcd.setCursor(6,1);
    lcd.print(" uSv/h");

    //led var setting  
    if(countPerMinute <= TH1) ledVar(0);
    if((countPerMinute <= TH2)&&(countPerMinute>TH1)) ledVar(1);
    if((countPerMinute <= TH3)&&(countPerMinute>TH2)) ledVar(2);
    if((countPerMinute <= TH4)&&(countPerMinute>TH3)) ledVar(3);
    if((countPerMinute <= TH5)&&(countPerMinute>TH4)) ledVar(4);
    if(countPerMinute>TH5) ledVar(5);

    count = 0;

  }

}

void countPulse(){
  detachInterrupt(0);
  count++;
  while(digitalRead(2)==0){
  }
  attachInterrupt(0,countPulse,FALLING);
}

void ledVar(int value){
  if (value > 0){
    for(int i=0;i<=value;i++){
      digitalWrite(ledArray[i],HIGH);
    }
    for(int i=5;i>value;i--){
      digitalWrite(ledArray[i],LOW);
    }
  }
  else {
    for(int i=5;i>=0;i--){
      digitalWrite(ledArray[i],LOW);
    }
  }
}

Schematic

Download the Schematic.

(This version does not include the LCD connexions. It will be updated soon).

Fritzing Libraries


Radiation Sensor Board for Arduino + Geiger Tube

Download download

Radiation Sensor Board for Arduino detects Alpha, Beta and Gamma radiation integrating any Geiger Tube which works in the range 400V - 1000V and read this levels using Arduino.

You can download our Fritzing libraries from this area .

Participate

Help us to improve the design and the software program. Join the discussion in the Cooking Hacks forum .

Buy

You can get just the Radiation Sensor Board in order to integrate your own Geiger Tubes or buy it in a "ready to use" pack along with the Geiger tube already soldered.

You can also get Vaseline Glass Beads as a complement in order to test the board.

geiger_board_in_hand

Links and Documentation

Links and Documentation: