DIY Geiger Counter With an ESP8266 and a Touchscreen

15,630

179

39

I designed and built a Geiger Counter - a device that can detect ionizing radiation and warn its user of dangerous ambient radiation levels with the all-too-familiar clicking noise. It can also be used when scouting for minerals to see if the rock you found has Uranium Ore in it!

There are many existing kits and tutorials available online to make your own Geiger Counter, but I wanted to make one that is unique - I designed a GUI display with touch controls so the information is displayed in a pretty way.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Basic Theory

The working principle of a Geiger Counter is simple. A thin-walled tube with a low pressure gas inside (called a Geiger-Muller Tube) is energized with a high voltage across its two electrodes. The electric field that's created is not enough to cause dielectric breakdown - so no current flows through the tube. That is until a particle or photon of ionizing radiation goes through it.

When beta or gamma radiation passes through, it can ionize some of the gas molecules inside, creating free electrons and positive ions. These particles start moving due to the presence of the electric field, and the electrons actually pick up enough speed that they end up ionizing other molecules, creating a cascade of charged particles which momentarily conduct electricity. This brief pulse of current can be detected by the circuit shown in the schematic, which can then be used to create the clicking sound, or in this case, fed to the microcontroller that can do calculations with it.

I'm using the SBM-20 Geiger tube since it is easy to find on eBay, and quite sensitive to beta and gamma radiation.

Step 2: Parts and Construction

I used the NodeMCU board based on the ESP8266 microcontroller as the brains for this project. I wanted something that can be programmed like an Arduino but is fast enough to drive the display without too much lag.

For the high voltage supply, I used this HV DC-DC boost converter from Aliexpress to supply 400V to the Geiger tube. Just keep in mind that when testing the output voltage, you can't measure it directly with a multimeter - the impedance is too low and it will drop the voltage so the reading will be inaccurate. Create a voltage divider with at least 100 MOhms in series with the multimeter and measure the voltage that way.

The device is powered by an 18650 battery that feeds into another boost converter that supplies a constant 4.2V for the rest of the circuit.

Here are all of the components needed for the circuit:

  • SBM-20 GM tube (many sellers on eBay)
  • High Voltage Boost Converter (AliExpress)
  • Boost Converter for 4.2V (AliExpress)
  • NodeMCU esp8266 board (Amazon)
  • 2.8" SPI Touchscreen (Amazon)
  • 18650 Li-ion cell (Amazon) OR Any 3.7 V LiPo battery (500+ mAh)
  • 18650 cell holder (Amazon) Note: this battery holder turned out to be a little too big for the PCB and I had to bend the pins inward to be able to solder it. I would recommend using a smaller LiPo battery and soldering JST leads to the battery pads on the PCB instead.

Miscellaneous electronic components needed (you might have some of these already):

  • Resistors (Ohms): 330, 1K, 10K, 22K, 100K, 1.8M, 3M. Recommend getting 10M resistors for making voltage divider needed to measure high voltage output.
  • Capacitors: 220 pF
  • Transistors: 2N3904
  • LED: 3mm
  • Buzzer: Any 12-17 mm piezo buzzer
  • Fuse holder 6.5*32 (to attach Geiger tube securely)
  • Toggle switch 12 mm

Please refer to the PDF schematic in my GitHub to see where all the components go. It's usually cheaper to order these components from a bulk distributor like DigiKey or LCSC. You'll find a spreadsheet with my order list from LCSC in the GitHub page that contains most of the components shown above.

While a PCB is not needed, it can help make the circuit assembly easy and make it look neat. The Gerber files for PCB manufacturing can be found in my GitHub as well. I have made a few fixes to the PCB design since I got mine, so the additional jumpers should not be needed with the new design. This has not been tested, however.

The case is 3D printed out of PLA and the parts can be found here. I have made changes to the CAD files to reflect the drill location changes in the PCB. It should work, but please note that this has not been tested.

Step 3: Code and UI

I used the Adafruit GFX library to create the user interface for the display. The code can be found in my GitHub account here.

The home page shows the dose rate, counts per minute, and the total accumulated dose since the device was turned on. The user can choose a slow or fast integration mode which changes the rolling sum interval to either 60 seconds or 3 seconds. The buzzer and LED can be toggled on or off individually.

There is a basic settings menu that allows the user to change the dose units, the alert threshold, and the calibration factor that relates the CPM to dose rate. All settings are saved in the EEPROM so they can be retrieved when the device is reset.

Step 4: Testing and Conclusion

The Geiger Counter measures a click rate of 15 - 30 counts per minute from natural background radiation, which is about what's expected from an SBM-20 tube. A small sample of Uranium Ore registers as moderately radioactive, at around 400 CPM, but a thoriated lantern mantle can make it click faster than 5000 CPM when held up against the tube!

