How to build a Geiger-Mueller counter (dosimeter/intensimeter): open hardware&source do it yourself hobby construction


Radioactivity was one of the phenomenons of physics which fascinated me already in my childhood, when I was reading popular books about its discovery and the pioneers like Marie Curie etc. Recently I revisited the idea of building a Geiger-Mueller counter, when I saw on the news the poor guy Litvinenko, who has been served a polonium-enriched tea by KGB. I am definitely not paranoid enough to check my food or drinks, nor did I build it because of being afraid of the safety of nuclear power plants in our country (we are hundreds of kilometers far from sea, so no tsunami worries), just for a mere curiosity and fun. Actually I would also be quite curious to measure the intensity and dosis of X-rays used in the security scanners at airports as well as the increased background in high altitudes. But I admit that cowardly I did not dare to take the device with me on an flight, being afraid that in todays paranoid times an unfamiliar, strange looking device might attract an unpleasant attention of the TSA or board personnel.

On the internet some simple constructions can be found, but typically they do not employ particularly well stabilized power supply and the pulses are just made audible or counted by a counter without further processing. For example look at the interesting pages of the high voltage guys Jochen Kronjaeger and Danyk. I have thus decided to add some bells and whistles to my homemade device - controlling the device by an ATmega16 microcontroller, which allows to make stabilized high voltage power supply for the tube with a software-controlled voltage (possibility to make exchangeable probes with tubes of different parameters), more sophisticated pulse detection (should help for pulse trains are higher counts), and post-processing to correct for dead time and compute approximate microsievert values.

Recently I discovered that there exist some independent but closely related projects which also employ the Atmel AVR microcontrollers, like the GM board for Arduino or a commercial kit with ATmega128 and USB interface. The advantage of my construction is imho the software-adjustable high voltage power supply and more advanced signal processing in analog circuitry as well as in digital (computing dead time correction).

A nice introduction to the topic of Geiger-Mueller tubes can be found here. I have employed the ZP1320 GM tube, which is suitable for low radiation levels and is sensitive to gamma and beta rays. Notice that GM tubes are rather insensitive to soft X-rays, say below 30keV (except specifically designed tubes), so be careful of severe underestimation of the dosis when detecting X-rays - the datasheet sensitivity holds strictly just for gamma rays of one particular energy. Anyway you cannot take the microsievert reading too seriously, unless you have a possibility to make a calibration. I have built the device on a prototyping universal PCB and a posteriori captured the schematics in eagle - hopefully not many errors inside.

Schematics of the Geiger counter is here as Eagle file and here as PDF

The operation of the circuits should be quite obvious, just I note that I employed two pulse detection methods: 1. comparison with the threshold voltage employing the internal analog comparator of the ATmega; 2. taking analogue derivative of the signal (thresholded by some diodes to remove noise) using the second operational amplifier, negating this signal by a transistor and using INT1 interrupt. (You might need to check whether it works properly with another GM tube using oscilloscope.)
In my case I have made a bad decision in the mechanical layout of the device, placing the GM tube too close to the HV power supply and some induced noise makes the counts by method 1 about 10% higher than by method 2, so I preferred in the software the values obtained by method 2.

Here you can download the

open source firmware for the homebrew Geiger-Mueller counter - source code for the ATMega microcontroller

published under the GPLv3 license. In the source code, connections of ATmega pins to the control and power parts are listed, for more details see the above schematics.
Depending on the version of avr-gcc and headers you might need the header backward.h
If you just want to build it without cross-compiling the source, here is the hex file for ATMega16 MCU. External crystal 14.7456MHz is assumed, so do not forget also to program the fuse bits appropriately (I used fuse_l=0x2f and fuse_h=0xf9).

The left button selects the display mode - short and long time average rate, cumulative rate/dosis, raw count number etc. Right button toggles display light. Left+right button reset the counter. There is also a connector for firmware upload and TTL-level serial line, which implements several commands (see the source code for details), allowing a remote-controlled operation suitable for example for experiments with X-ray tubes controlled remotely from a behind a shield.

Top view of the device.


Here we have a weakly radioactive sample.


Inside it is a bit ugly...


Back to my electronics page


Back to my hobby page


My main page with e-mail contact


TOP