<< Click to Display Table of Contents >>

Navigation:  »No topics above this level«

The Mighty Ohm Geiger Counter Kit and other stories (updated 2024.05.23)

Return to chapter overview

One of my favourite Christmas presents was the "Mighty Ohm Geiger Counter Kit". Here's an overview of this excellent kit, with a look at some other radiation detectors, and at the end there are some simple circuits for one you can build yourself.



Radiation is all around us. Some of it is natural, some of it is man-made. Natural background radiation in Europe is about 0.1µSv/h (microSieverts-per-hour), but it varies a bit depending on where you are. For most of us, radiation is absorbed from medical or dental x-rays, or by the inhalation of radioactive airborne particles, often from natural radon gas. Geiger-Müller (GM) tubes can detect beta and gamma radiation, and some also detect x-rays and alpha radiation. Making a detector with a GM tube is surprisingly easy.

After the reactor exploded in Fukushima, radiation levels (mostly caesium and iodine) around the plant were 400mSv/h (milliSieverts-per-hour), which is about 4 million times the background radiation level. Scientists say that exposure to over 100mSv/y (milliSieverts-PER-YEAR) "could be" bad for your health, which is about 11µS/h (microSieverts-per-hour) - that's a bit over 100 times the normal background radiation.

The number of cancers and deaths from Chernobyl and Fukushima were far fewer than expected, indicating that low-to-medium doses of radiation may not be quite as deadly as we think.

The radiation dose from a computerised tomography (CT) scan procedure is from 1 to 15mSv (in a few minutes). Which is a very high level, so don't have too many of them!

Radon gas emits alpha particles. Inhaling radon gas causes these alpha particle emitters to be lodged in your lungs, which may cause cancer. You cannot test radon levels using most Geiger counters because alpha particles can't even pass through the case, and certainly not through a GM tube's metal housing. Radon meters often use PIN photodiode detectors (see below), which are cheap but are also sensitive to light and other ionizing radiation, so what you are measuring may not be radon at all. It could be the granite walls, or that old dental X-ray machine that's rusting in the corner. Air is usually circulated over the PIN photodiodes by a small fan, to maximize the exposure to alpha particles emitted by the radon gas. (The company 'Radon FTLAB' has a better way to do it, see http://radonftlab.com/radon-sensor-product/.) Radon gas is 7.5 times heavier than air, so you must put the radon sensor near the ground (if it's not granite), and definitely not on the ceiling! (but they never tell you that)

If you want to learn more about the types and effects of radiation on humans and where that radiation comes from, take a look at the government websites, e.g.

GM tubes may not produce reliable results. They often over-estimate particles with low charges (low kilo-electron-volts, keV), and under-estimate the levels of highly charged particles (high keV). This is because GM tubes do not have a linera response when it comes to keV levels. The following video entitled "Is your Geiger counter lying to you? Understanding the limitations of your Geiger counter" has a very good summary of the problems (the other presentations on this channel are a bit weird)...


The Mighty Ohm Geiger Counter kit

The Mighty Ohm device detects beta and gamma radiation, but not alpha particles because the weedy alpha particles don't make it through the GM tube's metal case. Alpha particles can barely make it through a sheet of paper, so I wouldn't worry about them too much, unless they get into your lungs.

This is probably the best kit for the price, at about €80 including a nice laser-cut transparent case. It contains a programmed microcontroller which does all the calculations for you, with a serial port output, and it is battery powered so you can use it as a stand-alone device with the satisfying audible click output. My one came with the SBM-20 tube, but you may get a different tube, according to availability. It will also work with the new M4011 and J321 glass GM tubes.

You can order it direct from Mighty Ohm, or from ElektorStore in Europe:


The kit comes with excellent easy-to-follow instructions. It's important to solder in the parts in the right order, smallest parts first, so they are held in place when you turn the board over to solder on the underside. I made it in about an hour, and it worked the first time I powered it up. You do need to know how to identify the components, and have some soldering skills. If it doesn't work, it's probably because a part is in the wrong place or is the wrong way round - so always triple-check everything.

Here's a link to the assembly instructions:
and the circuit diagram:

HT voltage adjustment

