This was a project to create a fully functional, production-ready digital Geiger counter. It features two selectable units, a backlit character LCD display, selectable sound, a manual count mode, and a battery life indicator.
List of Features
- Custom product enclosure designed with Solidworks and manufactured by Shapeways 1 2 3
- 8x2 Backlit (adjustable) Character LCD
- LND 714 Gamma Detector (Geiger tube)
- Click (selectable) and LED radiation indicator
- Re-programmable and upgradeable via ISP header and I2C pins
- Two selectable units: Röntgen or Sievert
- Manual count mode with timer
- Battery gauge displaying voltage and percent
- 3 AAA battery powered
High Voltage and Geiger
The high voltage DC is generated by a standard boost converter topology. The ATmega88PA microcontroller produces a 4096 Hz PWM waveform with a duty cycle of 99.22% (253/255), which switches a 600V 2.1A N-channel MOSFET. Current is directed through the inductor every on cycle, which stores electrical energy in the magnetic field of the inductor. On the off cycle, the magnetic field collapses, and the energy stored is directed through the 600V 1A 1N4937 diode, and into the 0.5uF equivalent output capacitor. The output voltage is regulated to a fixed 500V by 5 100V 1W Zener diodes in series. This high voltage is then applied to the anode of the Geiger tube through a 10M ohm resistor. The cathode is connected to ground through a 100k ohm resistor. When a high energy particle (in this case, a gamma ray) passes through the tube, it strikes the intert gas molecules inside, knocking electrons off in the process. These electrons are of significant energy to knock electrons off other molecules, producing a chain reaction called an avalanche. A halogen gas inside the tube replenishes electrons and prevents the tube from being stuck in the conducting mode. The 500V applied to the Geiger tube produces a high potential, which accelerates electrons toward the anode, producing a current. This current flows through the 100k ohm resistor and produces a voltage drop, which is detected by the microcontroller, and represents one count.
Microcontroller and LCD
In the simplest case, a digital Geiger counter would need only two functions, to count the pulses from the Geiger tube and calculate a rate, and to display the rate on the LCD. This project simply adds a few extra features, all very simple to implement. First, the microcontroller needs to be able to count pulses from the Geiger tube over a certain time period. This is accomplished by running a timer divided down from a 4.192 MHz crystal. Pulses are detected by the microcontroller's hardware via a rising edge interrupt, which increments the ticks variable. The timer module produces an interrupt every 0.25 seconds. Every 4th interrupt, the microcontroller records how many pulses were detected since the last interrupt, and this value is added to an array of 30 values, which are averaged and displayed. Next, the microcontroller needs to display values and text to the screen. This is achieved by sending binary data over 4 data lines, and clocking them in with an enable line. A read/write bit also allows the microcontroller to select between sending data and waiting for confirmation back from the LCD that it is ready, and a register select line to select between sending character data or configuration and setup data. An LCD function library handles the low-level conversion between ASCII characters from strings or numbers in variables to binary data to the LCD.
This was the first PCB made for the GC-D 100, and contained several critical errors. The first is the incorrect wiring of the character LCD. ...
This revision was made several weeks after revision A, and fixed all major problems, as well as adding several features. There was only one bug discovered with the revision B PCB, which was tying the Vref pin of the ATmega88PA microcontroller to AVcc. This would have locked Vref to AVcc (battery voltage) and prevented the battery voltage from being read (which was accomplished by comparing the divided battery voltage to the microcontroller's internal 1.1 volt bandgap reference). This bug was simply fixed by removing the pin from the microcontroller. The major changes for this revision were going from the ATtiny88 to the ATmega88PA, and the addition of an accurate quartz crystal for the microcontroller to use for timing. Additionally, a reverse polarity protection transistor was added, but the BC817 transistor used had too high of an impedance to allow the system to function properly. There was a set of pads added in case this didn't work, to either short with a solder blob or by adding a 0 ohm resistor.
The enclosure for the GC-D 100 was created with Solidworks 3D CAD software, and manufactured using rapid prototyping through Shapeways. Dimensions for all major parts and the PCB were taken using a digital caliper, and 3D representations were made in Solidworks. Then the basic shape for the enclosure was devised, and it was created with the constraints given by the parts needed. Since 3D printing would be used to create the enclosure, a movable switch could be made built into the case, however the placement turned out to be off by a switch width, and it had to be altered.
Full source code for the project can be found here: http://rev0proto.com/files/gc-d_100.zip
I wrote a complete assembly and instruction manual for the GC-D 100 for my Technical Writing class during Fall quarter 2009. This manual can be found here: http://rev0proto.com/files/GC-D_100_Instructions.pdf
The manual is broken down into 4 main parts: Background, Assembly, Use, and Glossary/Appendix. The background section informs the reader about types of radiation as well as a basic overview of how the device works. The assembly section informs the reader on how to solder the through-hole components to the PCB, and install the PCB, battery holder, speaker, and batteries into the case, via pictures/diagrams and brief explanatory text. The use section informs the reader on how to power on and use the device the first time, and how to change the various menu options. Lastly, the glossary/appendix informs the reader on technical terms used throughout the manual, and how to perform proper soldering.
By the due date of the manual, I had completed the design for the case, and had in-hand the revision A PCB, which had several critical bugs. I was able to complete the manual by using diagrams generated with Solidworks. The version I assembled for the manual did not function correctly, first, the LCD was wired incorrectly so that data pins 1-3 were connected to the microcontroller instead of 4-7; second, the boost converter had to be rewired due to problems I found on the breadboard prototype. I had to work with the version I had as best I could, since the lead-time for the PCB (through BatchPCB) was close to a month, and from start to finish I only had 10 weeks to work with. I was able to rework the PCB with some "blue-wire fixes" (wire-wrap wire + cutting PCB traces) to get the LCD to work, and since the traces I needed to change were on the reverse of the PCB, I could photograph the front without any hint of a problem. After taking the necessary pictures, I de-soldered the Geiger tube and assembled it onto another PCB which had the rework for the boost converter, to verify that portion worked. The code was also not final by the due date, so I simply wrote some code to display the proper menu options. Code was not complete until most of the way through the schoolyear, and still could use improvements, but it is functionally complete.
Thoughts for Revision C
Although I call this project complete, I have had many ideas for a third hardware revision. Most of these ideas would be impractical to implement, or would escalate into a far bigger project (that I likely wouldn't have the time or energy to complete).
On the simple end, my first major complaint about this project is the battery. The way the case was designed made it inconvenient to replace the batteries, and exposes the rear of the PCB, which if left on or not fully discharged, poses a high voltage hazard to the user. The next version will use a rechargable lithium polymer or lithium ion battery, most likely a single-cell, and voltage will be provided by a 5V step-up converter, and one or two linear voltage regulators.
The high voltage and Geiger tube section should be separate from the main electronics and microcontroller. The current routing scheme has high voltage running close to delicate electronics, and is too unwieldy to point out the location of with silkscreen. I propose putting the high voltage section on an isolated section toward the top of the PCB, and coupled only by a photocoupler and power traces.
I would like to implement a graphic LCD instead of the simple 8x2 character display currently being used. In addition to giving much more freedom to display information and graphics, the graphic LCD can also be much thinner, especially compared to the tall (18mm including header pins) character LCD module. This would be simple to implement in hardware but require much more programming effort.
One of the feature sets I would like to implement is a location system, comprised ideally of a 6-DOF accelerometer and gyro system, a 3-axis magnetometer, and a GPS module. This would double the cost of the unit, but would also greatly increase the capability of the unit, especially for data logging.
I would like to add the ability to write data to a microSD card or onboard memory which could be read by a computer. This again would be simple to implement in hardware but much more complex in terms of programming.
One necessary feature the next revision would have is a mini-B USB connector, for charging the battery/powering the unit, and expanded capability as a computer peripheral for collecting data.
Of the more silly ideas, I would like to implement a high-powered laser for use as a signaling or survival tool. All I would need is to find space in the case for a standard Aixiz module head, I've got quite enough experience to handle the simple support circuitry.
Total Project Cost
|Enclosure (Header cover)||$2.51||Shapeways|
|Geiger Tube||$25.45(Sale)-42.45||Electronic Goldmine|