Geiger Counter Model: NGMC-V1

Hi all,

I just took this geiger counter as sellers describe "Model: NGMC-V1"
http://www.aliexpress.com/snapshot/6784484322.html?orderId=68203318265743
I tried to search code for it
for few hours and didn't found anything, asked the seller and he don't know anything as they describe in the selling section " We do not provide technical support for Arduino code. You can learn more at home page of arduino. " Is there any example that I can use it with that model? I asked other people online as well and they told me to search on arduino web page but couldn't find anything about that exact model of geiger counter.

There is as well that videos but no codes:

Vid. 1

Vid.2

www.361ic.net

rhelectronics.net

I even tried the video websites, in the 2nd website there is a geiger counter kit different than mine
but they got guild there is how to assemble it and how to install the arduino IDE and lib's they talk about the code too but I couldn't find anything about code.

Is anyone that know anything about it? I need some help.

I found a code from this video:

#include <SPI.h>

#define LOG_PERIOD 15000     //Logging period in milliseconds, recommended value 15000-60000.

#define MAX_PERIOD 60000    //Maximum logging period

unsigned long counts;             //variable for GM Tube events

unsigned long cpm;                 //variable for CPM

unsigned int multiplier;             //variable for calculation CPM in this sketch

unsigned long previousMillis;      //variable for time measurement

 

void tube_impulse(){               //procedure for capturing events from Geiger Kit

  counts++;

}


void setup(){                                               //setup procedure

  counts = 0;

  cpm = 0;

  multiplier = MAX_PERIOD / LOG_PERIOD;      //calculating multiplier, depend on your log period

  Serial.begin(9600);                                    // start serial monitor

 // uncommennt if you have time-out problem to connect with Radiation Logger
 //  delay(2000);
 //  Serial.write('0');                                      // sending zero to avoid connection time out with radiation logger
 //  delay(2000);
 //  Serial.write('0');                                     // sending zero to avoid connection time out with radiation logger

  pinMode(2, INPUT);                                   // set pin INT0 input for capturing GM Tube events

  digitalWrite(2, HIGH);                                 // turn on internal pullup resistors, solder C-INT on the PCB

  attachInterrupt(0, tube_impulse, FALLING);  //define external interrupts

}

 

void loop(){                                               //main cycle

  unsigned long currentMillis = millis();

  if(currentMillis - previousMillis > LOG_PERIOD){

    previousMillis = currentMillis;

    cpm = counts * multiplier;

        Serial.print(cpm);                              // send cpm data to Radiation Logger

        Serial.write(' ');                                // send null character to separate next data

    counts = 0;

  }

}

I'm not really sure but a bit makes no sense, what about uSv? Can someone explain to me? Anyone who used or use geiger counter not just theories but practice.

You must calibrate each Geiger tube/counter by comparing with an accurately calibrated counter, using a radiation source emitting the type of radiation of interest.

Google "geiger counter calibration service" for commercial offerings.

You must calibrate each Geiger tube/counter by comparing with an accurately calibrated counter, using a radiation source emitting the type of radiation of interest.

Google "geiger counter calibration service" for commercial offerings.

As I understand the geiger i took is ready to use, probably is calibrated but my problem is not that but the code, i need a code for arduino to get the data on my PC.

In principle, your Arduino code should just count and display the number of impulses received per minute (aka CPM). Depending on the tube you use, CPM translates into uS/h (micro sieverts per hour).
You can adapt BroHogan's code (already at version 10 or so):
https://sites.google.com/site/diygeigercounter/software

Depending on the tube you use, CPM translates into uS/h (micro sieverts per hour).

As the seller described the tube is M4011

You said depending on the tube, what exactly? If the code depends on the tube how exactly i will know
what kind of code i need if there is not so many examples on the internet. We CPM ok but how we
transform them in uSh that's the question.

We CPM ok but how we transform them in uSh that's the question.

Answered in reply #2.

From what I understand, each tube type has its own characteristics (sensitivity, voltage required, dead time etc etc), and these should be found in the datasheet.

For example, the code I pointed you to, uses this definition for SBM-20 geiger tube:

#define PRI_RATIO 175.43 // defaults to SBM-20 ratio

To approximate/estimate this ratio for your tube, compare its sensitivity (from datasheet) with SBM-20's.

The Arduino software will only does these steps for you:

  1. count the pulses (in CPM) - independent of the tube type
  2. multiply CPM with the tube's ratio (uS/h)
  3. display the numbers (CPM and uS/h)

The Arduino software will only does these steps for you:

  1. count the pulses (in CPM) - independent of the tube type
  2. multiply CPM with the tube's ratio (uS/h)
  3. display the numbers (CPM and uS/h)

