Welcome to Laser Pointer Forums - discuss green laser pointers, blue laser pointers, and all types of lasers



putting together a gamma spectrometer (using soft MCA)

paul1598419

Well-known member
Joined
Sep 20, 2013
Messages
18,682
Points
113
Long time no hear from. Nice to see you again. I'll be watching if you find time.
 



Seoul_lasers

Well-known member
Joined
Jul 4, 2008
Messages
2,680
Points
113
looks like a fun project! Here are some of the readings I had on scintillators in my undergrad in nuclear chemistry. its on pages 9-12 :D Its a good read and has a nice diagram and the advantages and disadvantages of solid-state vs scintillators

http://courses.chem.indiana.edu/c460/documents/SEC6Detectors.pdf

I may end up pulling pulses off my Bicron Surveyor M 50 and feed those into a A-D convertor using a T splitter and inline filter. The other spectroscopy setup doesn't reliably output enough current to give a clear readout. I did however post a spectrum from NORM (Uraninite chunk ~16mR/hr gamma) from the DIY CsI/Na detector, and while it looked good, there was not enough gain, so signal amping was required. The Bicron surveyor M 50 outputs much higher current and might be interesting to use if however the (transistor) switching noise isn't bad.
 
Last edited:

Seoul_lasers

Well-known member
Joined
Jul 4, 2008
Messages
2,680
Points
113
Today I got my new-ish tiny CsI/Na Scintillation detector out that I heat shrinked after wrapping a few times with PVC tape.
CsI/Na crystal was from maxim.madmax in the Ukraine. This vendor has got just about any scintillation Crystal known in a variety of sizes for quite good prices. Occasionally LYSO:Ce crystals from him come up as well which are completely non-hygroscopic, high density and have excellent light output.

Anyways, I decided to do a few tests of some known materials including a powerful Am241 ionization source, Ra226/ Radium D+E (~1uCi) and a massive sample ~2Kg of Tyuyamunite and Autunite. Each one of these samples has a spectrum done by Theremino MCA program. I tried using Theremino 7.1 but it performs very poorly and has some significant irregularities in it's sampling abilities. I get previous spectra stuck in the new sampling data. I downgraded to Theremino 6.1 and the program is usable for doing spectroscopy. I don't know why Thermino 7.1 is so problematic.

My first sample was a 160uCi (2x80uCi) sample of Am241. This available as an assembled ionization chamber source. They are highly Radioactive and I would strongly discourage anyone from trying to disassemble them as the plated sources undergo quite a bit of metallurgical breakdown due to their high activity rate. It is very common to see these chambers with Am241 dust (surface contamination) inside them. This makes them an EXCEEDINGLY dangerous source to disassemble without a pancake probe surface frisker and knowledge about safely handling Radioactive materials. There is a reason these sources are no longer permitted inside buildings. (These being the Pyrotronics Industrial Smoke detectors)
One might consider using the Am241 to build a (AmBe) Neutron source for experimentation. You'd however need 10's of mCi to start your own Neutron oven.



You'll notice in the spectrum a very large peak at 59.54KeV. You'll also notice that the spectrum stops short of ~40KeV as this I believe the lowest detectable energy of the tiny CsI/Na crystal. (now, if I had some Cs137 I could accurately test this fact) Crystal is only 0.75" across x 1.15" long. So yes, it is very small. Despite it's incredibly small size, it is able to see fairly low energy Gamma Rays.



Next sample is of Radium D+E (Ra226) you'll notice that the spectrum is similar to that of Uranium ore. You'll also clearly see a peak of Ra226 at 186KeV. This is because the majority (if not all) Ra226 was extracted from high grade U rich ore.


Next Sample is of Tyuyamunite in Sandstone from Fall River County, South Dakota. It is from a mine that had high grade ore in the 1960s. It is approximately 350uSv/hr (35mR/hr) with a shielded 3" GM tube detector on a Bicron Surveyor model MS. On a 6996 style hotdog probe a measurement of 150uSv/hr was obtained or 9000CPM with the shield closed. A 3" dia GM tube unshielded (GEOS210 probe or the Inspector series GM detector) registers nearly off scale due to Beta and Alpha. On my Bicron Surveyor with the 3" detector, this large specimen will easy register 300,000CPM.
Alpha particles are highly ionizing and easily saturate the detector. This takes me to my other piece of advice for Mineral hunters on Ebay. Never trust an Ebay seller selling "Hot Rocks" using a pancake probe. End window mica GM tubes are overly sensitive to Alpha particles.


