V 1.42

Geiger counter PC-GM2 program


Known Bugs
Previous versions


This program is for the Geiger Muller counter PC-GM2 described on this page (in French). This page gives all information to build the hardware part of the counter.

Software for Arduino

Download Version 1.42: Same features as version 1.41 plus, additional parameters returned when the command "V" (counter type = PCGM2 and serial number).

Download Version 1.41: Same features as the version 1.4 but with an operating indicator ('*') to show if the counter is recording the measurement in the EEPROM or not.

Download Version 1.4: Same features as the version 1.3. Little improvement of the power consumption thanks to the use of the sleep mode. Note: don't hesitate to remove the green LED on the counter shield. You'll save some mA. Power consumption with the version 1.4 and without the LED: ~48mA.

Download Version 1.3: This program carries out a Count Per Minute (CPM) and a count by 24H. It displays the number of CPM and the average of pulse per 24H (At the end of 24 hours, otherwise, since the starting up of the counter). It displays the result in µSv.h on the basis of the CPM and on the average of the counting per 24H. Eventually, you have to adjust the "conversion factor" value (CPM <-> µSv/h) according to your Geiger-Muller tube. The couting is sent to the host by the serial port com (USB emulated). In this way, you can make your statistics on your computer by using the GeigerPC software describes above.


Since the version 1.3, the counter can respond certain commands and can store the counting per hour in EEPROM. These data are downloadable by the application GeigerPC and are stored in an "hours file" for a postprocessing (statistics). It is the normal mode to store data when the counter is powered by a battery. Note: this program version is not optimized to limit the power consumption. The average consumption is around 61mA.


The counter displays data on a dedicated LCD display. The image above (click to enlarge) shows how the display is used in normal operation.


Technical documentation

Environment and target platform


Communication with the counter

serial link (COMx), 19200bps, 8 bits, 1 stop, Parity none.


Response Counter -> GeigerPC



Version number of the Arduino Program. <N> is a Real number. This value is sent when the counter is starting or following a "V" command. Example: "VP=1.3".


This response is sent by the counter after a "V". Example : "VP=1.42,PCGM2,1".

<V> = GM application Version number. <V> is a real number.

<T> = GM counter Type = PCGM2. <T> is a string.

<S> = GM Serial number. <S> is an integer.


Conversion Facteur of the counter. <N> is a real number. This value is sent when the counter is starting or followinf a "F" command. Example : "CF=0.00723".
If the Auto-update option is checked for the conversion factor, (cf. "Preference"), this value replaces that stored by GeigerPC. This number is used for the conversion CpM <->µSv/h.


Number of CPM (Count per Minute). Sent each minute by the counter. <N> is an integer. Example: "CM=20".


following a "Download" command, le counter responds:

DL=NODATA if there is no data to send (the counter has never been initialized with a "I" command).

DL= <YYYY/MM/DD HH:MN> if the counter received an initialization ("I") command. The date/time sends is the date/time sent at the time of the last initialization (YYYY=Year, MM=Month, DD=Day, HH=Hour, MN=Minute).

DL= <N°>: the counteur sends a serie of N° (integer), each N° representing an hour of counting. The first corresponds to the interval [YYYY/MM/DD HH:MN, YYYY/MM/DD HH+1:MN[, the second to the interval [YYYY/MM/DD HH+1:MN, YYYY/MM/DD HH+2:MN[, etc. The counter is able to stored about 490 hours of couting.

DL=END: it is the response sends by the counter when it has no other DL=<N°> to send.


Commands GeigerPC -> Counter



Counter Re-Boot (soft). Attention: data associated with the counting per minute (average) are deleted and the memorization in EEPROM of the couting per hour is stopped if it was active.


Request for the Conversion Factor. The counter sends the CF command with the conversion factor (see response CF for details).


Request for the version number of the counter software. The counter sends the VP command with the program version number (see response VP for details).


Request for download the hour measurement stored in the EEPROM. The counter sends a succession of DL responses (see response DL for details).


Initialization of the hour measurement. GeigerPC sends a date and an hour to GeigerPC. This date is stored in EEPROM and the hour measurements stored in EEPROM are erased (think to ask for these values (D command) before a reinitialization). The counter send the response "INOK" if the command has been performed without error.

Known Bugs

You can report the bugs of the program by using the "contact" on the home page.