It all began with this comic strip: http://postnukecomic.com/comic_page.php?issue=4&page=3

A spark of interest led me to search for Geiger counters myself, and see if perhaps I could buy a crank powered Geiger counter. Thirty minutes of fruitless Googling, and I realized that not only did no such thing exist, Geiger counters, whether digital or analog, old or new, were ridiculously expensive.

Two years later, after acquiring the experience from a year in the EE program here at Cal Poly, a summer in an EE internship, and hundreds of hours of exploring the world of AVR microcontrollers, and I believed I had what I needed to make my own.

After a short time I was able to build what I would consider the most important part of the Geiger counter — the high voltage power supply. I chose to use a standard boost converter topology, rather than the much more common transformer based options. One, because I appreciated the simplicity of boost converters and wanted to learn more about them, and two, because I simply knew very little about AC and transformers.

Then a simple test to see whether it was feasible to run the Geiger counter on a crank power charged battery pack. During the summer I ordered a cheap crank powered LED flashlight, which I soon tore apart to get a look at its innards. It contained a 60-100mAH NiMH battery pack at 3.6V, and a circuit board containing an ASIC to control the LEDs, and a bridge rectifier and two other diodes. At first the configuration seemed pretty strange, specifically why they would use a bridge rectifier and two additional diodes, but after drawing the equivalent circuit out, it turned out to just be a 3 phase rectifier (I assume they used this configuration to save a little money). My initial testing was pretty good, the Geiger counter ran for around a minute and a half under this battery power alone, though the LCD was the weak point, needing a relatively high voltage to operate, and much greater current to run the backlight. In the final configuration, I think I will have the backlight disabled under crank power, and only available if the unit is running on 3 AAA battery power. [Update] The Geiger counter is now going to run strictly on AAA battery power to reduce the size and complexity of the unit, as well as make it production ready, since all the parts are now available directly through distributors.

Next, came the LCD. Although I had the Geiger counter functionally working on the PolyBot board (an Arduino like platform geared towards robotics), I had to adapt the program to work on one microcontroller. It took only a day to get the LCD working with the ATtiny2313, and it was able to display characters, strings, and move the cursor to any location. Next up, I had to write an integer to LCD function. I didn’t have much luck looking at the PolyBot library, since it simply called a function “itoa” to do the dirty work of breaking an integer down into the individual characters. So after a frustrating day and a half, I managed to get this last piece done, and the result is the proof-of-concept Geiger counter, all operating under the ATtiny2313 to do the PWM generation for the boost converter, the input from the Geiger Muller tube and corresponding output to the speaker, and the calculations of counts per minute and milliroentgen per hour, which were displayed on the LCD.

 

Here is the latest video of the Geiger counter in action:

3 Responses to “The Geiger Project”

  1. Gregor Porenta said

    Hello Justin!
    I like it your Geiger counter.
    For fun i want to build similar counter, but I can’t program my AT tiny 2313. I want to ask you, can you send me by mail HEX code and electrical scheme?
    Did you write program in C++ maybe?

    Greetings
    Gregor Porenta

    • jkenny23 said

      The program was written in C in AVR Studio 4.17. I programmed the ATtiny2313 using the AVR ISP mkII. Info on how to program AVR’s and example code can be found on Instructables.
      My design, including PCB, code, and case, is proprietary at the moment. If you have general questions regarding code or how the systems work, I’d be happy to help.

      Much of the information of how the circuit works can be found in the “more info” section here: http://www.youtube.com/watch?v=uIHd5USxMVw
      There is abundant information on how to use a character LCD, here’s an example: http://symlink.dk/electro/hd44780/
      In order to read the pulses generated by the Geiger tube, I used an edge triggered interrupt. The pins for this will be labeled as INTn on the Pin Configuration diagram in the datasheet. Using interrupts requires an interrupt service routine, which is structured like a function in the following way:

      ISR(/*name of interrupt handler here, for example INT0_vect*/) //the name of the interrupt handler always has _vect after it
      {
      //code here
      }

  2. Nice blog here! Also your website loads up very fast! What web host are you using? Can I get your affiliate link to your host? I wish my website loaded up as quickly as yours lol Take a look at my blog whenever you feel like doing so. thnks!

Leave a comment