So, if you are into nuclear stuff give me a PM. I am still after a nice 0.5-1.0uCi ( even a 5uCi is fine too) calibrated sample of Cs137 to bolt to the side of my Bicron Surveyor. :)
 

Attachments

  • IMG_1367.jpg
    IMG_1367.jpg
    102 KB · Views: 53
  • IMG_1382.JPG
    IMG_1382.JPG
    110 KB · Views: 49
  • IMG_1379.JPG
    IMG_1379.JPG
    126.4 KB · Views: 41
  • IMG_1374.JPG
    IMG_1374.JPG
    106.3 KB · Views: 49
  • IMG_1373.JPG
    IMG_1373.JPG
    145.2 KB · Views: 42
  • IMG_1371.jpg
    IMG_1371.jpg
    56.4 KB · Views: 51
  • IMG_1372.jpg
    IMG_1372.jpg
    111.5 KB · Views: 38
Last edited:

Seoul_lasers

Well-known member
Joined
Jul 4, 2008
Messages
2,680
Points
113
Today I did a non-permanet mod to my Bicron Surveyor MS. Unlike the Ludlum Model 2,3,5,6, 2242 (Digital) and 14C all use 2 x D cell batteries which are common (low cost) and deliver quite a bit of current. the Bicron Model MS,MX, Micro-Analysist Micro R Survey Meter or Bicron Surveyor 2000 and model 50 in contrast use either 1 or 2 9V cells. This is nice and light weight but is quite limiting as the cells have limited life and are generally low mAh. A better rendition of the Bicron has 2 cells in parallel for more current and these are typically only available with the digital ratemeter or pulse height discriminator. An add on kit was available to modify the meter for longer run times until about 1998.

Fast forward to 2016 and we have much better battery technology.

Today I made a very simple non-permanent mod to my rate meter for 2x18650 cells using a battery holder backed with velcro and a 9V cell connecter clip wired in reverse polarity. Battery holder wires Red and black are wired to the battery clip in reverse order. + to - - to + :can:


Each cell delivers approximately ~4.23V@ 2600mAh for a total of 8.46V which is right about perfect for the meter. The battery pack can be removed when the batteries need replacing and simply hooked back on the smart charger on a 2 cell charge at 1.0A charge rate. Everything was carefully soldered and shrink wrapped twice. :)

I gave my meter a test run. Perfect!! I can even switch over to high output industrial 9V cells if my Li-ions aren't done charging.
 

Attachments

  • IMG_1383.JPG
    IMG_1383.JPG
    105.6 KB · Views: 40
  • IMG_1384.JPG
    IMG_1384.JPG
    233.8 KB · Views: 31
  • IMG_1386.JPG
    IMG_1386.JPG
    90.7 KB · Views: 37

Seoul_lasers

Well-known member
Joined
Jul 4, 2008
Messages
2,680
Points
113
I have been looking to add a scaler to my Bicron Surveyor MS. I've been thinking of what kinds of information I'd like to add.
I happened upon an Italian Website Radioactivity.forumcommunity.net about DIY Geiger counters and scintillation detectors. On this site was an interesting Arduino project utilizing an Arduino UNO.

This open source project allows for several programs to be run in one sketch.
This gives the option for the Arduino to allow for

A) real time voltage monitoring of the HV via 1.0GOhm resistor output in (mV - V conversion.) I think.

B) CPM/CPS selection

C) Dose rate (esp. GM tubes) with a manual programmable input.

D) Alarm mode. Not yet integrated

I'm going to put up the code and a wiring diagram. It is in Italian but I hope it can be translated into english at some point.

A further mod would be to have this sketch be able to print data to serial or to an SD card or Bluetooth to capture data.
Another idea is to possible integrate this sketch into a large project using a Cortex M4 (w/12bit 10MsS ADC) and be able to have an all in one Gamma spectrometer and ratemeter addon for survey meters.