The Geiger counter draws around 180 mA at 3.7V, so a 2000 mAh battery should last around 11 hours on a charge.

I plan to properly calibrate the tube with a standard source of Cesium-137, which will make the dose readings more accurate. For future improvements, I could also add WiFi capability and data logging functionality since the ESP8266 already comes with WiFi built in.

I hope you found this project interesting! Please share your build if you end up making something similar!

1 Person Made This Project!

Recommendations

  • CNC Contest

    CNC Contest
  • Make it Move

    Make it Move
  • Teacher Contest

    Teacher Contest

39 Discussions

0
None
lpdunwell

8 days ago

your pcb layout is dangerous.
the HV lines are WAY too close to various other signals.

1 reply
0
None
prabhat_lpdunwell

Reply 7 days ago

The HV supply can barely deliver a few microamps at 400V so it's not really dangerous that the lines are close to other signal lines :)

0
None
teramor

10 days ago

Can someone tell me how to compile and flash the code using Visual Studio Code and the platformio extension for this great project? Thank you

0
None
ebaugh

Question 18 days ago

Ok, I've got it almost done. Two last questions...

First, for the M4 bolts, I'm assuming you threaded them thru the standoffs, thru the top cover (like a very thick washer) correct? If so, I need to get much longer bolts... and idea how long they are? (I've got some on order up to 25mm...thinking that should be sufficient...)

Second, I'm not getting any readings on initial start up. I'm not 100% sure the tube is good (have some others on the way) but what voltage do you get reading across the two leads (without tube in place?) 430V? (I'm not sure if I need to adjust the potentiometer on the boost converter...) Did you have to adjust it?

2 answers
0
None
prabhat_ebaugh

Answer 18 days ago

I believe the screws I used were also 25mm. For the GM tube cover, I used 8mm. All screws are threaded into brass heat-set inserts.
As for the voltage, yes, I had to adjust the potentiometer on the boost converter to get 430 volts. Please note that you can only measure the high voltage directly if you have a high-impedance meter or probe. Normal 10 M-Ohm meters will draw too much current and show a reduced voltage.
One way to measure the voltage accurately is to construct a voltage divider. To do this, connect nine 10 M resistors in series (creating a 90M resistor) and connect one end of this series to the high voltage output. Use the multimeter to measure the voltage at the other end relative to ground. The reading from the multimeter should be multiplied by 10 to get the real voltage.

0
None
ebaughprabhat_

Reply 10 days ago

Some comments now that I have most of it put together. (have a few things still do to to get it working, but hopefully this week)
1) The case side walls -- They need to be higher by at least 10 mm or maybe more. I had to trim off every piece of thru legs on the power board and it still bulges a bit in the middle. Given that will probably get warm, it definitely needs to be higher. I'd suggest you make this change for this model, in case anybody builds one.
2) The battery holder you suggested wasn't really any better than what you had (at least from the problems you described). I had to hack corners, etc. to get things to close. I'd suggest as well that you find a solution that really works (either different holder or something else) so that any other builders don't fight this. I get your problems, but there should be a workable part for this that doesn't need so much modification.
3) For the speaker, I'd suggest you spec out a specific speaker. Based on the general guidance you gave, I ordered some from Amazon and while they were correct (from the spec) I've already had 3 where wires came off. I have ordered a second type that I will have to solder on wires (which is fine, since I can probably get something stronger there). My concern is if they'll fit.
4) I'd also suggest you come up with some way to attach the speaker, maybe a change to the 3d design or something where the speaker could be held in. Maybe a ridge around the grill? Dunno. But having it float around isn't probably good (and may have also contributed to my wire problems)
5) I'd definitely list in the BOM/parts what types of screws you used (and lengths that fit). Having to make multiple orders to get the right parts tends to be disappointing and can suck the wind out of someone building something (take it from me... I've had this problem on a number of instructables... they have ended up 1/2 done because I've already ordered 3 types of part trying to have it come together)
6) DEFINITELY need a second on getting the code onto the board.
7) I'd make the bottom of the case longer than it needs to be, as it stands it very tight trying to get stuff in there. I think it would be easier if there was maybe even some air space past the end of the PCB to help in that section.
8) The holes on the bottom part of the case need to be bigger around and deeper to allow the screws to go in (or you need tp spec longer screws). I'm ordering some longer screws (I did dig out the holes with an Xacto knife to get something to work for now, but definitely needs some refining.
9) The opening for the screen needs some refining. A little too much space around the top. Maybe a bezel?
10) The upcoming design (or perhaps some mod of this, that included a battery charger is a must. Having to open/close it is a pain, esp. with the tight tolerances.

Don't mean any of these as a dig, I think you have a great project here. Really like it in general (and I may make some of those Wifi changes you suggested... will let you know and send code back to you if I do). I'd also suggest that you give the builders the notes you gave me about how to measure if power is right (I have some resistors coming tomorrow -- I have some of the right value at the office, but I'm about to travel and screwed up my ankle so haven't been in the office all week.. I'll be trying to finish things when I get up to corp HQ this next week)

Thanks again,

Earl

0
None
ebaugh

Question 22 days ago on Step 4

Last question for tonight. You didn’t indicate the kind of screws nor inserts needed for the case. Do you have pointers for those?

( I have two resistors on order before I’m done, but would like to have all the parts to finish this week )

1 answer
0
None
prabhat_ebaugh

Answer 22 days ago

You will need M3 countersunk screws for the housing. Everything else is printed.

0
None
ebaugh

Question 22 days ago on Step 4

Another question. Have you thought about adding one of those small battery charger boards so you could charge the battery in place? I found out the system runs fine powered via the NodeMCU board ( switch does nothing in that situation :-) )

1 answer
0
None
prabhat_ebaugh

Answer 22 days ago

I'm designing a version 2 of this with SMD components, 555 timer based HV generator, and a battery charging circuit. I'll make the schematic and other design files available for it once I have a working prototype.

0
None
ebaugh

Question 22 days ago on Step 4

BTW I was able to figure out how to compile and flash the code using Visual Studio Code and the platformio extension ( had to get some drivers to get the usb to serial to work on my Mac, but that was fairly straightforward). This wasn’t a very familiar process ( compared to the other Arduino, etc. environments ). You should probably at least give some general directions about this in the project. It could be a hurdle for beginners.

0
None
ebaugh

Question 22 days ago

Doing some assembly (from the PCB I bought) and have a few questions.

First, you indicate in the notes that a 10M resistor can be used, but the schematic doesn't show any instances of it. Would that go in place of something else?

Second, on the display, the one I got has a SD card adapter on the back, which I think would short out some pins on the Node CPU. I'm guessing yours had one too and you removed it, but it wasn't noted in the build notes. Is that the correct approach? (it also seems that I have to add a header to the bottom as mine didn't come with that presoldered (it does had the larger header installed)

Third, does the screw terminal need to be removed from the High Voltage Boost converter? Wasn't sure if it would fit in the case with it still installed (if so I need to remove it before I put the board in place. (it looks like you just used black electrical tape under it since the solder points can't be used... I am going to use some foam tape which should also help keep it in place.

Fourth, am I right in assuming you adjusted the high voltage power supply to 430? Is that what you've kept it at after calibration? (I've not watched your calibration video yet)

Thanks in advance.

2 answers
0
None
prabhat_ebaugh

Answer 22 days ago

The 10M resistors are only used to build a voltage divider on a breadboard to measure the high voltage output. It doesn't go in the PCB.

And yes, I removed the SD card slot and the screw terminals. Forgot to mention it in the post.

I set the voltage to 430 V because it seemed to fluctuate a little at lower voltages. 430 is within the operating range of the Geiger tube.

Let me know if there are any other questions!

0
None
ebaughprabhat_

Reply 22 days ago

Thanks! It wasn’t clear, so thanks for clarifying. Don’t know if you can make changes, might be useful for others. I have most of mine assembled ( had one glitch - in trying to solder up the battery holder I soldered up one end, trying to lay down a big glob to allow the pack to stick and ended up pulling the pad off as I tried to trim it — but one jumper wire and it’s ok — adds to the prototype look and feel :-) )

