Sunday, April 4, 2010

Geiger Counter - Part 2 (complete)

[Edit 4/10/11] This project is now available in kit form - with PCB and parts. Please click here for more information.

This post describes how I went about integrating the circuit described in the previous post with an Arduino and a LCD display.

I put it all into an old laptop power supply case - not my best work, but as we said in Arkansas, "it ain't no piano". It does have a nice sturdy feel though.

After experimenting with an LED bar graph and a Nokia 3310 cell phone display, I settled on a simple and cheap 8x2 LCD display from Sure Electronics.

First I moved the Geiger circuit off the breadboard and on to a proto board.
Add caption
I kept things fairly tight which left a little room for future expansion. The piezo is mounted on the bottom of the board. I cut an opening in the bottom of the case under the tube.

On the other side of the case, I added the batteries, display and a small board for the Arduino MCU. It's just a simple stand-alone Arduino circuit using a resonator.
There are also 2 slide switches on the bottom - one to turn off the piezo, and the other to turn off the Arduino and display to save batteries. A salvaged push button on top turns the whole thing on and off.

The code counts the interrupts from the tube for a period of time, and displays the counts / minute as a value on the 1st line and as a bar graph on the second. I adapted the code for the bar graph from DeFex . It's nice because it uses custom characters to make partial blocks.

I used two different counting periods - a longer period when the CPM is below 100 (counting background radiation) and a shorter period when there is more activity. You can download the code here.

Here is the obligatory short movie . . .

It was a nice surprise to find our bathroom tile was hot. (Should help kill the germs!) Since the house was built in the '20s, I imagine it's uranium green glaze.


  1. Very nice, perhaps a different screen and button to see battery level too.. would complete it.

  2. This has saved me from the Japanese nuclear fallout.

  3. I am glad this helped you, and I am sorry you needed it. All the best hopes for the people of Japan.

  4. I am betting globally a lot of people are going to want to build these for their own peace of mind. Thanks for sharing your build info

  5. You may have taken the first step in solving the main problem with a geiger counter, which is that it is only a snapshot in time of the radiation being detected right now. A much more important question is, what is the sum of the radiation I have been exposed to? Can this be quickly modified to count the rads as I wear it? That would be incredibly useful beyond measure

  6. Spaceninja,
    I think you are talking about data logging. Since the Arduino is now interfaced to the Geiger counter, it would not be too difficult to add this. The CPM could periodically be written to a SD card, or, at least, to an EEPROM. A time stamp could also be written to the log.

    However, I would hesitate to say this is an answer to your question: "what is the sum of radiation I have been exposed to?" With any DIY counter, I think all you can be sure of is CPM. In order to measure exposure in Rem or Sv the device must be calibrated. The characteristics of the GM tube chosen (beta vs gamma sensitivity) may also be a factor. (I wish I knew more about this.)

    Logging the CPM over time would tell you when you were exposed to higher levels, and it might give you an *idea* about your total exposure, but I think calculating the actual exposure is more complicated - although even that may be subjective.

    Sorry about the "careful answer" and thank you for your observation. I think adding data logging of CPM would still be a nice addition.

    As I write, the disaster in Japan is still unfolding. This blog, due to this Geiger counter project, is getting 10 times the hits it usually does! Again, my wishes for a safe outcome for the people of Japan.

  7. A kit would come in handy now.

  8. I did a little investigation on the "calibration" you mention. It seems that CPM is directly convertible into mSv/year.
    Here are some conversions:
    300CPM == 0.5mRem/hour == 43.8mSv/year
    (1Rem == 10mSv)
    According to this article
    the max dose allowed for radiation workers is 50mSv/year, which makes it a little bit more than 300CPM (for an entire year).
    So you can easily modify your Arduino code to display the radiation in mSv/year now.

  9. "A kit would come in handy now."
    I've been thinking about that too!

    I have a board designed that will make the high voltage circuit and also hold the ATmega. It's 3.8 x 7.6 cm (1.5 x 3 inches). I plan to send it in for a small test run tonight. The board alone should make it much easier to build this project.

    Then, if there is enough interest, I could source most of the parts - probably excluding the GM tube, ATMega, and LCD.

    Since you have been around the block on this, I'd appreciate any advice you wish to PM me on.

    Thanks for the CPM to mSv conversion. I have a collection of several formulas that don't confirm one another, but your's might be the most reasonable. Where did it come from?

    Thanks for your help and encouragement!

  10. CDV-700 Geiger counter has 2 units of measurement on the indicator: mr/hr and C/M. The scales seems to be liniar and 300 CPM corresponds to 0.5 mr/hr. Conversion from milirens to siverts is direct (1Rem == 10mSv).
    Will PM you.

  11. Hi There

    I just found this link about another arduino project and the conversion from CPM to Sievert. maybe interesting to take a look at it if you want to implement this function :

  12. Funny! I was just reading that when I got notified of your comment! (Then I couldn't find it here, and had to release it from Google spam for some reason.)

    Yes, great information on that product and the conversion from CPM to Sv. It looks to be well thought out. I will likely use it. Thanks for the tip.

  13. Thanks for the awesome kit!

    Id love to add a small learning of mine. I tried powering my new GK-mini from a bench power supply, I saw that the average power draw was somewhere around 30mA or so.

    I set my limit and voltage to 5v, 0.05A and hooked it up. All was good until I hit the 'Test' (TONE) button... The counter continually reset from that point onward. I did a little further reading and found that tone mode can use up to 150mA which was obviously why it was reseting. Increasing my current limit to 200mA fixed the issue!

    Anyway thanks for the great resource and for sharing your knowledge.

    1. I'm happy to hear you like the kit.
      Yes, Tome Mode uses much more current than Click Mode.
      It was interesting to re-read how this post spanned the Fukushima disaster.