So I will post the Arduino code of the scaler/ratemeter below...

/*
Geiger counter Enotria1 Rev. 1.2 (Interrupt)

di Andrea Bosi alias Enotria

Inizio Feb. 2011, Fine marzo 2011

Note: Pulsanti tutti NA

*/


#define PIN 10 // Pin di comando SET
#include <EEPROM.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

byte SetTemp=0; // Indice della Base Tempi
long Imp=0; // Impulso
long TotImp=0; // Totale degli impulsi
long BaseTempi=10; // * * * Base tempi in secondi
long TempoMax=0; // Termine conteggio
int VarServInt=0; // Variabile di servizio
int Set=1; // Set su Battery
int Manca=0; // Tempo mancante alla fine in secondi
char UnMis[5]="sec."; // Unità di misura della base tempi
unsigned int Sens=3300; // Sensibilità in mR/h
float CPM=0; // CPM
float Molt=6; // * * * Moltiplicatore fra CP e CPM (dipende da BaseTempi)
float Rad=0.0; // Radioattività espressa in mR/h
long Volt=0; // Tensione

// Base Tempi ---------------
int Tempo[6]={
10,30,60,180,600,1800};
float K[6]={
6,2,1,.333,.1,.033};



void setup() {
lcd.begin(16, 2);
pinMode(13, OUTPUT);
pinMode(PIN,INPUT);
pinMode(7,INPUT); // Ingresso impulso della sonda
pinMode(8,INPUT); // Tasto +
pinMode(9,INPUT); // Tasto -
pinMode(14,INPUT);
SetMode();
//Serial.begin(9600);
PCICR |= (1 << PCIE2);
PCMSK2 = (1 << PCINT23) ; // pin7
}



void loop()
{
Scaler();
}

// ------------ Fine programma ---------------------






void Tasto()
// Attende la pressione del tasto Set/Start
{
delay(500);
do {
VarServInt=digitalRead(PIN);
}
while (VarServInt==HIGH);
}


void SetMode()
// Visualizza e Cambia la modalità di funzionamento
{
SetTemp=EEPROM.read(0); // Legge Set della Base Tempi
Sens=EEPROMReadInt(1); // Legge Sensibilità Sonda

// Tensione HT alla sonda
delay(500);
do {
Volt=0;
for (VarServInt=1; VarServInt <= 5000; VarServInt++)
{
Volt = Volt + analogRead(0)*2;
if (digitalRead(PIN)== LOW) goto Sensibilita;
}
Volt=Volt/5000; // media di 5000 letture
lcd.setCursor(0, 0);
lcd.print(" H. T. ");
lcd.setCursor(0, 1);
lcd.print(" Volt");
lcd.setCursor(6, 1);
lcd.print(Volt);
}
while (digitalRead(PIN)== HIGH);

Sensibilita:
/* Sensibilità della sonda in CPM x 1 mR/h
Il massimo indicabile è 63000, eventualmente indicare
il valore togliendo 3 zeri, es. sensibilità di 100000 CPM/mR/h
impostare 100 e dividere la lettura per 1000
*/
lcd.setCursor(0, 0);
lcd.print(" CPM x mR/h ");
lcd.setCursor(0, 1);
lcd.print(" ");
delay(500);
do {
lcd.setCursor(6, 1);
lcd.print(" ");
lcd.setCursor(6, 1);
lcd.print(Sens);
if (digitalRead(8)== HIGH && Sens<64000) {
if (Sens < 10000) Sens=Sens+100;
else Sens=Sens+1000;
}
if (digitalRead(9)== HIGH && Sens >= 100) {
if (Sens < 10000) Sens=Sens-100;
else Sens=Sens-1000;
}
delay(50);
}
while (digitalRead(PIN)== HIGH);

// Base dei tempi
lcd.setCursor(0, 0);
lcd.print(" TIME seconds ");
lcd.setCursor(0, 1);
lcd.print(" ");
delay(500);
do {
BaseTempi= Tempo[SetTemp];
Molt= K[SetTemp];
lcd.setCursor(6, 1);
lcd.print(" ");
lcd.setCursor(6, 1);
lcd.print(BaseTempi,DEC);
delay(50);
if (digitalRead(8)== HIGH && SetTemp < 6) SetTemp++;
if (digitalRead(9)== HIGH && SetTemp > 0) SetTemp--;
delay(50);
}
while (digitalRead(PIN)== HIGH);
delay(50);
// Memorizza i valori di Base Tempi e Sensibilità
EEPROM.write(0,SetTemp); // Scrive Set della Base Tempi
EEPROMWriteInt(1,Sens); // Scrive Sensibilità Sonda
}