0
None
LenardS1

Question 5 weeks ago on Step 4

Good project. We've been looking for one for a long time.
On ebay exist many tips of tubes
STS-5,SI22G,etc... all o this detect beta and gamma rays
Why you choose SMB20 ?

3 answers
0
None
UdonLenardS1

Answer 26 days ago

Cos' its cheap!
And it has a particle accelator symbol on it!
And it comes with a cool Russian data sheet from the late 60s!
And its army surplus!
And...er...and its cheap!

0
None
prabhat_LenardS1

Answer 5 weeks ago

STS-5 is very similar to SBM-20, but a little bigger. Other tubes can definitely be used provided you adjust the high voltage supply according to the manufacturer's specs. I found the SBM-20 to have the best combination of size, sensitivity, and cost.

0
None
TerryN4

4 weeks ago on Step 4

Why does every new electronic project have to begin with an Arduino or similar device? In any kind of radiation the electronics would be fried by the radiation. How about some good old electronics projects minus a computer!!

1 reply
0
None
rgrokettTerryN4

Reply 4 weeks ago

In case you are interested, there are a number of Geiger counter circuits that don't use an arduino. But of course, they don't have the fancy touch display.

http://www.techlib.com/science/geiger.html

Just FYI, For the not-so-inclined hobbyist, here's an already assembled one that appears pretty decent for under $100 geiger counters. https://amzn.to/2NlYk4m