Posted by SainSmart on

GeigerCounter

 

I saw a neat looking 3.2 inch LCD touchscreen shield (http://www.sainsmart.com/arduino-compatibles-1/lcd-module/sainsmart-3-2-tft-lcd-display-touch-panel-pcb-adapter-sd-slot-for-arduino-2560.html) for Arduino on ebay for about 30 euros. Turns out this even included the Arduino Mega board! So I thought why not build a geiger counter. Because that's a perfectly sensible thing to build.

And yeah I know, it's not the most amazing thing in the world. But it's a neat thing to have, and my major goal was a geiger counter for less than what you pay for on ebay and such. And with touchscreen control. Because I want touchscreen controls and gullwing doors on everything.

I decided to skip the entire tube thing and opted for a semiconductor sensor from http://www.radiation-watch.org

 

The radiation detector needs GND, +5V, and two signal lines, one for radiation pulses, one for vibration. An optional 3.5 mm 4-conductor TRRS phone connector is also fitted on the pcb. The NS pin stands for Noise, and outputs a pulse whenever physical vibration is detected. This is used to prevent falsified radiation measurements.

 

The sensor sold by these guys is intended to be cheap and widely available, there's versions you can plug into your smartphone, and the software allows you to upload the radiation data to a website that builds a huge radation map. Judging from the area around Fukushima the folks in Japan can really use a cheap sensor...

As for the wiring, that's really not worth writing home about. The piezo buzzer is connected to Pin 8 on the Arduino Mega, the radiation sensor output is connected to pin 20 and the noise output is on pin 10.

 

For the user interface I used the UTouch library to access the touch controller, and modified the ITDB02 display library with additional font rendering functions for getting the rendered string pixel width etc.

I noticed that the Arduino library for the radiation sensor just used a loop to detect the incoming pulses. Because I spent considerable time drawing the histogram and handling user input, accuracy went down quite a bit. So I went ahead and changed the library to use a hardware IRQ instead. The noise pin is still being checked via a loop but I don't really care that much for it - after all it's only used to discard radiation pulses while vibration is messing with the sensor.

While I was at it, I made the interrupt handler also output a pulse on pin 8 for the piezo buzzer, to get that classic geiger counter clicking.


So anyway, funny thing: Before I had an actual case for this, I kept it in a cardboard box. I took it with me to work, and when I brought it to a meeting room it went crazy. Not right away, mind you, it was slowly ramping up the clicks for about 10 minutes, then slowly died down again. Toggling power did not change the measurement. I have no idea what caused this.

So yeah, a $100 Geiger counter with touchscreen control. It won't set the world on fire but I'm happy :)

 

Want to build your own? I've put up the Software on GitHub.

GeigerCounter: https://github.com/Toumal/GeigerCounter

ITDB02 Graphics Library: https://github.com/Toumal/ITDB02_Graph16

Radiation Watch Library: https://github.com/Toumal/RadiationWatch

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.