User Tools

Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
lab:pigi:software [2014/05/24 08:34] – [Effect of Dead-Time on Counts] chronolab:pigi:software [2017/03/25 13:08] (current) – [Convert CPM to uSv/h] chrono
Line 1: Line 1:
 ====== Software ====== ====== Software ======
  
-As of now there is only the prove-of-concept code in the repository that allows basic CPM + uSv/h measurementThis will be extended to a more powerful systemallowing audio-output (for all those nostalgic geiger nerds who want the classic tak tak counting sound+Check it out on github: https://github.com/apollo-ng/PiGI 
 + 
 +===== Overview ===== 
 + 
 +==== pyGI Server ==== 
 + 
 +The pyGi server component is implemented in python and uses the RPi.GPIO python library to take care of  handling the interruptsgenerated by the impulses coming from the PiGI.  
 + 
 +A LevelDB instance stores the collected data and websockets are used for the distribution of live and historical data to connected clients (webGI).  
 + 
 +Naturally, it also provides an HTTP module to deliver the actual webGI client, so that any user can access the geiger counter without having to install native software first. 
 + 
 +==== webGI Client ==== 
 + 
 +A kinda bleeding edge mobile-first HTML5/CSS3 Websocket based web client, than can be used in latest open source browsers like chromium & firefox. 
 + 
 +==== Preliminary Dev Screenshots ==== 
 + 
 +[{{:lab:webgi-mainpanel.jpg?185|Main Instrument View}}] 
 +[{{:lab:webgi-historypanel.jpg?183|History View}}] 
 +[{{:lab:webgi-tracevisualizer.jpg?185|Ion Trace Visualizer}}] 
 + 
 +~~CL~~
  
 In the future, with more time and the help of other enthusiastic developers, there will also be a ready-to-download image, with kernel, OS and counting, logging & data sharing infrastructure, which just needs to be copied to the SD card so that it works out-of-the-box. In the future, with more time and the help of other enthusiastic developers, there will also be a ready-to-download image, with kernel, OS and counting, logging & data sharing infrastructure, which just needs to be copied to the SD card so that it works out-of-the-box.
  
-https://github.com/apollo-ng/PiGI/tree/master/software 
  
 +===== Installation =====
 +
 +==== Dependencies ====
 +
 +We've tried to keep external dependencies to a minimum to make it easily
 +deployable on any flavor of open-source operating system. If you deploy it
 +successfully on any other OS, please update this:
 +
 +=== Currently tested versions ===
 +
 +    * greenlet-0.4.2
 +    * bottle-0.12.4
 +    * gevent-1.0
 +    * gevent-websocket-0.9.3
 +
 +=== Ubuntu/Raspbian ===
 +
 +    $ sudo apt-get install python-pip python-dev libevent-dev
 +    $ sudo pip install ez-setup
 +    $ sudo pip install leveldb greenlet bottle gevent gevent-websocket
 +
 +=== Gentoo ===
 +
 +    $ emerge -av dev-libs/libevent dev-python/pip
 +    $ pip install ez-setup
 +    $ pip install leveldb greenlet bottle gevent gevent-websocket
 +
 +=== Raspberry PI deployment ===
 +
 +If you want to deploy the code on a PI for production in order to count
 +values from a real GM tube connected to the PiGI-Module, you have to make
 +sure to satisfy the RPi.GPIO dependency:
 +
 +    $ pip install RPi.GPIO
 +
 +This only applies to non-Raspbian installations, since Raspbian ships
 +RPi.GPIO with the default installation.
 +
 +==== Cloning the repository ====
 +
 +    $ git clone https://github.com/apollo-ng/PiGI.git
 +
 +===== Configuration =====
 +
 +PyGI checks 3 configuration files, if existent in conf/, updating the
 +values defined in the file before or using new ones, in the following order:
 +
 +    * default.cfg (automatically comes shipped per default with examples)
 +    * local.cfg (create this file to override local server settings - gitignored)
 +    * dynamic.cfg (this file will be created automatically,
 +      if the webGI client wants to change server settings - also gitignored)
 +
 +When you are deploying on the Pi to count real values and/or want to
 +change the Web Server/Socket port to 80 rather than 8080 __you have to
 +run the software as root__. Otherwise the interrupt handling on the Pi
 +won't work and port 80 will not be accessible due to security (<1024).
 +
 +===== Usage =====
 +
 +==== Server Startup ====
 +
 +    $ cd PiGI/software/
 +    $ python pyGIserver.py
 +
 +==== Client Access ====
 +
 +Open a browser and go to http://127.0.0.1:8080
 +
 +===== License =====
 +
 +This program is free software: you can redistribute it and/or modify
 +it under the terms of the GNU General Public License as published by
 +the Free Software Foundation, either version 3 of the License, or
 +(at your option) any later version.
 +
 +This program is distributed in the hope that it will be useful,
 +but WITHOUT ANY WARRANTY; without even the implied warranty of
 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 +GNU General Public License for more details.
 +
 +
 +
 +
 +===== Notes =====
 +
 +==== GeigerJSON Template ====
  
-===== INES Scale for reference =====+<sxh javascript; toolbar:false> 
 +
 +    "type" : "geigerjson", 
 +    "timestamp": 1393878981, 
 +    "geostamp":
 +        "lat": 48 
 +        "lon": 11, 
 +        "alt": 560 
 +    } 
 +    "node_uuid":"9b70c59c-a313-11e3-a61f-001f161087c0", 
 +    "parameters":
 +        "tube_id" : "LND712", 
 +        "dead_time" : 0.000190, 
 +        "tube_factor" : 0.00233, 
 +        "opmode" : "[stationary|mobile]" 
 +        "window": "[abc|bc|c]" 
 +    }, 
 +    "data" : { 
 +        "source": "[sim|test|env]", 
 +        "cps" : 10, 
 +        "cps_dtc" : 11, 
 +        "cpm" : 600, 
 +        "cpm_dtc" : 610, 
 +        "totalcount" : 12345, 
 +        "totalcount_dtc" : 12456, 
 +        "edr" : 0.89, 
 +        "edr_avg_15m" : 0.90 
 +    }, 
 +    "annotation" : "my radioactive moment" 
 +
 +</sxh>
  
 +==== INES Scale for reference ====
 {{:lab:pigi:ines_scale.png?200|}} {{:lab:pigi:ines_scale.png?200|}}
  
Line 21: Line 159:
 <x>D = R * conversion factor</x> <x>D = R * conversion factor</x>
  
-So to get from cps to µSv/h (only units here, not really a correct equation):+So to get from cpm to µSv/h (only units here, not really a correct equation):
  
-<x>µSv/h = cps * tube and energy specific conversion factor</x>+<x>µSv/h = cpm * tube and energy specific conversion factor</x>