I picked up a CDV-715 from eBay with the intention of getting it for it's case. I figured for $30 you can't beat it for a weather proof housing with a built in handle.
The first thing I found was that there are some nice glass super high value resistors in there - 2.2GΩ, 22GΩ, and 220GΩ.
The second thing I found was that I didn't want to part with that nice old meter. So I decided to have the kit drive it.
There are several ways this can be done. The first way I tried was to drive it from the LED with a circuit similar to one used by some analog Geiger counters. So I connected the kit's LED to this circuit . . .
This worked pretty well, and other than the circuit it requires no changes.
However, calibrating it to any kind of dose would be a problem.
Since the Geiger kit has a nice microprocessor just sitting there, why not use it?
The initial problem with driving the meter with the kit's microprocessor, is the need for I/O pins. The meter would need to be driven by an analog output. The ATmega386 has pins that supports PWM which isn't exactly analog but could be made to work. In addition, I/O pins would be needed to get the setting of the range switch. (I also considered autoranging, but then you need I/O pins drive LEDs to indicate what range you are on.)
The need for a lot of I/O pins is solved by using I2C. For those not familiar, I2C ("inter-integrated circuit") or "two wire interface" is sort of a LAN for chips. With only two I/O pins you can communicate with up to 127 devices (chips). Each device has it's own address. On the kit, the A4 and A5 pins were reserved for I2C.
The next step was to to select a chip that would connect I2C to the meter and the range switch. The PCF8591 is a favorite of mine and seemed perfect. This chip has 3 analog to digital (A/D) and one digital to analog (D/A) converters and communicates on the I2C buss.
The D/A is used to supply a varying voltage of 0-5V in 255 steps. The meter on the CDV-715 is 50uA. So passing this voltage through a 100kΩ resistor will deflect it full scale at 5V.
One of the 3 A/D converters on the chip can be used to read the position of the range switch. This is done with a simple voltage divider at the range switch that supplies 5 steps of voltage to the A/D converter. Here is the current schematic . . .
So with this setup, the software on the Geiger Kit can use I2C to read and write to the converters on the PCF8591 to get the range switch position and control the meter. That brings us to the change in software.
I have finished the mod to the software and added it to the next version (v10.2). To save memory, the code is turned off with a #define ANALOG_METER. (see below for v10.2 beta download)
To get the fastest response for the meter, the counts are taken from the bargraph, so they're updated 20 times a second. The position of the range switch is read and the counts are converted to whatever dose unit is set, and then scaled to the range. All communication with the circuit above is done through I2C.
Note that the first position of the rotary switch is used to "zero" the meter. It simply sends the meter the full Vcc (~5V) to deflect it full scale. Then the trimmer pot R2 in the circuit above is used to set the meter to full scale.
I mounted the circuit on a small board that attaches directly to the screw terminals on the meter. I used a 2 pole 6 position rotary switch. The second pole is connected so that it serves as a power switch. It's a "non-shorting" switch but it switches fast enough so that power is not lost between clicks.
Installing the Geiger Kit
I thought I'd go further and describe the process of installing the kit in the CDV-715.
After getting the meter working, the next step was to mount the display. After considering all the options, it seemed it had to go between the range switch and the meter. But there wasn't much room!
However, I had a DOGM162 LCD that just fit. These are small 2x16 displays, reasonably priced, and very bright and clear. A backlight panel is optional and comes in a variety of colors. The display uses an SPI interface rather than a 4 bit parallel interface like standard LCDs and requires a different library - DogLcd. Setup is a bit different, but all the rest of the display calls work the same. I made the changes within #define DOGM_LCD and added it to the next version (v10.2) of the software. (see below for download)
I cut a square hole in case and glued in a piece of plexiglass to fill it. Then I hot glued the display underneath it.
I mounted the Geiger kit on a piece of phenolic board on the old posts, and added an LND-7317 with an additional 4.7MΩ resistor in the bottom half. Since the LND-7317 has it's cathode grounded to the case, I switched the Geiger kit from "cathode sensing" to "anode sensing" by using this simple circuit.
Wiring up the DOGM162 takes some work. There are lots of connections on the display itself. (see the datasheet) I made a connection diagram here . It shows the connections to the I/O headers as well as the display headers. (It's easier to use the display headers.) I also made a photo showing the display with it's on-board connections here (likely the most helpful) .
Not shown above is the pot that adjusts the tone sensitivity. The existing hole for the "Zero" pot was enlarged a bit and the new pot pressed in. The pot is a 100k linear, but for more sensitivity at lower settings a 10k resistor and a 1uF tantalum capacitor was added across the ground and the wiper of the pot.
Also not shown above, the "Click / Tone" switch and "Null" button were added, and the the LED, IR receiver, and speaker were brought out and mounted on the top of the case.
Powering the Geiger
Finally I added a 4000mAh LiPO battery, a LiPo charger module, a 3.7 to 5V booster, and FTDI board. I sandwiched the battery between 2 pieces of phenolic and strung the boards together on top. Only the 5V is switched by the rotary switch, which means that the battery is always connected to the charger and booster. I removed the LED from the booster so this connection constantly draws only ~10uA from the battery which is negligible. The hardest part was mounting the mini USB receptacle to the bottom half of the CDV-715.
This should wrap up this project until I decide to support external GM tubes or scintillation probes.
The current v10.2 sketch includes the code for the analog meter and DOGM162 display.