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~~ | ||