Hello, I am brand new to Arduino (I don't even have an board yet, waiting delivery). My project aim is a geiger counter connected to pachube for datalogging - I know these have been done to death
on these boards. Ultimately I would like it to be stand-alone with an ethernet shield.
For the radiation detector I was looking at a Blackcat Systems GM-10. These come in either serial or USB
, from the manufacturer:
Each time a particle is detected, a pulse is sent down the serial line, which is interpreted by the serial port in the computer as byte. So if you count the number of bytes received per minute, you have the Counts Per Minute (CPM). Likewise you can count the number of bytes over any time period you wish. The value of the byte received is not defined, just count the bytes.GM-10 Interfacing
The USB version of the GM-10 and GM-45 are also self powered. Drivers for MacOS, Mac OS X, and Windows are provided to make it emulate a standard serial port, so the software interface is the same. Visit our Linux Details page for specific Linux information.
Interfacing the GM-10 or GM-45 (RS-232 version) to a microcontroller or other circuit is fairly straight forward. You have two choices:
First, you can connect the detector to an RS-232 port. Configure your port for 38,400 baud, 8 data bits, no parity. No handshaking lines are used.
The GM-10/45 draws power from the DTR and TX lines. Every time a particle of radiation is detected, it outputs a pulse, which comes out on the RX data line. This pulse is interpreted by a serial port as the start bit of a word. So every time you see a word on your serial port, a particle has been detected. The value of the word should be ignored.
Second, you can connect the GM-10/45 output line to a counter circuit, and directly count the pulses yourself. This would be best in cases with fairly high count rates, or when a serial port is not available.
In this case, connect the TX line (pin 2 on the RS-232 connector on the GM-10/45 case) to your circuit ground, and apply DC power to the DTR line (pin 20). The voltage should ideally be within 9 to 12 VDC. It may work with as little as 7V, and you should never exceed 15V. Current draw varies with applied power voltage, and is roughly 4 mA at 9V and 9 mA at 12V.
If you have a unit with a 9 pin connector, the pins are GND on pin 3, 12V DC power on pin 4, and signal out on pin 2.
The output pulse is on the RX line (pin 3), which is normally at around 2V, and the pulse amplitude is typically 2 volts less than the DC power supply voltage. (Positive pulse) The width of the pulse is typically 40 microseconds, but can vary. If interfacing to a TTL level circuit, some voltage conditioning is required. A simple circuit using a FET or bipolar transistor can be used to convert the output voltages to the required range.
So, the question is, from an ease of use with Arduino, is the serial verison the way to go? There is a post
about serial-over-USB using a USB host shield as being non-trival. Being a newbie, I want to keep it as simple as possible.
Any tips, advice or other options would be appreciated.