GithubHelp home page GithubHelp logo

raleighlittles / gq_geiger_counter_comm_protocol Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 1.5 MB

[WIP] A Rust implementation of the GQ Geiger Communication Protocol

Rust 100.00%
geiger-counter gq-gmc rust egui-example rfc1801

gq_geiger_counter_comm_protocol's Introduction

build-badge

Background

A company called GQ makes "smart" nuclear radiation detecting devices aka "geiger counters". These devices come with a USB port which provides a serial interface to the device, intended for data logging usage.

geiger counter photo

GQ published their "RFC" which provides the serial port interface specifications. See RFC1801.txt.

About

This project consists of helper tools for using your GQ GMC.

There's 3 main functionalities provided:

  1. A simple GUI application for controlling system parameters and device buttons:

GUI screenshot

This is particularly useful if your device is out of reach or if the physical buttons no longer work for whatever reason.

  1. A "timesync" feature, allowing you to synchronize your geiger counter with your host PC's time. This is useful since these devices don't have any kind of NTP functionality.

  2. A CSV logging feature. This logs the geiger counter's readings directly to a CSV file, and is useful when you need to take long-running measurements that would exceed the geiger counter's on-device storage.

csv example

  1. A config dump feature. ๐Ÿšง This lets you see a parsed version of the device's configuration memory and take backups of it.

Usage

Run the binary providing the first and second arguments as the serial device name and baud rate, and then thirdly, the option you wish to use, e.g.:

$ ./gq_gmc /dev/ttyUSB0 115200 --gui

to launch the GUI

$ ./gq_gmc /dev/ttyUSB0 115200 --timesync

to do the time synchronization

$ ./gq_gmc /dev/ttyUSB0 115200 --log <CSV_FILENAME>

to store records to CSV file.

gq_geiger_counter_comm_protocol's People

Contributors

raleighlittles avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.