Documentation‎ > ‎

1. Settings


The following is a reference for settings, which are available both in-app or even when the app is not running, though Apple's

The external accessibility of settings can be a useful failsafe in the event bugs appear, for performing a workaround until an update with a fix can be released.  This is not ideal, but it has been useful in the past.

[Dec 2013 Status Update: Note that this documentation is somewhat outdated.  In-line documentation has been added for most settings and is more current.  This message will be removed when the website documentation is fully updated]

Default settings are shown in brackets, and are indicated with an asterisk in-app.
  1. Geiger Counter
    1. GM Tube [SBM-20 - Co-60 (22)]
    2. Custom GM Tube...
      1. Conversion Factor [22]
      2. Sensor Noise Offset [0]
      3. Deadtime Correction [OFF]
        1. x= [113]
      4. I/O Settings...
        1. Sound Engine Timings: Auto Adjust [ON]
        2. Sound Engine Timings: RMS Windows [16]
        3. Sound Engine Timings: Delay Windows [18]
        4. Sound Engine Timings: Volume Threshold [10000]
        5. Hysteresis Filter [0]
        6. Ultrafast Rates [OFF]
        7. AGC (iOS5+) [ON]
        8. Wavelet Filter [OFF]
        9. Audio Sample Rate [22050]
        10. Input Polarity [Both (RMS)]
    3. Device List [None]
    4. Scintillation Counter
      1. Gamma Spectroscopy Enabled [OFF]
        1. Spectra DSP: Pulse Shape Training
          1. Shape Tolerance [75%]
          2. Training Mode [OFF]
          3. Use Max as Amplitude [OFF]
          4. Sample Size [16]
        2. Sound Engine Timings: Volume Threshold [2000]
        3. Calibration Points: [0/0], [0/0], [0/0]
        4. Count Rate Only Options: Input Polarity [Both (RMS)]
        5. Count Rate Only Options: Baseline Delay [10]
        6. Count Rate Only Options: Baseline (Ripple) Filter [OFF]
        7. Histogram: Min Amplitude [0]
        8. Histogram: Max Amplitude [32767]
        9. Histogram: LUT [Blue Red Blended]
        10. Histogram: Draw Mode [Bar]
        11. Histogram: Bin Divisor (Windowed) [1.0]
        12. Histogram: Bin Divisor (Fullscreen) [Same as Above]
    5. Display
      1. Display Refresh [60 Hz]
      2. LCD Always On
        1. Keep Display On [OFF]
        2. Restrictions [None]
      3. Auto-Dim
        1. Idle Time [0s (disabled)]
        2. Battery Only [OFF]
        3. Brightness [10%]
      4. Measurement Time 1 [15s]
      5. Measurement Time 2 [5s]
      6. Display Statistic [RMSE %]
    6. Sound
      1. Alarm Sound [OFF]
      2. Clickify [OFF]
      3. Echo Filter [OFF]
      4. ClickifyLab
    7. GPS [OFF]
    8. Log File
      1. Recording Interval [6m]
      2. Default Address [NONE]
      3. Disable Map [OFF]
    9. Map
      1. Custom Layer: Show in List [OFF]
    10. Cosm (Pachube)
      1. API Key [NONE]
      2. Upload Interval [6m]
      3. Feed ID [NONE]
      4. Feed Title [My Geiger Bot Feed]
      5. Datastream 1
        1. ID [1]
        2. Unit [CPM]
      6. Datastream 2
        1. ID [2]
        2. Unit [uSv/h]
    11. About...

    Geiger Counter > GM Tube

    This is the "easy" way of configuring Geiger Bot for your hardware.  Simply choose the tube your Geiger counter uses from the list.

    The default tube is a SBM-20.  If you have this tube, or one similar to it, you do not need to change a single setting.  No set up is necessary.  (usually)

    Geiger Counter > Custom GM Tube...

    This menu is entirely optional.  If your tube is not in the selection list, or your equipment setup isn't getting optimal performance, you may wish to configure some things manually.  Note that these settings are not mutually exclusive from selecting your tube above, and you may use as many or as few of them as you like.

    Note you will probably never have to change any of the below settings, so if they seem overwhelming or confusing, it is not something you likely need to know anyway.  They are here for special cases and are listed here as a reference.

    Geiger Counter > Custom GM Tube... > Conversion Factor (Gamma Sensitivity)

    Conversion factor is the gamma sensitivity of your Geiger counter's tube, and is how the uSv/h or mR/h dose equivalent rates are calculated from the raw count rate (CPM) of the sensor.  This varies depending on the isotope and your tube.  No one value is accurate in all situations.  In fact, most of the time this will be rather inaccurate, but that is a problem common to every Geiger counter in existence.  It is a rough measure of comparing measurements between tubes of differing sensitivity, more than a true value.  It is valid only for measuring gamma radiation, and is usually exaggerated at lower energies.

    For more information on the subtleties of this you may wish to read the WIkipedia article on Sieverts.

    Conversion factor can be expressed in a number of different ways.  Geiger bot uses CPS/mR/h, or CPS/10 uSv/h.  This is how gamma sensitivity is usually stated and I find is easiest to remember.

    The default conversion factor is 22, which is the gamma sensitivity for a Russian SBM-20 tube to Co-60.  This is the same value used by the Soeks-01M in calculating the dose equivalent rate.  From the photographs and reports I have seen from users, the SBM-20 seems to be the most popular tube, so that is why Geiger Bot is standardized to it.  There is a small list of other isotopes and tubes to choose from, or you can input your own value as you like.

    A technical review study in Japanese is available here which can provide some additional information some common counters.  (spoiler: the scintillation counter wins)

    Additional Info: Gamma Radiation vs. X-Rays vs. Beta Radiation 

    It has been found recently that there is no fine line separating the spectrum of gamma and x-ray radiation.  Today, the terms simply differentiate where the photon originated from -- the electrons of an atom (x-rays) or the nucleus (gamma radiation).  Regardless of their origin, they will behave exactly the same when they have the same energy (wavelength).  Thus, "gamma sensitivity" is also "x-ray sensitivity", provided they are within the detection energy limits of the tube.

    Beta radiation has the same weighting factor for dose equivalence that gamma radiation does (x1).  Keep in mind, however, that GM tubes are perhaps ~50% efficient in detecting beta radiation, but only ~15% efficient in detecting gamma radiation.  (the exact efficiency depends on the radiation energy and your tube / housing)

    So, for most GM tubes, in order of ease of detection: hard beta -> soft gamma -> hard gamma.  This means if you are trying to measure only gamma radiation levels, you will need to filter out beta radiation with an aluminum shield if the source(s) emit both, as beta radiation has an exaggerated dose equivalent using the conversion factor for gamma sensitivity.

    Alpha radiation, in comparison, has a weighting factor of 20. This is why alpha emitters are so lethal inside your body.  Fortunately, they are harmless outside of it.

    Additional Info: Absorbed Dose vs. Dose Equivalent

    The implicit conversion assumption Geiger Bot (and other radiation detectors) perform in converting a count rate to dose equivalent rate is whole-body, gamma radiation exposure.  Different types of radiation and different areas of the body have different weighting factors, and the true calculation of the dose equivalent is a clinical assessment by a doctor or health physics officer, not a reading on a device.

    For whole-body, gamma radiation exposure, it is safe to convert between sieverts and grays, or rems and rads.  Grays and rads measure absorbed dose.  With other types of radiation, or specific locations of the body (ie, ingestion of I-131 and its migration to your thyroid, or thermal neutron exposure) this is not valid and will grossly understate your dose and relative risk of exposure.

    Additional Info: Energy Compensated Tubes

    Some Geiger counters use energy compensated tubes, which to some extent normalize the response of GM tubes to lower energy gamma radiation.  Without energy compensation, they have an exaggerated response to lower energy gamma radiation, due to how it interacts with the tube. (Compton scattering with the tube wall vs. pair production, I think)

    Energy compensated tubes still have that issue but mitigate it somewhat.  Note that this doesn't make them more sensitive to higher energies (shorter wavelengths) of gamma radiation, it accomplishes this by making them less sensitive to lower energies.  While this increases accuracy, it does so at the cost of sensitivity.  It is a tradeoff.

    Geiger Counter > Custom GM Tube... > GM Tube Sensor Noise (Offset)

    Most digital cameras, upon taking a shot in a "night" scene mode, will take a second picture with the shutter closed to record the sensor noise.  This is subtracted from the actual picture to reduce noise and produce a truer image.

    The inherent tube background count is like that noise correction picture taken when the shutter is closed.  It is the sensor noise.

    Unfortunately this is not something that can be easily determined, as you can never really close the shutter on a Geiger counter.  So, it is up to the manufacturer of the GM tube to determine this and list it on the tube data sheet.

    I have personally found most tube spec sheets to be rather high in their specification for this; for example, the SBM-20 sheet specifies 1 CPS, which is sort of ridiculous as background counts with that tube are typically below 60 CPM.  Osamu Higuchi found a value of 13 CPM seemed to be accurate for his SBM-20 based counter.  I have not seen a commercial counter that uses this.

    For what it's worth, my calibrated PM1703M measures 0.07 uSv/h (Cs-137) background where my Soeks-01M measures 0.16 uSv/h (Co-60, not calibrated), so 13 CPM seems roughly correct given the isotope and sensitivity differences.

    I'm not sure if it's due to the fact the tubes are not compensated for their over-response to low energies of gamma radiation, but I usually see about double the reading on a Geiger counter vs. a scintillation counter.  So if there is no offset entered here, you should expect background readings 2x above reference with SBM-20 and LND-712 tubes in my experience.

    Geiger Counter > Custom GM Tube... > I/O Settings > Auto Adjust

    WARNING: Disabling auto adjust may cause errors in detecting counts from your Geiger Counter.

    Auto Adjust allows Geiger Bot to adjust the timing parameters of the audio engine on the fly, adapting to your hardware and environment.

    However, this is optimized for microphone input from a Geiger counter.

    There is specific auto-adjust line input support (as noted below), but the problem is that many users have counters with 10-15 ms pulses even on the line input, and the defaults must be safe for the worst-case scenario.

    For users wanting higher performance or needing to tweak things for proper functioning, Auto Adjust can be further customized by you, or disabled entirely.

    The tables below pertain to customizing Auto Adjust mode further.  Think of it like "Program Auto" mode on a digital camera.

    If you need full manual direct control, see the next section.

     Auto-Controlled Setting
     Delay Windows
    Change delay to prevent erroneous multiple counts from a single click.
     Volume Threshold
    Set the volume threshold to be relative to the input volume, such that no counts are missed, and background noise is not counted.

     Auto-Controlled Setting
    Primary Adjustment
    Secondary Adjustment / Notes
    Effect of User Setting
     RMS Window
    Not automatically set
    Default is 16
    Always used
     Delay Windows
    Set to max time above volume threshold detected.  Gradually decay.
    Ignore outliers to prevent periodic sounds of longer duration from interfering with count rate.
    Used as minimum value.  May be temporarily increased on-the-fly as needed.
     Volume Threshold
    Set to 80% of input amplitude, and gradually decay.
    If high count rate, decrease threshold to prevent missed counts.
    Used as initial starting threshold.  Ignored thereafter.
     "Ultrafast Rates" Mode
    Volume threshold works normally. 
    Delay windows can be adaptively increased, but the history window they are tracked from is made significantly smaller to maintain high count rates.
    Ultrafast rates must be turned on by user.

     Default: Mic
    Default: Line
     RMS Window
     Delay Windows
     TOTAL304 samples (13 ms) 
     304 samples (13 ms)
        Note: Default Line Input settings are only used if RMS/Delay windows are set to their default value in settings.  (16/18)

      • Auto-Adjust is not available in Gamma Spectroscopy mode

    Geiger Counter > Custom GM Tube... > I/O Settings > RMS Window, Delay Windows, Volume Threshold

    These are the manual parameters for the sound engine which I do not recommend most users change.

    If you have used a digital camera's manual exposure mode, you will recall three main parameters you can set: ISO, aperture, and shutter speed.  Changing any one of these parameters affects the others.  If you crank up the ISO, you will have to change the aperture or shutter speed or your shot will be overexposed.

    Geiger Bot's manual settings are very similar; they also consist of three interdependent parameters.  If you change one, the others will be affected.

    • RMS Window
      • The RMS window provides smoothing and prevents false positives from occurring.  Due to the chaotic nature of sound, especially with variable distances and a microphone, this helps to improve accuracy, at a cost of maximum resolution (count rate).
        • Note in the above example that the decrease in amplitude of the sound is not consistent.  It both increases and decreases.
        • When the RMS function is applied, the averaging shapes it into a more consistently decreasing trend, which is easier to recognize.
      • A rough analogy is the ISO setting of a digital camera
      • This is defined in terms of samples at 22050 Hz.  By default it is 16 samples, which is about ~0.7ms.
        • Each individual sample is approximately 0.04535 ms, or 45.35 microseconds.
          • If Gamma Spectroscopy mode is enabled, this is fixed at 1 sample at 44khz, or 22.675 microseconds.
      • The RMS window should be less than half of the duration of the main part of your "click" sound.  If it is not, you will get something similar to shooting a fast action shot with too low of an ISO setting: blur.

    • Delay Windows
      • This is the "dead time" after detecting a count, during which no additional counts can register.
      • It is essential for preventing false double counts.
      • This is defined in terms of RMS Windows.  By default it is 18 RMS Windows.  18 * 16 = 288 samples @ 22kHz, or 13ms.
      • This must be long enough to not detect the same count twice.  In the above example, that's about 10ms as you can see.
      • Tighter timings give you a greater maximum count rate.
        • Optional: Use of a hysteresis filter may allow you to decrease this time even further (allowing for a greater maximum count rate than you'd otherwise get), but this depends on the specific output of your counter
        • If Gamma Spectroscopy mode is enabled, this is set equal to the setting for "maximum conversion samples".
        • Gamma Spectroscopy mode operates at 44kHz, where each sample is 22.675 microseconds.

    • Volume Threshold
      • This is the amplitude, or volume, the sound must exceed to be considered a count.
      • It is a relative scale from 0 ... 32767.  This is the digital representation of an input voltage from the microphone.
      • It should be about 80% of the volume of a click sound.
          • If Gamma Spectroscopy mode is on, this must be set low enough to catch low-energy (low-amplitude) pulses
          • Therefore, this should be set only slightly higher than the noise floor when performing gamma spectroscopy.
      • Setting this too low will result in the sound being above the threshold longer, decreasing the resolution at which it is seen.
        • A similar concept in photography is blown highlights; overexposure results in the loss of information

    To set these optimally, you will want to use a program such as Audacity to record the waveform on your PC to examine it, and also check Geiger Bot's audio graph.  Then, lower the delay windows at a low count rate just to the point before double counts are observed.

    Please keep in mind I have a very limited selection of test hardware and more than likely do not know which value these settings should be for you-- I can only give you general advice in how to determine them yourself.  This is true even if the Geiger counter is advertised as being Geiger Bot compatible; it's just not something I have any specific knowledge of.

     Mini-FAQ: The Why of Manual Configuration
     Why do I have to configure these timings manually for high count rates?  Why can't this be done automatically?

    Primarily for most Geiger counters, the output pulse is:
    1. Too long in duration
    2. Of an arbitrary and complex shape
    At higher count rates, these two factors combine to make the output pulses run together and repeatedly interrupt themselves.  Because the shape is not consistent, it is extremely difficult and sometimes even impossible to discriminate between the pulses based upon amplitude or frequency.

    After a certain point, the only way to have any accuracy is to have precise timing for the duration of the pulse, such that pulses which have run together and may not fall below the volume threshold can be discriminated.

    Analogyconsider a dripping faucet.  At a slow rate, it is easy to discriminate each drop of water, and from knowing the average volume of water contained in a drop under the current atmospheric conditions, a flow rate can be extrapolated.

    However, as the flow rate increases, drops will merge together and you will not see a single impact for each drop, and thus counting drops becomes an unsuitable method to determine the flow rate of the water.

    Rather, the overall volume of water must be measured, but to do so requires knowing how the mechanical sensor you have correlates with the flow rate -- similar to needing to know how the precise duration of a sound pulse correlates to a single count from your Geiger counter.

    To measure the group, you need to know more information.

     Ok, but can't the configuration for a certain Geiger counter model be stored and available for selection?

    Yes!  With some caveats.
    • If people send in configuration details, I will absolutely include them in the documentation and in-app.
    • However, there are differences between models and hardware revisions of iOS devices in terms of headset impedence
      • This can possibly make settings for one device different from another for the same Geiger counter
      • Also possible variation in cables, system settings, OS version, hardware revisions of Geiger counters, etc.

    Geiger Counter > Custom GM Tube... > I/O Settings > Hysteresis Filter

    This is for filtering out oscillating noise, mostly from high-voltage electronics in the line input.  (the kind you hear as a loud humming through headphones)  Most users will want to leave this off.

    A hysteresis filter is a filter for change.  Only when the volume level changes by a large enough amount can it be considered to be a click.  This filter is applied before the RMS function if enabled.

    Hysteresis filters are used elsewhere to reduce video flicker.
      • The Hysteresis Filter is not available in conjunction with gamma spectroscopy mode

    Geiger Counter > Custom GM Tube... > I/O Settings > Ultrafast Count Rates [DEPCREATED: 1.7.0+]

     Description Convenience Macro for Faster Timings
     CPU Use
     < 0.1%
     RAM Use
     Max Pulse Length
     < 150 microseconds (Auto-Adjust OFF)
     Max Pulse Length < 23 milliseconds (Auto-Adjust ON)
     Notes The auto-adjust increased length will not always work.  

    Limited hardware compatibility.
     Parameters Set
    RMS Window: 1, Delay Windows: 1, Polarity: + 
     Max Rate
     330K CPM
     Interferes with microphone count rate?
     Yes, microphone input pulses are usually too long to work well with this mode.
     Best use
     Deprecated.  Do not use.

    1.7.0+:  Ultrafast Rates mode is now deprecated as it was very confusing for people manually setting parameters.  It will be removed in a future release.  As it was only a macro for other settings, when it is removed, any users who have it enabled will automatically be migrated to the equivalent normal parameters which are listed above.

    Ultrafast Rates mode was added to make life easier for users wanting a higher max count rate than the default settings, while not having to configure manual timings.

    It is obsolete and a misnomer now, left in solely for backward compatibility.  It does *not* allow for the fastest count rate metering, as it is limited to 22050 Hz input sample rate.


    Unfortunately, Ultrafast Rates only works in some cases.

    For Ultrafast Rates to work accurately, the duration of each pulse must be < 150 microseconds.

    There is really no reason for any line output pulse to be more than 150 microseconds, yet most are.  This is fundamentally a hardware design problem.  If you are generating a massive 15ms pulse (1000x longer than 150us) you are significantly limiting your maximum count rate, to a mere 4K CPM.  (why, Ludlum, why?)

    I see many people using this mode with incompatible hardware and getting a grossly exaggerated count rate.  
    You don't have to do that.  With the proper manual settings you can obtain optimal accuracy and performance.

    In auto-adjust mode, the delay of this is set adaptively, but this is problematic as each pulse sound can correlate to having the shape of multiple pulses.

    When auto-adjust is off, you lose that protection altogether, and only shortest pulse times will be reported correctly.  The "MightyOhm" kits in particular seem to have this pulse timing.

    Ultrafast rates is a convenience macro for the following settings:
    • RMS window: 1
    • Delay windows: 1
    • Input polarity: positive only
    If you want a higher max count rate and Ultrafast Rates doesn't work for you -- and it probably won't -- see the manual settings section above.

      • Ultrafast rates is not available in conjunction with gamma spectroscopy mode.

    Geiger Counter > Custom GM Tube... > I/O Settings > Enable AGC (iOS5+)

    • Note: in 1.7.0 this is now more precisely named "disable measurement mode".
      • Geiger Bot uses two audio API modes -- "measurement" and "default".
        • "Default":
          • AGC is enabled with microphones (it is never applied to line input)
          • A high-pass filter is used on the input, which is probably only relevant to gamma spectroscopy
          • There may be additional, unknown filters used by iOS here, or this may change
        • "Measurement":
          • AGC is disabled for microphones
          • High pass filtering is disabled for all inputs
          • Any other unknown filters I am not aware of may be disabled as well.

    AGC is an iOS DSP filter that tries to make varying input volumes the same.  This can be very valuable for say, microphones where the audio source's distance changes, such as talking on your iPhone.  Instead of varying a lot and being inaudible, AGC will keep your voice about the same volume to the person on the other end of the phone call.

    Unfortunately, the cost of doing this is the loss of some precision of what the input volume actually was originally.  This can manifest as fluctuating volume levels and missed counts.  But, if you're using the microphone, you might not have any other choice.  it depends on your setup.

     Suggested Setting
     Microphone AGC ON*
     AGC OFF is more accurate but can make mic input levels too low to measure
     Line Input
     AGC OFF
     You should never have to use this with line input

    You can disable it with the microphone and see better accuracy-- but not in all cases.  It is also dependent upon the recording environment.
      • AGC is automatically disabled if gamma spectroscopy mode is enabled.

    Geiger Counter > Custom GM Tube... > I/O Settings > Wavelet Filter

    This is an optional experimental feature.  A very basic description would be "noise reduction".

    It may help in limited situations with noisy input, but I doubt it.  I would recommend leaving it off.  It also relies on scalar math (rather than vector functions) and thus is one of the more computationally expensive DSP options.  (probably 2% CPU, continuously)


    Display contains a number of settings most users will probably not change.

    Display > Refresh Rate

    Refresh rate has little effect other than increasing the speed at which the audio graph is drawn at a significant cost to CPU usage*.  The LCD panel itself cannot update faster than perhaps 30-60 Hz.  I would recommend only increasing this when you need the additional resolution from the audio graph.  At settings less than 60 Hz you will notice the display updates are choppy.

    *(the data the audio graph polls is updated once per buffer.  A buffer is 512 samples @ 22kHz, or 23ms.  This is about 43 Hz.  Thus the maximum effective polling rate, or refresh rate here, is twice that or about 85 Hz.  However, 120 Hz and 240 Hz can make things a little easier to see than 85 Hz due to how the graph is rendered.)

    Refresh rate is the single largest factor affecting CPU use in Geiger Bot other than mapping -- if you increase it beyond 60 Hz.

    Display > Power Management

    Power management features have been added to extend battery life during data collection.  These features are disabled by default, but can be accessed via Settings -> Display.

    • LCD Always On
      • Keep Display On
        • This will keep the display on and prevent your device from sleeping according to the auto-lock system setting
        • The default is off, and caution should be taken when enabling it, as it may potentially deplete your battery if unattended
      • Restrictions
        • None
        • AC Only
          • This will make the "keep display on" function only work while the unit is plugged in to an external power source.
          • On battery, it will still sleep according to your device's "auto lock" system setting.
        • >20% Battery or AC
          • This will keep the system from sleeping, but only while power is at non-critical levels.
          • Once it reaches 20% and does not have an external power source, it will go to sleep according to your device's "auto lock" system setting.
    • Auto-Dim
      • Idle Time
        • Setting the idle time to a non-zero value will activate the auto-dim function
        • This has the potential to more than double your battery life while using Geiger Bot
        • After you have not pressed the screen for the specified period of time, the display will dim.
        • The rate at which Geiger Bot processes data and updates the display is also temporarily slowed.
        • Tapping on the screen (anywhere) will restore your display to full brightness again
        • This will occasionally get overriden by iOS and rather confused.
      • Battery Only
        • This disables auto-dim while using an external power source
      • Brightness
        • This specifies what brightness auto-dim sets your display to.
        • The default is 10%

    Geiger Bot Auto-Dim vs. iOS Auto-Dim

    You may have noticed that your device will dim its own display shortly before it shuts off.  So, what is the point of doing it in Geiger Bot as well?

    The system-wide auto-dim from iOS occurs shortly before the device sleeps.  It is not active for an extended period of time.  This is to support the way that iOS devices are used the vast majority of the time.

    However, Geiger Bot is relatively unusual in that its main purpose is to collect instrument measurements.  Thus the greatest benefit can actually come from dimming the display while the unit is active for extended periods of time.

    Display > Custom Measurement Times

    Custom measurement times aren't overly useful except to match them to existing hardware.  Such a Ludlum counter's 30 and 60 second modes, or the Soeks-01M's 20 second or 120 second count (depending on firmware version).  You can go down to 1 second or up to 1 day.  There are natural cycles to background radiation that coincide with the time of day.  In general. more humidity carries more radon daughter products (as does the rain).  So there are certainly limits to the accuracy gained by increasing the measurement time.

    Display > Display Statistic

    The display statistic tells you about the precision of your measurement.

    When you take a picture with your digital camera, you can compare it to what you see with your eyes, and you know instantly if it came out well or not.

    This is not so easy with radiation as you are blind to it.

    It's like trying to tell if a photograph you just took on film was good or not, without opening the camera.  You could get a rough idea, knowing the characteristics of the film, lens, exposure time, and by measuring the scene with a histogram / light meter.  This is a similar concept.

    Note all of these measure precision, which is not the same thing as accuracy.

    Display > Display Statistic > σ - Standard Deviation

    This is the spread of the measurement, of which about 68% of the measurements fall into.  This is the statistic most heavily weighted by large fluctuations in the past, and the slowest to decrease after such an anomaly.

    Standard deviation was added because I read where a Geiger Bot user did an overnight count and got a rate higher than expected.  Another person asked him if the program calculated the standard deviation-- so as to tell if this was because of some sudden huge spikes (creating a large spread) or if the measurement was steady and more likely to be true.

    Display > Display Statistic > ± - 95% Confidence Interval

    This is the range in which 95% of the measurements are expected to fall.

    This is usually more useful than the standard deviation, because the standard deviation is weighed against the number of samples, and thus a large anomaly in the past measurements will dissipate more quickly.

    Display > Display Statistic > δ - Mean Squared Error         [DEFAULT]

    This is the amount of statistical error in the sample set.  It is very similar to the 95% CI, though more sensitive to outliers due to the mathematical squaring.

    Basically, the idea here is the model the data is being fit to (a Gaussian distribution) is compared to the actual data, and the variance of the residuals - or differences from the model - determine the statistical error.  We know ahead of time that if we're measuring the same thing over and over, it will have a Gaussian distribution, and that knowledge simplifies this.

    Obviously a small number here is better.

    For any of these stats, you can select between absolute or relative (percentage) versions of these.  Percent is the default, and is the easiest to compare and make sense of across multiple units and count rates.  This is known in statistics as normalizing.  Statistics are calculated by per-second binning.


    This is a simple toggle switch to use Location Services ("GPS" translates well).  It can also be enabled on the mapping screen.  If this is off, geolocation data will not be logged, displayed, or uploaded, etc.  By default it is off, because I find getting a pop-up asking for location permissions when starting an app is very annoying.

    If you enable the GPS switch, then answer "No" to the permissions dialog asking if Geiger Bot can use location services, you must manually grant Geiger Bot permissions through Apple's before Geiger Bot can access location data.

    Disable this to maximize battery life.

    As an interesting addendum, starting on the iPhone 4S, not only is the US GPS satellite constellation system used, but also the Russian GLONASS system, and using both systems simultaneously enables better accuracy and coverage -- 50% better accuracy, according to Garmin.  This is a good thing.  GLONASS has a couple less satellites than GPS but is otherwise similar.  GLONASS is positioned differently to give better coverage to users in the northern or southern hemispheres, whereas GPS favors equatorial latitudes.  (the EU's Galileo is also theoretically supported by the hardware though it is not operational yet)  GLONASS-enabled chipsets also have faster lock-on times.

    Log File > Default Logging Interval

    Geiger Bot maintains a CSV log file with a 1 minute update rate by default, in which it writes the date/time, GPS location (if enabled), total counts detected in the time frame, and rates calculated specifically for that time frame.   This can be set to update as often as every 1 second, which is good resolution for this kind of thing and makes pretty graphs in your favorite spreadsheet.  While a 1s update rate may seem like a lot of data, your iPhone/iPad can hold a lot of text logs.  You can however clear the log file by using the reset function (hold/double-tap zero).  To export the log, hold or double-tap "settings" and mail it to yourself.  When you use the mail log function (hold / double tap settings) the current file size is displayed on the console.  (you can cancel sending it thereafter)

    To disable logging entirely, set the recording interval to 0.

    Log File > Default Address

    You can specify a default email address that is used when filling out the email, so that you only have to hit send.  This information is not collected in any way, and is only saved locally and used in creating the email.

    By entering "database" (no quotes), a copy of the user points SQLite 3 database will be emailed instead of the log file.  This is probably less useful, but exists as a backup.


    This controls settings for audio output (rather than input), used for alarms and click sounds.

    Sound > Alarm Sound


    Due to some random SDK change breaking playing system sounds, this is now an annoying high-pitched monotone like a smoke detector.  Fixing this / investigating further is very low priority.

    Sound > Clickify

     Description Novely feature.  Synthesized click sound is played with each count.
     CPU Use
     < 0.1%
     RAM Use
     Sound Model
     Classic analog CDV-700 click sound
     Maximum rate
     Unlimited (up to sample rate of audio)
     Interferes with microphone count rate?
     Yes, unless Echo Filter is enabled or output volume is decreased.
     Best use
     In conjunction with line input: bypass cable is connected to external speaker.
     Other uses
     Can click along with music.  Vaguely amusing.
        - Auto-Adjust: OFF
        - RMS window: 1
        - Delay windows: 1 - 32 (controls pitch)
        - Volume Threshold: 8k (?)
        - Hystersis Filter: 16k (?)

    Sound > Echo Filter

     DescriptionAllows for safe use of Clickify with microphone input
     CPU Use
     < 0.1%
     RAM Use
    Nullifies input for 20ms after 20ms delay
     Limits max count rate to 600 CPM.
     Interferes with microphone count rate?
     Yes, at rates > 600 CPM.
     Best use
     If use of Clickify is desired with microphone input.
     Other uses

    Sound > ClickifyLab

    ClickifyLab is a realtime frequency modulation effect generator, perhaps overly elaborate for this purpose but hopefully interesting nonetheless.  It modulates the click sound generated by Clickify with a custom modulation you can create.

    The graph displays the output PCM waveform; the first 150 samples @ 11kHz.  This is much like what you see in Audacity or SoundForge.  The output sound waveform is a blue color.

    "Amplitude decay constant" allows you to make the sound quieter, or fade out more quickly.  10^x is the faster decay function of the two.  The actual amplitude function is non-linear, which you can see as a red line on the graph.

    "Frequency constant 1" sets the constant used in a sine or cosine function, which sound slightly different; cosine is out of phase with a sine wave, so it can be used to create a more distinctive effect.  At the left of the slider is low frequency, and to the right, a higher frequency.  Lower frequencies can make the click sound more "hollow", and higher frequencies make it sound sharper or more electronic.  Note that this is only applied to the first 64 samples.  This is a green line on the graph.

    "Frequency constant 2" is similar to the above, only it applies to the entire waveform.  If both are enabled, its effect are multiplicative; ie both frequency functions modulate each other, rather than both representing a fundamental harmonic.  This is a darker green line on the graph.

    "Power constant" is a more chaotic parameter, especially the x^2 function, which will cause clipping unless used minimally or in conjunction with amplitude decay.  x^2 tends to emphasize the middle part of the click sound more.  The square root function is more tame, and essentially creates a reverb effect.  This is an orange line on the graph.

    "Mic Input": This applies the click generation algorithm to live data from the microphone, rather than an incremented value.  This produces some vaguely interesting distortions in real-time but you'll want to be using headphones as this may cause feedback.  The actual practical use of this feature is as an input monitor for the line-in cable.

    A caveat: the default click sound is cached in memory and only synthesized once.  There is randomness built into the frequency modulation effects and enabling any of them will increase CPU use slightly, but relatively significantly.

    Cosm (Pachube / Xively) [DEPRECATED]

    NOTE: Pachube has changed their name to Cosm, and has now been acquired and renamed as Xively.

    It does not appear possible to create individual free accounts to upload data to anymore.  Therefore, all Cosm/Pachube/Xively functionality should be considered deprecated.  It will not be updated and is only being left in to support users with "old" accounts that still function.

    All reference information here is being removed, as it no longer applies to the new Xively service or website.

    Safecast Configuration

    As the Safecast app also uses this documentation, I will briefly cover that here.

    First, Safecast data upload is exclusive to the Safecast app.  It is not present in Geiger Bot.

    This feature is very similar to the Pachube feature.  You enter an API key, configure a few settings, and it will upload measurements at a regular interval with helpful messages on the console should something go wrong.  Or right.

    But, there are some caveats:
    1. Due to API limitations, the exact gamma sensitivity of your hardware cannot be sent.
      1. You should only use this feature if you have hardware with the same sensor as one of the devices on the Safecast configuration page's device list. (which you must select as well)
      2. Do NOT upload data from an airplane
      3. Do NOT upload data from test sources
      4. Do NOT upload data if it's raining and you see elevated counts from natural radon
      5. If you are serious about collecting data here, I would strongly encourage you to buy a bGeigie Nano and upload the logfiles.  it does not tie up your phone to collect data and is less subject to error.
    2. Unlike Pachube, there are additional verifications for sending data.
      1. Precision is Necessary
        1. The normalized statistical error of the measurement at a 1-sigma confidence level cannot be more than 50%
      2. No Microphones Allowed
        1. Line input must be used for any data sent to Safecast
      3. Geolocation Required
        1. As the data is used for mapping, a latitude and longitude are required.  The app must have location permissions and the GPS switch must be set to on in settings.

    As a final note, any data submit you won't show up instantly on the Safecast map, even if you see it locally in your user database.