This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
lab:pigi:software [2013-07-03 12:16] – [Software] chrono | lab:pigi:software [2017-03-25 13:08] (current) – [Convert CPM to uSv/h] chrono | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Software ====== | ====== Software ====== | ||
- | {{ :lab:pigi: | + | Check it out on github: https:// |
- | As of now there is only the prove-of-concept code in the repository that allows basic CPM + uSv/h measurement. This will be extended to a more powerful system, allowing audio-output (for all those nostalgic geiger nerds who want the classic tak tak counting sound. Ideally there will also be a ready-to-download image, with kernel, OS and counting, logging & data sharing infrastructure, | + | ===== Overview ===== |
- | https:// | + | ==== pyGI Server ==== |
+ | |||
+ | The pyGi server component is implemented in python and uses the RPi.GPIO python library to take care of handling the interrupts, generated 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 ==== | ||
+ | |||
+ | [{{: | ||
+ | [{{: | ||
+ | [{{: | ||
+ | |||
+ | ~~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, | ||
+ | |||
+ | |||
+ | ===== 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/ | ||
+ | |||
+ | $ 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/ | ||
+ | $ 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, | ||
+ | sure to satisfy the RPi.GPIO dependency: | ||
+ | |||
+ | $ pip install RPi.GPIO | ||
+ | |||
+ | This only applies to non-Raspbian installations, | ||
+ | RPi.GPIO with the default installation. | ||
+ | |||
+ | ==== Cloning the repository ==== | ||
+ | |||
+ | $ git clone https:// | ||
+ | |||
+ | ===== 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 | ||
+ | won't work and port 80 will not be accessible due to security (< | ||
+ | |||
+ | ===== Usage ===== | ||
+ | |||
+ | ==== Server Startup ==== | ||
+ | |||
+ | $ cd PiGI/ | ||
+ | $ python pyGIserver.py | ||
+ | |||
+ | ==== Client Access ==== | ||
+ | |||
+ | Open a browser and go to http:// | ||
+ | |||
+ | ===== 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. | ||
+ | GNU General Public License for more details. | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Notes ===== | ||
+ | |||
+ | ==== GeigerJSON Template ==== | ||
+ | |||
+ | <sxh javascript; toolbar: | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | }, | ||
+ | " | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== INES Scale for reference ==== | ||
+ | {{: | ||
==== Pulse size or collected charge ==== | ==== Pulse size or collected charge ==== | ||
Line 16: | Line 159: | ||
<x>D = R * conversion factor</ | <x>D = R * conversion factor</ | ||
- | 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): |
- | < | + | < |
Line 55: | Line 198: | ||
\\ | \\ | ||
- | This means that the tube missed 1,48 counts per second. The actual (corrected) rate is 89,03 CPS. | + | This means that the tube statistically |
~~REFNOTES~~ | ~~REFNOTES~~ |