void Display_Conta()
// Aspetto del display durante il conteggio
{
// Display presente durante il conteggio
lcd.setCursor(0, 0);
lcd.print("Time ");
// --------1234567890123456----
lcd.setCursor(12, 0);
lcd.print(UnMis);
// --------1234567890123456----
lcd.setCursor(0, 1);
lcd.print("Pulse ");
// --------1234567890123456----
}


void Display_Fine()
// Aspetto del display a fine conteggio
{
// Display presente alla fine del conteggio
lcd.setCursor(0, 0);
lcd.print("CPM ");
// --------1234567890123456----
lcd.setCursor(0, 1);
lcd.print("mR/h ");
// --------1234567890123456----

}


void Fine_Cont()
// Finito il conteggio mostra risultato e poi resetta
{
cli();
CPM=TotImp*Molt;
sei();
Rad=CPM/Sens;

Display_Fine();
lcd.setCursor(5, 0);
lcd.print(CPM,0);
lcd.setCursor(9, 1);
lcd.print(Rad,3);
// Se base tempi <= 1 minuto pausa, altrimenti aspetta tasto
if (Molt > 1)delay(5000);
else Tasto();
cli();
TotImp=0;
sei();
TempoMax=millis()+BaseTempi*1000; // Nuovo tempo limite
Display_Conta();
}



void Visual_Cont()
// Visualizza il conteggio sul display
{
lcd.setCursor(5,0);
lcd.print(" ");
lcd.setCursor(6,0);
lcd.print(int((TempoMax-millis())/1000));
lcd.setCursor(6, 1);
lcd.print(TotImp);
}

ISR(PCINT2_vect) // scatta solo quando il pin 7 cambia stato
{
if ( (PIND&(1<<7))!=0) // somma solo quando cambia in su
TotImp++;
}

void Scaler()
// Misura impulsi
{
VarServInt=digitalRead(PIN);
// Va premuto SOLO all'uscita del Display Fine per non rallentare
if (VarServInt==LOW) SetMode();
TempoMax=millis()+BaseTempi*1000;
Display_Conta();
do {
/*
// Crea gli impulsi solo per prova
Imp= random(1,10000);
// Da sostituire con if (digitalRead(7)== HIGH)
if (Imp <= 2)
{
// impulso valido
TotImp++;
}
*/
// Lettura reale degli impulsi
/*
if (digitalRead(7)== HIGH)
{
TotImp++;
delayMicroseconds(100);
}
*/
// Visualizza conteggio in corso 10 volte ogni secondo
if (millis()%100 < 1) Visual_Cont();
}
while (TempoMax > millis());
// Fine conteggio
Fine_Cont();
}


//This function will write a 2 byte integer to the eeprom at the specified address and address + 1
void EEPROMWriteInt(int p_address, int p_value)
{
byte lowByte = ((p_value >> 0) & 0xFF);
byte highByte = ((p_value >> 8) & 0xFF);
EEPROM.write(p_address, lowByte);
EEPROM.write(p_address + 1, highByte);
}


//This function will read a 2 byte integer from the eeprom at the specified address and address + 1
unsigned int EEPROMReadInt(int p_address)
{
byte lowByte = EEPROM.read(p_address);
byte highByte = EEPROM.read(p_address + 1);
return ((lowByte << 0) & 0xFF) + ((highByte << 8) & 0xFF00);
}


Circuit diagram of output from main PCB to Arduino. (I see lots of possibilities here)
I'd like to thank Roberto Chirio for the schematic.
The schematics on the website below are not too unlike (in essence) the ones for the Bicron or Ludlums ratemeters.

http://www.chirio.com/geiger_arduino.htm
 

Attachments

  • Geiger_bb.jpg
    Geiger_bb.jpg
    61.1 KB · Views: 45
Last edited:




Top