You can adjust the HT voltage to 400V, as required by the GM tube, although the GM tube seems to work regardless. The current generated by the battery-powered HT supply is so low (measured in µA, supplied from the charge in a 10nF capacitor) that if you connect a voltmeter it causes the voltage to drop to about half the actual voltage, because the voltmeter has an impedance of 10Meg ohms. If you have a very cheap meter, it could have an impedance of as low as 1Meg ohms, then it's even worse. So to measure the HT voltage, you need to put a 1Giga ohm resistor in series with the meter, this gives a 1Giga ohm + 10Meg ohm impedance, and the meter reads 100 times less (400V = 4V). If your meter is 1Meg ohm, it reads 1000 times less (400V = 0.4V). The problem is, most people don't have a 1Giga ohm resistor lying around - I think this essential component should come with the kit (that's my only criticism).

This is a link to the recommended description of how to make a very-high-impedance measurement:

On my 10Mohm meter, with the 1Gohm resistor is series, it reads 4V at 400V HT. The little blue resistor pointed to by the red arrow is my 1Gohm resistor. I just hung it off test point TP2, and took the ground from J6 pin 3, as suggested in the instructions.


one-gig-resistor 1Giga-ohm resistor (one thousand million ohms)


The unit should produce between 10 and 20 clicks per minute just from the background radiation, but this varies according to your location. If you hear a click or two every few seconds, then it's working. You may have a website which will tell you what the background radiation is in your area. For Switzerland it's around 0.1µSv/h (microSieverts per hour) which is 100nSv/h (nanoSieverts per hour), see https://www.naz.ch/en/aktuell/messwerte.

To get the radiation level, you convert the number-of-clicks-per-minute to microSieverts by dividing it by a constant which is related to the sensitivity of GM tube you are using. It's quite complicated to calculate this constant, but for the Mighty Ohm's SBM-20 tube I used 174.0, so µSv/h = clicks-per-minute / 174.0. Do this using floating point data types to get a floating point result.

To test it properly, you need a radiation source. See the section below.

Technical note: How to calculate the conversion factor for SBM-20 GM tube

USB connection

One of the best things about the Mighty Ohm device is that it's incredibly easy to connect to your PC or laptop's USB port to receive radiation count messages. It has a connector for a serial-to-USB cable, which you must buy separately, or can make one yourself you have an old 3.3V TTL-to-USB converter (FT232) lying around. The cable you need is the FTDI TTL-232R-3V3 (3.3V, 6-pin, 0.1" pitch), which is available from most of the large online electronics stores, DigiKey, Mouser etc. This costs about $25.


You can plug this cable directly onto the J7 SERIAL pin connector on the Mighty Ohm board. Make sure you connect it the right way round, the pins are intuitively marked 'blk' and 'grn' to match the black and green wires of the USB adapter. One connected, you can read data from the USB as though it is an old-fashioned serial port. To find the serial port number (COMxxx), open the Windows "Device Manager", expand the "Ports (COM & LPT)" branch and you will see an entry like "USB Serial Port (COM34)". On Windows 10, you may need to install a driver, see the FTDI website for details.



If you have a serial terminal emulator program installed, you can use that to display the messages from the board. For example, I use PuTTY, which can be downloaded from here:

All you need to do is select 'Serial' and the right COM port (e.g. COM34), at 9600 8N1 (9600 baud, 8 bits, no parity 1 stop bit). You will then see the messages from the board.

At first, the µSv/hr readings (micro-Sieverts-per-hour) will be low and will slowly increase. It takes up to 60 seconds before you get accurate readings.

CPS = counts per second
CPM = counts per minute
uSv/hr = microSieverts per hour
SLOW/FAST/INST = this changes according to the number of counts
 SLOW  60-second sample period, it takes 60 seconds of averaging before it's accurate
 FAST  5-second sample period, it takes 5 seconds of averaging, faster but not so accurate
 INST  more than 255 counts per second, the 8-bit sample buffer cannot hold the data, there is no averaging



Arduino Software for the Mighty Ohm

The Mighty Ohm has a pulse output on J6. This is a 3V level (2 x AA batteries) digital pulse, which can be connected directly to a microcontroller like an Arduino. For safety and a nice sharp digital pulse, I put this through a 74HC14 or CD40106B Schmitt trigger inverter chip powered from the microcontroller. This is necessary if connecting to a 5V microcontroller, or if the microcontroller does not like inputs above 3.3V - two fully-charged AA batteries in series could produce a high level of 3.8V which might damage the microcontroller, but would have no effect on the inverter chip which would pass on a max. 3.3V pulse to the µC. Connect the pulse signal to an input on the microcontroller which can generate an interrupt.

The software counts the number of pulses every second (the number of interrupts) and averages them into a counts-per-minute value (CPM), which is used to calculate the micro-Sieverts-per-hour value by dividing it by a "CPM to µSv/hr" conversion constant. You could also calculate the milliSieverts-per-year value too, so you know whether you're going to die or not ;-)

  Arduino Source Code, GeigerCounter.h   [Click to expand]

A "rolling averager" is used to smooth the counts

  Arduino Source Code, RollingAverage.h   [Click to expand]


A few other DIY and off-the-shelf Geiger Counters

Here's a quick took at a few kits and some of the best-selling off-the-shelf devices. There are way too many to review them all, go to YouTube for that.


gglabs-logo GRAD - GGLABs Micropower Geiger-Muller Counter Arduino Shield
A pre-assembled device with two GM tubes. GRAD is a complete solution for radiation counting in an Arduino shield form factor. Its main features are dual tube support to increase sensitivity and very low power consumption.


diy-geiger DIYGeiger

These are the ultimate hacker's Geiger counters. Several kits are available, with LCD displays, WiFi, and even a remote control. The WiFi can use the ThinkSpeak and MQTT brokers. These look very useful for remote monitoring. I guess they'll soon have a LoRa version too.

dfrobot-icon DFRobot

The DFRobot "Gravity" Geiger counter looks very pretty. It's about the same price as the Mighty Ohm, but does not have so many features. It uses a Chinese glass GM tube, the M4011 or J321, also running at 400V. It needs external power, there are no batteries, so you can't take it to the supermarket as a stand-alone radioactive fruit detector, unlike the Mighty Ohm. It also has no microcontroller, so it doesn't have a serial port output. It must be powered by an external 3.3V or 5V supply (usually from the external microcontroller) and has a digital pulse output which must be connected to the external microcontroller's interrupt input. The microcontroller must contain a program to do the averaging and Sievert calculations and display them, or pass the results to a host computer. They have a "Gravity Griger [sic] Counter library" for use with Arduino's, but you can also use my code above. I have tested this device, and it works fine, giving similar readings to the Mighty Ohm.



Siwa/Joy-IT JT-RAD01 and FNIRSI-GC01

These are either both the same device, or one of them is a Chinese clone, or maybe they're both Chinese clones. One day I'll buy one and give it a test. I think the FNIRSI version is the original, and has a slightly better display. The FNRSI version is available from Bangood/fruugo/Temu/AliExpress, and the Joy-IT (also Chinese) version is from German suppliers. They both use the cheap Chinese glass GM tubes, the M4011 or J321 - but the tube type may have been changed, see bad points below.

These have a colour display and trend logging. They are robust and splash-proof, but if you drop it then the glass GM tube would probably break (anyone tested that? :-). They cost about the same as the Mighty Ohm kit, and many of the old reviews give both of them 4 to 5 stars. The Joy-It uses the CH32F103 32-bit Cortex M3, which is nice.

Bad points

The USB port is only for charging, so they can't be connected to a host computer via USB and the logs cannot be uploaded into a computer!!!

There are problems with the rechargeable battery life. I read that it discharges even if it's switched off, so if you don't use it very often then you have to keep recharging it before use, which is a slow process. The RTC has a separate CRxxx coin battery, which (theoretically) stops the clock resetting if the main battery runs out. The biggest complaint is that there is no audible "click" when a single particle is detected - there is no immediate audio feedback, it only beeps if a certain level is reached - there should be an option for that! (There's a way to add the clicks, by soldering in a small capacitor, see the link below).

It seems that they have recently changed the type of GM tube that is used, from a good one (M4011 or J321) to one that is basically rubbish (J613). So buying a new device may not be a good idea, unless you want to upgrade the GM tube. There will probably be a YouTube video about that soon. Note that the GM tube is soldered in, you can't just un-plug it.

jt-rad01       fnirsi-gc01


Here's a good review of the FNIRSI device, which exposes the use of the bad GM tube in the new models

How to add particle clicks to the FNIRSI (just solder in a small capacitor)

Below is a Joy-IT device, using the M4011 tube. The tube is soldered in.


So if you're not a hacker or don't want to make a kit, one of these could be a good choice - but ONLY if you can get one without the J613 tube!

For other devices, there are literally thousands of reviews on YouTube. It may be worth spending a bit more cash to avoid the "J613 tube problem" with the cheaper models.


Geiger Counter Watches

Why not have the detector in your smart watch? A few have tried it. Some use tiny GM tubes (probably not very accurate), and some use PIN diodes (also not very accurate).

When the new Caesium Iodide crystal detectors (see below) get smaller and cheaper, then the watches will be good, and they'll put them in your phones too.


Sparkfun Pocket Geiger Radiation Sensor

This uses the FirstSensor PIN photodiode, see section below. Wrapped in copper foil to keep out the light. It may be useful for measuring the radiation in your pocket :-)


RadiaCode 102/103  <<<<  Recommended!


The RadiaCode device is a "gamma spectrometer". Below, the RadiaCode device is on the right, your phone running their software is on the left.


This seems to be one of the best devices. It costs $300 - about the same as a mid-range GM tube detector. But it does not use a GM tube. Instead, it uses a "Caesium Iodide crystal detector with a silicon photomultiplier" (see below). It is so sensitive that it can identify the isotope (the radiation source) you are measuring, e.g. Radium-226, Caesium-137, Thorium-232, Am-241 and a number of other isotopes. You can calibrate it too. One criticism is that is does not seem to register anything from uranium glass, unlike my old GM tube devices - but this could be because the RadiaCode does not register beta radiation.

Here's what it says on the website:

"The world's first series of pocket-sized radiation detectors and spectrometers, engineered for all natural science enthusiasts."

Ultrafast sensitive scintillation detector

Isotope Identifier and spectrum analyser

Radiation tracks with Google Maps

Energy and temperature-adjusted dose rate and spectrum

Bluetooth connection

Food testing mode for contamination

Mobile and PC applications with extra features

Rush out and buy one now!

(Please note that the author is not working for, affiliated with, paid by, receiving bribes, backhanders, cases of champagne or free flights on private jets, from RadiaCode Ltd, Cyprus. But I'm working on it :-)


Radiation Sources

If you don't live near Fukushima, Chernobyl or Tunguska, then you will need another source of radiation to test your device.

Official radiation sources are available which can be used for calibration by adjusting the counts-per-second divider constant. These emit a known level of known particles, and can have a half life of up to a few thousand years. They can be dangerous and are very expensive, so I wouldn't mess with them unless you already have access to one of these radiation sources in your lab or bedroom.
e.g. https://www.drct.com/radioactive-sources.html

You can buy radioactive rocks whose emissions have been measured and are useful for testing. The rocks sometimes come with a printout of the readings, depending on where you buy them. I suspect there are a lot of "fake rocks" out there though. You can buy certified uranium ore in a few places, but it's also expensive:

Ionization smoke detectors contain a weak radiation source, Americium-241. Am-241 emits alpha and "soft" gamma particles. My SBM-20 doesn't register anything, but the RadiaCode-103 has a high reading. Americium-241 could be used for checking the calibration of your RadiaCode, with a very distinct peak at 59.6KeV and a smaller peak at 26.3KeV. See https://youtu.be/tqjrcrbsln4.



You can sometimes find old clocks or watches with dials that use radium paint. Radium is millions of times more radioactive than uranium. Take your Geiger Counter into the fleamarket or junk shop and see what you can find. But some of these old dials can emit dangerous levels of radiation, so take care - radium has a half-life of 1600 years, your own half-life is only 40 years. When I was young, the newspapers reported that many factory workers contracted mouth cancer from radium paint. They were painting the clock dials and using their lips to keep a fine point on the brush, as many artists do.

Another easy way is to buy some "uranium glass". This is glass that contains a small amount of uranium to give it a slight green colour, which also makes it fluoresce when exposed to UV light. You can buy uranium glass marbles quite cheaply.

I have a uranium glass art deco clock which I bought many years ago (I knew it would be useful one day), and two small shot glasses. When these are placed close to the GM tube, it increases the measured levels dramatically, from a background level of about 30 counts-per-minute to 220 counts-per-minute. But that's only 11mSv/yr, about 100 times below the maximum safe annual exposure level, so you can safely use the shot glasses every day! For some reason, the RadiaCode-103 device does not pick up much from uranium glass - more research to be done there.


You can find all the details about uranium glass here:

Mighty Ohm has a very good section on radioactive test sources, uranium glass, pitchblende and other radioactive ores:


Radiation Measurement and Exposure Units

The units used to measure radiation and exposure over time are very confusing. They use 'rad' (rad), 'rem' (rem), 'Sieverts' (Sv), 'Curies' (Ci), 'Roentgen' (R), 'Becquerel' (Bq), 'gray' (Gy) and 'Coulombs-per-kilogram' (C/kg). With any of the 12 prefixes between 'tera' (T) and 'nano' (n); and per-second, per-minute, per-hour, per-fortnight or per-year periods. Thankfully, they do not often use 'elephants', 'buses' or 'football pitches' as units of measurement yet.

1 rem = 10 milliSieverts per year = 1.142 micro-Sieverts-per-hour (µSv/h)

Typical background radiation is about 0.1 .. 0.2 µSv/h
The background level count is normally 20..60cpm, depending on your location and the sensitivity of the GM tube. It's higher when close to certain types of rock, or the Chernobyl reactor.

A millisievert (mSv) is defined as "the average accumulated background radiation dose to an individual for 1 year, exclusive of radon, in the United States."

1 mSv is the dose produced by exposure to 1 milligray (mGy) of radiation. In the historical system of dosimetry, exposure to 1 Roentgen (R) of X-rays results in absorption of 1 rad [radiation-absorbed dose], which had the effect of 1 rem [roentgen-equivalent in man]. The unit equivalences between the systems are given in the following table. Note that SI units are 1% of historical units.

SI Units

Historical Units

1 Gray (Gy)

100 Roentgen (R)

1 Sievert (Sv)

100 rad or 100 rem


1 Roentgen


1 rad or 1 rem

Here's a good summary


GM Tubes

The Geiger-Müller tube is a very simple gas-filled ionizing radiation detector, for detecting beta and gamma particles, some detect x-rays, and some will even detect the weaker alpha particles. A single "particle" of radiation ionizes the gas within the tube, causing the conduction of a few electrons from the cathode to the high-voltage anode. This discharge generates a single "click" via the detector's electronics. GM tubes are very old technology now, but they are still widely used due to their reliability. The main drawback is that they need a 300V to 1000V high-tension supply, but at very low current, usually measured in microamps. There are very few manufacturers of these tubes now, so most of the tubes used by hobbyists are old Russian tubes from as far back as the 1950s.

The main (the only?) manufacturer of new GM tubes in the USA is "LND Inc", see https://www.lndinc.com/. They produce one of the most popular tubes, the LND-712 https://www.lndinc.com/products/geiger-mueller-tubes/712/, which also measures alpha radiation because it has a glass window. This tube is rather expensive though, at $65 each plus $72 freight to Europe, with a minimum order of $100. This is old technology, and for that price you will soon be able to buy a Caesium Iodide crystal detector (see below). But if you can get hold of an LND-712, they are fun to play with, needing a 500V HT supply. The LND-712 will probably work with the Mighty Ohm, which can supply the 500V, but I haven't tried it.

The Chinese are making glass GM tubes, like the M4011, J321, J305 and the J613 (the J613 looks like an oversized reed relay, and everyone says that it doesn't work!). Glass tubes are not as robust as the old Russian tubes and are inferior to the new LND tubes (but they are much cheaper!). The DFRobot module uses the M4011 or J321 tube.

GM tubes are fast becoming obsolete technology, being replaced by the new scintillation devices like the "Caesium Iodide crystal detector with a silicon photomultiplier". See the RadiaCode 102/103 above.

There are lists of available GM tubes on Internet, with technical specs, conversion constants and even reviews, see the 'Useful Links' section at the end of this page.

Converting GM tube "clicks" to radiation readings

This is very easy to do. Register the pulses from the GM tube, average them over a suitable time period (according to the pulse rate) and provide a steady 'counts-per-minute' value (CPM). Divide the CPM value by a "CPM to µSv/h" conversion factor according to your GM tube and the type of radiation you are measuring. For the SBM-20, I used a conversion constant of 174.0 to get the result in microSieverts-per-hour (µSv/h). This result can easily be converted to other units.

Different conversion constants are needed because each tube type has a slightly different sensitivity to different radiation sources. More accurate systems handle non-linearity and calibration for each tube, and can use a different curve according to the radiation source.

Technical note: How to calculate the conversion factor for SBM-20 GM tube

All GM tubes have a dead time which means that they cannot produce another count until this (very approximate) time has passed. This affects the maximum count rate you can receive from the tube, and hence the maximum radiation level that it can read. The dead time for the SBM-20 tube is 190 microseconds. This means that the maximum frequency you can receive from this tube is about 5.2kHz, but in practice the maximum rate is 4kHz, according to the specifications - at around 4kHz the tube is 'saturated' and it cannot return higher readings. If no pulses can be received for 190µS, then counts may be lost, but you can use a simple statistical method to add back an expected number of counts that "may" have been missed. Maybe I'll add that to my code sometime. I determined the dead time by measuring the smallest time between random counts over a long period, which was 182µS, slightly less than the official value of 190µS for my tube.

Cheap GM tubes can produce after-pulses which drastically affect the readings. An after-pulse is a spurious count generated after a normal count, usually just after the GM tube's dead time. These are indistinguishable from normal pulses. "After-pulses are the result of excited atoms or molecules which are deionized by collisions and by the neutralization of positive ions." To put it simply, they are caused by the emission of secondary electrons. This can happen if chemically impure materials or gasses are used inside the tube, or if an insufficient "quenching agent" gas (usually bromine or chlorine) is used. The quenching agent is used to prevent the emission of secondary electrons.

A high count rate will increase the current through the tube, which may reduce the HT voltage, which in turn leads to a reduced count rate. You may see this effect as regular peaks in a count waveform. Reducing the series resistor may solve this problem.

Pretty pictures of GM tubes

These are the old Russian tubes that work with the Mighty Ohm. I received the second one.



(The following images are not to scale.)


The LND-712, one of the best, if you can get it (see above). Its glass end cover allows measurement of alpha radiation too.



This is the Chinese M4011 glass tube, as used by the DFRobot model. The Chinese glass tubes have a conductive coating on the glass which acts as the cathode. This gives them a rainbow sheen.

M4011 Specs
Operating Voltage: 380V ~ 450V, 400V recommended
Background Counts: ~25CPM
CPM Ratio: 153.8 CPM/(μSv/h)
Outline Size: Φ10mm x 88mm






J321 Specs
Operating Voltage: 380V recommended, starts at 350V
Background Counts: ~25CPM
CPM Ratio: 153.8 CPM/(μSv/h)

Finally, the J613. It's very small, so it misses a lot of particles, making it the least sensitive tube.





CPM to μSv/h conversion factors are dependent on the tube and the radiation source, for example



Using a PIN photodiode as an ionization detector

"A PIN diode is a diode with a wide undoped intrinsic semiconductor region between a p-type semiconductor and an n-type semiconductor region." Hence the name PIN from the p-i-n junctions. They are used mainly as photo-detectors in fibre optics and for IR receivers. But, when shielded from light, they can be used as ionization detectors.

PIN diodes are used in most low-cost (i.e. low accuracy) commercial Radon Detectors, and in some cheap hand-held radiation detectors.


Here's a few devices that you can read about...

Hamamatsu S14605

FirstSensor: Silicon photodiodes for gamma ray detection

FTLAB GDK1010 Gamma Radiation Sensor module
"The GDK101 is a solid state gamma radiation sensor module which has 10 sensitive PIN photodiodes and a transimpedance amplifier circuit (i.e. an opamp) controlled by a microcontroller."
From the one review, it seems very easy to use but it's not very accurate. At this time the PIN photodiode is probably not a good choice.

Sparkfun "Pocket" Geiger Radiation Sensor
Uses the FirstSensor photodiode, very useful if you you have radioactive pockets :-)


Caesium Iodide (CsI) crystal detector with silicon photomultiplier

A doped Caesium Iodide crystal absorbs a radioactive "particle" and emits a photon of light. By registering the number of photons with a silicon photomultiplier, it converts the photons to an output signal which is proportional to the number of particles. This is the technology used by the RadiaCode devices. Other materials can also be used, like Sodium Iodide, Lanthium Bromide and Cerium Bromide.

This technology will probably replace the old GM tubes in all portable equipment. But it's currently quite expensive, a single sensor costs between $150 and $15000, so if you buy a device based on this sensor, most of the cost is just for the sensor.

You can look up "CsI scintillator" for many hours of scintillating reading...

csi-scintillation-1   csi-scintillation-2

The "GS-2020-CSI Caesium Iodide Gamma Scintillation Detector" shown above costs just $3200. It needs 900V and is 23cm long - it's way too big for your handbag or your watch.


Yet more Geiger Counter circuits

It seems that everybody has designed one of these. So now it's my turn (see Disclaimer).

I didn't have any high-voltage BJT transistors lying around, so I used an old high-voltage N-channel MOSFET. Overkill I know, but most people have boxes of these under the bed. High voltage MOSFETs usually need a turn-on voltage Vgs(th) of at least 5V, so you could use a 9V battery, or use an external power supply for the Arduino (usually 7..9V) and take the power from that. The circuit will work with either solution.

It's based on a bog-standard boost-converter circuit. I've used a common CD40106B hex inverter chip to provide a 7kHz 50% duty-cycle oscillator and gate drive for the MOSFET. Because the load of the GM tube does not change much, you don't need a feedback loop to keep the voltage reasonably constant - a 100 ohm potentiometer to limit the inductor charge current is enough. The pulse shaper circuit uses an NPN transistor, powered by 3.3V from the Arduino. That's it. Look up "boost converter circuit" to find out more about how it works.

Select the GM tube's series resistor R5 according to the recommendation for your tube, usually 4.7Meg or 10Meg. To adjust the output voltage, use a 1Giga-ohm resistor in series with your voltmeter as described in the Mighty Ohm testing section above. Set the voltage without the tube connected. Start with the potentiometer at max. resistance (lowest voltage out), and reduce the resistance until the output increases to the desired voltage as recommended for your tube. If it worked, insert the GM tube and repeat the adjustment. You can get up to 1000 volts from this circuit, but the maximum voltage for the UF4007 is 1000V, so use a 1N6529 and a 3kV 10nF capacitor, and reduce or remove R4 to get a higher voltage output range. If R4 is 56 ohms and VR1 is 0..100 ohms, you get a range of about 350V to 550V. If you don't get enough volts, check the oscillator frequency.

The tube's output pulse width is increased and restricted to 3.3V, then fed to an interrupt input on the Arduino. The Arduino program counts and averages the pulses to produce a stable counts-per-minute value from which the microSieverts-per-hour value is calculated. You can easily connect a clicker/bleeper for each count, then add USB/serial output and write a fancy desktop application to run on your PC for data logging and pretty displays. (Or you could just buy a RadiaCode-103 and save an awful lot of messing about ;-)

Matt's Tip #327: Never use your tongue as a voltmeter.


HT Supply, 9V and 5V versions


For MOSFET M1, use any old MOSFET with a low Rds(on) which can handle Vgs >= 600 volts. C2 should be 10nF, 1000..3000V ceramic.
The 9V supply comes directly from the external PSU (9V 1A) which is plugged into the Arduino's J3 power jack, via a wire from J2-pin 8 PWRIN.
Don't forget the 100nF bypass capacitor (0,1µF) for the CD40106B.

The CD40106B hex Schmitt trigger inverter (or a 74HC14) is used to make a very simple oscillator, as shown in the Texas Instruments data sheet: https://www.ti.com/lit/ds/symlink/cd40106b.pdf
(The problem with this is that the Schmitt trigger is not designed to be an accurate oscillator. The threshold levels drift with small temperature changes, which has a large effect on the frequency. Each chip also has slightly different threshold levels and will produce different frequencies. Using a 555 timer or a PWM output is better, see below.)



Below is a simpler version powered from 5V and controlled by a PWM output (3.3 or 5v) from a microcontroller, so it doesn't need an oscillator and the PWM signal can be adjusted to keep the voltage constant. It uses a high voltage NPN transistor like the MPSA44, which is rated at 400v (but I ran it at 500v for quite a while and it didn't go bang). D1 must be a high voltage fast-switching diode, I used a UF4007 (1000v). The GM tube is a J321, but it should work with any of them if they have an HT voltage that can be generated by the supply.

The voltage is varied by adjusting the control frequency and pulse width. For 400v, I used 10kHz (100uS period) with an adjustable 28uS pulse width. Keep the pulse width short to reduce current consumption.

The voltage can be measured using a voltage divider to an analogue input, e.g. Vin = Vout / 314, see link at end of page for the 1Gohm high voltage resistor. Note that the voltage divider is affected by the input's impedance. I used an ESP32, which [apparently] has a 66Meg ohm input impedance (66meg || 3.3meg = 3.14meg). You could use a normal voltmeter in place of R3, these have impedances of approximately 10Meg (expensive) or 1Meg (cheap), so divide by 100 or 1000. If using a 'scope probe (in place of R3) to measure the voltage (should show 4V), set it to 10x to get a 10meg impedance (at 1x it's usually 1meg, and the reading will be low).

Pulses can be sensed at the anode (+) end of the tube, via a capacitor to filter out the DC. Or at the cathode end (-) between the cathode and ground, this is the most common method. C2 filters out the anode's pulse signals and supplies the current to "charge" the analogue input, but it takes about 10 seconds to charge up, so changing the control frequency needs up to 10 seconds before it stabilizes and you can get an accurate reading.


You may find that the actual circuit does not behave in the same way as the ltSPICE simulation. My prototype gives a higher output voltage than the simulation, and has more "noise" at the switching frequency.


Pulse Shaper

The GM tube pulses can be sampled at either the anode end (+ve) or the cathode end (-ve) of the GM tube. In both cases a simple transistor switch is used to create a falling edge to generate an interrupt in the microcontroller.

For the cathode end design, I could not improve on the Mighty Ohm circuit, even after several attempts with opamps and comparators, so this is the same circuit but with filter values changed for better performance. The output pulse width is about 100uS. For counting, use the falling edge to generate an interrupt in the microcontroller.



The pulses can also be sampled at the +ve anode end of the tube. The DC voltage is taken out using a capacitor. The pulse goes -ve, so a PNP transistor is used, with an NPN to create a falling edge for the interrupt. This circuit uses a few more components, but I think it's better than the previous circuit.



Here's a prototype, using a J321 tube and the tiny-but-powerful XIAO ESP32-C3. It has a USB interface, and can also communicate via BluetoothLE or WiFi. It's powered via the USB, and/or can have an external 5V power supply or battery - I used the 18650 Lithium Battery Shield (5V 3A) from bastelgarage.ch. This needed a hack to get the XIAO running from an external 5V supply or the 5V from the USB, using two Schottky diodes via the pads on the underside. Full details and ESP32 code to follow in a separate section.



This is the Mark-2 version which has an LCD display, software-adjustable HT voltage 300..1000V, programmable conversion factor and a jumper-selectable series resistor, so it works with almost every tube. It can be powered by battery or USB, and has USB or WiFi connection to the PC which runs the software. Bluetooth for a phone app is also possible. This one will be available soon as a kit.



Here's a screenshot of the evolving preliminary version of the software.

MuTube Geiger Counter Software

MuTube Geiger Counter Software


Useful Links ⛓

High voltage 1Gohm resistor from DigiKey, the cheapest good quality product I could find:

Introducing the Mighty Ohm Geiger counter kit

MIT: Explaining rad, rem, Sieverts and Becquerels - a guide to the terminology of indecent exposure

Radiation units information and conversion factors with online converters

GM Tubes

Good source in Romania for old Russian GM tubes. I have bought several from here. Fast and reliable service.

GM Tube Info, from DIYGeiger, with the "CPM to µSv/hr" conversion constants for each tube:

GSTube.com's list of retro [Russian] Geiger and neutron counters, with photos and original data

Geiger-Muller tubes: Comparison of SBM20, J305 and LND712

The "CPS to uSv" conversion factor for the J305 tube, it's either 123.15 or 301.2 depending on which specs you read!

Buying GM tubes from Russia, e.g. SBM-20 for $36 (I never tried it, so I can't vouch for them, don't give out your credit card details - use PayPal)

Data on the SBM-20 GM tube


Radon FTLAB - Korean patented 'pulsed ion chamber' technology for the most accurate radon measurements


The awesome XIAO ESP32-C3 microcontroller, with USB, BluetoothLE, WiFi, 4MB Flash, 400KB SRAM, running at 160MHz

FTDI TTL-232R TTL to USB Converter Cables, to connect the Mighty Ohm to your PC

A twin tube Geiger counter design - Iacopo Giangrandi. An excellent project, with lots of information.

GGLABs dual GM tube Arduino shield

A Geiger counter for ESP32 boards, with circuit diagram and source code

Study of GM tube's pulse shape and dead time with reference to the supply voltage

Analog Devices Reference Design: CN0536 Geiger Counter with Adjustable High Voltage Power Supply

Geiger Counters and Nuclear Science Supplies, interesting instruments with good descriptions of the technology

Radiation dose converter (RP Alba Ltd is an independent consultancy and radiological support services company based in Scotland)

Rad Pro Calculator, various online radiation calculations and conversions, a bit retro but it works well