Skip to main content

Python package for Geiger–Müller Counter (GMC)

Project description

PyGMC

PyPI - Version GitHub Actions Workflow Status Read the Docs codecov PyPI Monthly Downloads

PyGMC is a Python API for Geiger–Müller Counters (GMCs) / Geiger Counters. It has just one dependency (pyserial) and works on multiple operating systems: Windows, OSX, Linux. PyGMC aims to be a minimalistic interface - lowering the installation requirements and allowing the user to build their own tools on top of a stable package.

Installation

pip install pygmc
conda install conda-forge::pygmc

Conda PyGMC version may lag latest PyPI version.

Example Usage

Jupyter Notebook

Auto discover connected GMC, auto identify baudrate, and auto select correct device.

import pygmc

gc = pygmc.connect()

ver = gc.get_version()
print(ver)

cpm = gc.get_cpm()
print(cpm)

Connect to specified GMC device with exact USB port/device/com.

import pygmc

gc = pygmc.GMC320('/dev/ttyUSB0')

cpm = gc.get_cpm()
print(cpm)

Read device history into DataFrame

import pandas as pd
import pygmc

gc = pygmc.GMC320('/dev/ttyUSB0')

history = gc.get_history_data()
df = pd.DataFrame(history[1:], columns=history[0])
datetime count unit mode reference_datetime notes
2023-04-19 20:37:18 11 CPM every minute 2023-04-19 20:36:18
2023-04-19 20:38:18 20 CPM every minute 2023-04-19 20:36:18
2023-04-19 20:39:18 19 CPM every minute 2023-04-19 20:36:18
2023-04-19 20:40:18 23 CPM every minute 2023-04-19 20:36:18
2023-04-19 20:41:18 20 CPM every minute 2023-04-19 20:36:18

Devices

Device Brand Notes
GMC-300S ✔️✔️ GQ Electronics A little picky
GMC-300E+ / GMC-300E Plus GQ Electronics
GMC-320+ / GMC-320 Plus ✔️✔️ GQ Electronics Works smoothly
GMC-320S GQ Electronics
GMC-500 GQ Electronics
GMC-500+ / GMC-500 Plus ✔️✔️ GQ Electronics Works smoothly
GMC-600 GQ Electronics
GMC-600+ / GMC-600 Plus ✔️✔️ GQ Electronics
GMC-800 ✔️✔️ GQ Electronics *Finally Working
GMC-SE ✔️ GQ Electronics RFC1201

✔️✔️=physically confirmed works
✔️=user confirmed works
*Incorrect documentation caused incorrect implementation with pygmc<=0.10.0

Contributors

Notes

  • Alternative Python projects for GQ GMC:
  • Device website GQ Electronics Seattle, WA
    • Not affiliated in any way.

Known Issues

  • Ubuntu Issue
    • Ubuntu requires fixing a bug to be able to connect to any GQ GMC device.
      USB devices use VID (vendor ID) and PID (Divice ID)... It is common for unrelated devices to use a common manufacture for their USB interface. The issue with Ubuntu is that it assumes 1A86:7523 is a "Braille" device (for the blind) and, ironically, blindly treats it as such.
    • This causes the GQ GMC device to not connect.
  • Ubuntu fix
    • The fix is to comment out the udev rule that does this. The text file may be in two places.
      • /usr/lib/udev/85-brltty.rules
      • /usr/lib/udev/rules.d/85-brltty.rules
    • Find the line below and comment it out.
      • ENV{PRODUCT}=="1a86/7523/*", ENV{BRLTTY_BRAILLE_DRIVER}="bm", GOTO="brltty_usb_run"
    • We see Ubuntu assumes 1A86:7523 is a Baum [NLS eReader Zoomax (20 cells)] device.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pygmc-0.14.1.tar.gz (40.0 kB view hashes)

Uploaded Source

Built Distribution

pygmc-0.14.1-py3-none-any.whl (42.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page