Can i get code? :smiley:

The ratio of CPM to uS/h depends on the tube, the tube voltage, the type of radiation and the energy of the radiation.

First you have to know what type and energy of radiation you want to detect.

Beside the board you have (the geiger counter itself), you need an arduino and an LCD (display).
Connect them together, by following the directions from the site I linked to (brohogan's).
Then upload the code provided, any version you wish (start with the simplest, the earliest; it's easier to manage; code got complicated as evolved).
Then keep us posted on your progress :slight_smile:

From the mouth of the geiger counter authority himself (BroHogan):

M4011 - Glass tube made (new) in China. Claimed to be more sensitive than the SBM-20. Although I once got high readings, it now seems similar to the SMB-20 - not too impressive, especially at it's price. It's possible this tube may be light sensitive which would explain the initial high counts but that is not confirmed by other users. It is reported that a good CPM to uSv/h conversion rate for this tube is 151.5.

So use the ratio of 151.5 (replace the 175.43 in the code).

It is reported that a good CPM to uSv/h conversion rate for this tube is 151.5.

Without stating the type and energy of radiation, that number is utterly and completely useless. See Sievert - Wikipedia

Geiger counters are very useful for warning you that certain types of radiation are present. If the CPM goes up very much above background, that is a cause for great concern. Either leave the area or investigate the cause (after donning protective gear and clothing).

But you are just kidding yourself that conversion of CPM to uSv/hr does anything useful, unless you know what type of radiation is present.

That tube will not even detect most alpha particle radiation, for example, and probably is very, very inefficient at detecting X-rays and beta rays.

That tube will not even detect most alpha particle radiation

That tube will detect NO alpha at all. For alpha, you need tubes with mica window (that lets alpha particles in, unlike glass/metal).

But we all understand that this is a hobby project (I'm guessing), where large margins of error are allowed and expected.

I think the important goal of such a device is to indicate when the radiation is higher than normal, and eventually how much higher.

I think the important goal of such a device is to indicate when the radiation is higher than normal

Yep, and CPM does that quite well, if the tube can even detect the radiation present.

florinc

But we all understand that this is a hobby project (I'm guessing), where large margins of error are allowed and expected.

This is a prototype project as an example of real and accurate components but I need that exact Geiger counter to be mostly accurate too if possible at the range of his detection of beta and gamma in uS/h probably this exact tube is not capable of detecting above a exact (max) uSh but that it's ok I need at least some reading to saw that I can detect nuclear radiation.

jremington

Beside the board you have (the geiger counter itself), you need an arduino and an LCD Connect them together, by following the directions from the site I linked to (brohogan's).(display).

If you look above the model of geiger counter does not have a lcd and I'm not gonna use a lcd at all I just need to connect the module to an arduino/atmega and get the readings in uSh.

Now I can't test the module because I don't have it in my hands yet I just ordered it and i will have it in few months probably so what I'm doing is collecting materials so when it will arrive i will test it immediately, that's one of the most important parts of my project.

If you look above the model of geiger counter does not have a lcd and I'm not gonna use a lcd at all I just need to connect the module to an arduino/atmega and get the readings in uSh.

So how are you going to display the radiation numbers? Send the info to the PC (on serial)?

I can detect nuclear radiation.

What radiation do you want to detect? How are you going to test the device?

So how are you going to display the radiation numbers? Send the info to the PC (on serial)?

Yes.

What radiation do you want to detect?

I need just uSh readings, as i know beta and gamma.

How are you going to test the device?

I don't know, that's what I'm trying to figure out, the module that i took has pins for arduino i need a code compatible to that module and get uSh on my PC serial monitor, that's all I need.

You need to understand the geiger's tube working principle first. That's the element that actually "measures" radiation. Basically, each high-energy particle attracted to its center electrode (anode) generates a "click" with the help of the electronics around the tube. This "click", essentially an impulse, will trigger an interrupt function to be executed by your Arduino. That function counts the number of clicks. That's basically it. There is no uS/h anywhere. You have to calculate that, based on the number of clicks.

You need to understand the geiger's tube working principle first. That's the element that actually "measures" radiation. Basically, each high-energy particle attracted to its center electrode (anode) generates a "click" with the help of the electronics around the tube. This "click", essentially an impulse, will trigger an interrupt function to be executed by your Arduino. That function counts the number of clicks. That's basically it. There is no uS/h anywhere. You have to calculate that, based on the number of clicks.

I understand all that already. What i need to learn now how the code works for that exact tube but to understand a code you need a code an example or something, some people gave me links to read. So if you or someone else can explain me in easier way that would be nice.

(You can't learn something without examples and it's always easier to understand something when someone explain you and answer your questions).