New  iOS 7 Compatibility Information - Microphone Permissions 

If you choose to deny microphone permissions in iOS 7, Geiger Bot will unable to acquire any input.  In 1.7.0, permission denied status is displayed very clearly over the main numeric display.

Here's how to undo this and get audio input back:



WARNING - Documentation Update Status (2013-09-10)

Some of this documentation is now outdated as it is difficult to find the time to maintain it all while devoting significant time to ongoing development.  Especially when new development makes a documentation update obsolete again.

For complete information, please check the main page of this site and update history for additional information that may have been omitted from this page.  Additionally, I have tried to document the Settings pages in-app and that information should be considered more up-to-date than this page.

If you are interested in helping maintain the documentation please email me.


This documentation is written with the assumption you have some understanding of radiation and how it is measured.  It is not a replacement for your Geiger counter's documentation, professional radiation monitoring, a health physics officer, or a doctor.

Despite the amount of documentation present here, Geiger Bot is intended to be simple and require no configuration on your part.  The default settings are smart, adaptive, and generally work well, even with a microphone.

But if you want or need to do more than that, you can.

WARNING!  The indicators and dose equivalent rate displayed by Geiger Bot are not a guarantee of safety.  There are types of radiation that are difficult to measure with standard GM tubes (alpha, soft beta, neutron, soft x-ray, etc).  The greatest risk to your health is likely from ingesting or inhaling radioisotopes, and a gross radiation background count cannot directly measure that.

It is also very difficult to detect contamination in food or drink, and is usually something done by a laboratory scintillation counter with chemically processed samples.

Graphical Guide

(note: work in progress.  The new graphical guide will eventually be separated from the old reference text.  I plan to translate this into Japanese and include it in the next release.  The grammar style is awkward, but it helps machine translation.)

: > 0.5 µSv/h (elevated above
average background levels)

Dosimeter; total accumulated
dose equivalent.  Saved until a
full "reset" is performed.
ВНИМАНИЕ: > 3.5 µSv/h (much
higher than normal. Use caution.)

18s↑: Current measurement time

Σ: Total counts (since last zero)
0: Total time (since last zero)
δ: Statistical error % (for current measurement time)

Display screen navigation

∅: "Zero the meter"
     (reset measurement to 0)
: Settings
(Graph Scale: only active on graph display screens)

Display unit
Reset: Zero, clear log file, and reset dosimeter
: email log file
: LED or screen light
Auto: Up to 120s, reset to 1s when a large change is detected  
All: Average of total count and total time
15s: Average of last 15s
5s: Average of last 5s
Purple keys are alternate functions.  Press and hold the button to use them.


 Display Screen Selection
 1. Main Display
2. CPS/CPM Graph
 3. Audio Graph / Histogram
 4. Map
Note the position of the white-colored "dot".  It indicates the current display screen.  This is the navigation control.

This screen displays a moving average.  You can choose the units, and the measurement time.

This number is also shown below the graph on the other display screens.
Displays counts from last 300 seconds or 300 minutes, depending upon the graph scale selected.

For most GM tubes, any shading in the graph is an abnormally elevated level of radiation above natural background levels.
For troubleshooting and verifying proper operation.

Visualization of the last 5 seconds of audio input.

Red line: volume threshold
Black line: input volume level
Blue line: when a count was detected

.::.. Histogram: Displays bins of maximum volume detected during the count.  This is for gamma spectroscopy.  It is of no use with a Geiger counter.

The map plots data you have logged and contains some additional map layers.
  1. Safecast (global)
    1. µSv/h
  2. US DOE / NNSA (.jp)
    1. µSv/h
    2. MBq / m²
  3. USGS (.us / .ca)
    1. µSv/h
    2. Uranium ppm
  4. EPA (.us)
    1. Uranium mines

 Other Minor Screens
 Console  ClickifyLab
Tap on display to show/hide.

Shows internal program messages, which can aid in troubleshooting. (especially Pachube configuration)
Accessed through settings.

Allows you to customize the "click" sound.  By default, it is not enabled.  (novelty feature)

█ - Point View
1.23 - Numeric View
Top Menu Bar
By default, mapping shows your current position in a "minimap" with dose equivalent rates from a local database of your data and optionally Safecast, etc data.

 "LUT" - Apply a false-color lookup table palette (LUT) to the data.

"Layer" - Choose from the different available mapping database layers.  The default is Safecast's global database combined with NURE and Geoscience Australia data.

Resize Arrows - Toggles between full-screen and windowed display of the map.

Menu Icon - Shows or hides the top toolbar.  Also activates HUD.
Numeric view only applies to user collected data points, and the EPA uranium mines data.  It has no effect on most layers.

In this mode, the details of each data point are shown.

Please note: rates are averaged together if they are in the same location.

1.33 µSv/h - The average dose equivalent rate.

(4251) - The number of database records comprising the data point.

2011-12-7 - The date of the most recent database record for the data point.
-1, SD*, HD, +1, +2 - Level of detail.  This controls both the total number of points displayed at once, and their density.  This can make small points easier to see.

Map Alpha | Point Alpha - Controls brightness of the map background and data points

Mapping - Scale Control:

Changing the Map Scale
You can change or reset the map scale using swipe gestures.

These commands are also available at the bottom of the "LUT" menu directly.

Much like the dynamic range of a digital camera, this is always a tradeoff between contrast and range.  The default settings are sort of analogous to metering for indoor lighting; anything beyond that will be a blown highlight.

 Position  Direction  Fingers  Effect
 Top Half
 ↑ Up
 1  Max+
 Top Half
 ↓ Down
 1  Max-
 Bottom Half
 ↑ Up
 1  Min+
 Bottom Half
 ↓ Down
 1  Min-
 Any  ← Left
 1  Reset Scale
 Any  ← Left
 2  Toggle Scale Mode

Increasing or decreasing the max/min is accomplished by swiping up or down.  Whether you swipe on the top or bottom half of the bar determines whether you affect the maximum or minimum.

While holding your finger down, you can move it up or down freely to change the scale value to a precise amount.  Only when you lift your finger will the scale will be applied.  This allows for much finer control than mere flicking.

Swiping left with a single finger will reset the scale to default values.

Swiping left with two fingers will toggle between natural logarithm or linear scaling.  Using a natural logarithm allows for a greater range of values to be displayed while still maintaining contrast for lower ranges.

(NOTE: Safecast LUTs have fixed scales and cannot be changed.)

  • NOTE: The mapping module can be entirely deactivated as a failsafe if you experience any issues.
    • Settings -> Log File -> Disable Map
    • After changing this setting, you must force quit and restart the app (or restart your device).  (you can also change the setting in Apple's main on the home screen)
    • To force quit:
      • Press home.
      • Double-tap home so that the multitasking bar appears at the bottom of the screen.
      • Hold down on the Geiger Bot icon until a red "-" appears in the corner.
      • Tap the "-".
    • Notes about Disabling Mapping
      • When mapping is disabled, data will not be logged to the mapping database
      • To re-enable mapping, you must restart the app as described above

Histogram (Gamma Spectroscopy) Controls

 Direction Fingers Effect
 ← or → 1
 Graph Trace - show keV/bin
 ↑ Up 2 Zoom In
 ↓ Down 2 Zoom Out
 ← Left 2 Pan Right
 → Right
 Pan Left
 3 Change Y-Scale (LIN, LOG, SQRT)

 Settings: Part 1
Settings: Main
Settings: Geiger Counter
 Settings: Custom GM Tube
 Settings: I/O Settings
Accessed by tapping on the "settings" button on the keypad. (icon looks like a machine gear)

GPS: Enable or disable location services.  If GPS is off, the latitude and longitude will not be saved to the log file.  Nor uploaded to Pachube.

Scintillation Counter:  See reference information below.  This is of little use to Geiger counters.
From this you can select your tube from a list, or enter custom options.

These are not mutually exclusive.  You can choose your tube and set custom options.

The default GM tube is a Russian SBM-20.
Conversion factor: Gamma sensitivity, in the format CPS/mR/h.  You can type into this text field directly, or fill out the text field by choosing from the list of GM tubes.

Sensor noise: This is from the spec sheet of the GM tube or your own testing.  Osamu Higuchi found a value of 13 CPM worked well for the SBM-20 tube.  This matches my calibrated reference.

(For GM tubes) Unless a sensor noise offset is used, background levels will measure higher than the actual value.
Changing I/O settings may prevent proper detection of count sounds.

Ultrafast Rates: Enable this if you are measuring rates > 3000 CPM with line input.  It is not compatible with all Geiger counters.

See reference text for information on the others.  I do not recommend changing them unless necessary.

Each sample is 45.35µs in duration.

 Settings: Part 2
 Settings: Display
 Settings: Sound
 Settings: Log File
 Settings: Cosm (Pachube)
Keep Display On: Prevents device from entering sleep mode after inactivity.  Use caution if you enable this setting. It can deplete your battery if left unattended.

See reference text for others.
Optional sound playback.

Alarm Sound: Very annoying alarm sound at > 3.5 µSv/h or after no input for 2 minutes.

Clickify: Synthesized count sound.  This is best for line input with a bypass to an external speaker.

Echo Filter: This allows safe use of Clickify with microphone input, but limits the max count rate to 600 CPM.
Recording interval: how often the log file is written to.  Can be set to 0 to disable logging.

Default address for logs: Fills out the To: email address when you email the log. (by holding down the "settings" button)  Not collected or used elsewhere.
This controls uploading your measurements to Cosm (Pachube).  Requires creation of Cosm (Pachube) account at their website.  Basic use is free.

Optional Cosm (Pachube) triggers can update Twitter and Facebook feeds.

See reference text for more information.

Getting Started - Connecting your Geiger Counter

Microphone Input
Optional Line Input
Need a Geiger Counter?
Place your device's microphone as close to the Geiger counter's speaker as possible.  It works best if both are in a fixed position.  Using the audio graph screen can help find the best position.

To use the microphone input outdoors, you will want an external microphone connected to the headset jack.  You should position the external microphone to avoid wind and noise.  If possible, put it directly next to the speaker inside of the Geiger counter's case.

iPhone 4/S: The microphone is at the bottom of the unit, by the dock connector.

iPad: The microphone is at the top.

iPod Touch 4G: The microphone is on the back, by the camera.

iPhone 3G/S: The microphone is on the front of the unit, near the bottom
If it is possible, it is recommended to connect your Geiger counter to your device with a line input cable.

If your Geiger counter has a line output jack already, you can probably just purchase a cable online.

If you have electronics experience, you can mod your Geiger counter to add a line output.

Note: for connecting to iOS devices, it is necessary to "short" the mic and ground lines in the cable with a resistor.  If this is not done, the device will not detect the input at a hardware level.

Above is a schematic by Osamu Higuchi.  He notes:
"The points of this schematic are:
- Divide the output voltage (in this case, about 9Vp-p) down to about 0.1V
- Do not decouple the output and iPhone mic input. Let the DC bias on iPhone mic input drop"

There are many choices for Geiger counters.  I have listed several units below with line output.

Personally tested:

- IMI Onyx*.  Tested as accurate up to 350K CPM.
- bGeigie Nano*. (Safecast/IMI)
- GS-1100A* scintillation counter amp/PSU.

Devices I have not tested:

- IMI Inspector Alert*RadAlert*, and CRM-100*.
- "Fukushima" (opengeiger) Geiger counter.
- GMC-080 Kit and line input cable.
- Images SI counters and line input cable.
- MightyOhm Geiger Counter Kit

Devices with known issues:

- PocketGeiger Type 4: Geiger Bot does not support devices that use power from line output.  (Might work in v1.7.0 with audio passthrough if you create a 20khz tone in Audacity on a PC and play it back using the "Music" app on loop, but I cannot guarantee that.)

*: built-in device profile for easy setup

Further setup

Alternate GM Tube Setup

GM Tube
Known Data
Setting Value
On list
Settings -> Geiger Counter -> GM Tube (Choose from list)
Not on list, known specs
Settings -> Geiger Counter -> Custom GM Tube x CPS = 10 µSv/h  (CPS/mR/h)
 UnknownLength =~ 100mm
Settings -> Geiger Counter -> GM Tube SBM-20 (Co-60): 22
 UnknownLength =~ 50mm
Settings -> Geiger Counter -> GM Tube CDV-700 (Co-60): 10
 (leave at default)
 SBM-20 (Co-60): 22


 Topic Thx Info
 Retrieve Log File
 Hold down on the "Settings" button to use the secondary function
 Make Line Input Cable
 See Osamu Higuchi's schematic on main page of this site
 Take Longer Measurement
 Tap "All" under "Measurement Time".  Tap "0" (zero/reset) to restart count


 Possible Cause
 No Counts Detected
 Counter's speaker too far away from mic
 Move devices closer together, verify w/ audio graph
  Volume Threshold setting too high
 Lower setting or enable auto-adjust
  Using mic input with AGC off
 Turn AGC on for microphone input if needed
  Hysteresis Filter rejecting input
 Lower hysteresis setting
  RMS window too large
 Decrease RMS window size, evaluate effect
  Software bug
 Restart Geiger Bot and/or reboot device
  Phone call has assumed control of audio
 End phone call to release control back to Geiger Bot
  Background noise excessive
 Position mic/Geiger counter more closely, use line input
  OS audio server crash (very unlikely)
 Wait for Cerberus to restart audio engine, reboot if it can't
  System hardware failure (very unlikely)
 Reboot and verify with other audio apps.  Contact Apple.
  Lupus It's never Lupus
 Only Some Counts Detected
 RMS window too large
 Decrease RMS window size
  Batteries failing in Geiger counter
 Replace batteries
  Power supply problems in counter
 Custom built units: verify consistent voltage of PSU
  Too much variance in input amplitude
 Use manual settings
  Volume threshold too high (barely)
 Lower volume threshold a small amount
  Echo filter rejecting input
 Disable echo filter
  AGC creating too much input variance
 Disable AGC
  Sample rate too low for pulse width Change sample rate to 44.1khz
   Increase pulse width of output
 Too Many Counts Detected
 Delay windows too short
 Increase delay windows
  Ultrafast Rates mode is enabled
 Disable Ultrafast Rates mode
  Clickify is on with no echo filter (mic)
 Disable Clickify, reduce output volume, or enable echo filter
  Excessive background noise
 Use line input cable or reposition devices
  Electronics noise / power supply HF
 Should be fixed in hardware, but hysteresis filter may help.
 Cosm / Pachube Not Working
 Check console for exact error message
 Resolve problem identified by console
  Bad API key / feed ID
 Verify API key and Feed ID
 Line Input Cable Not Working
 Incorrect wiring
 Verify connections are correct
  Input voltage too high
 Should be < 100mV p-p as per Osamu Higuchi

An Introduction to Radiation

Radiation is energy in the form of particles and waves that is capable of creating change.  This occurs through ionization, a process in which the bonds between atoms in molecules can be broken.

Radiation is invisible, and can be powerful and dangerous, in both good and bad ways.

When radiation is absorbed by your body, there is a chance it can break the bonds of DNA in one of your cells.  When DNA repairs itself, sometimes errors are introduced.  If enough errors of certain kinds accumulate, cancer can result.

Radiation is found everywhere in nature.  No matter where you go, you cannot escape it.  We ourselves are radioactive, due to natural potassium isotopes.  Nearly every rock has some trace amount of uranium, thorium, and releases some amount of radon gas.  And sources we make can be more radioactive.

A Geiger counter is a tool to help you measure the level of radioactivity; the rate at which it is being emitted.  This is done by counting how many radioactive particles it detects over a period of time.

This is Geiger Bot's main purpose.


Geiger Bot is normally quite accurate, but this cannot be guaranteed, especially when using the microphone which is subject to noise interference.  Verify the proper operation of your equipment and the correct Geiger Bot settings before use.  At background levels, with a microphone you should see 98%+ accuracy.  Line input should see 99.9%+ accuracy if configured correctly.

Many Geiger counters have a maximum audio count rate of about 1200 CPM.  Do not assume your unit's audio output count rate is the true count rate without evidence.  It may not be.

For most Geiger counters, you will need to enter a sensor noise offset or the background level will be about 50% higher than its actual value which can cause problems when comparing data to calibrated scintillation counters.

I would also recommend an aluminum shield for stopping beta radiation, as applying gamma sensitivities to beta radiation shows a misleadingly high dose equivalent rate.  (does not apply if you want to detect beta radiation)

Limits: Count Rate

 Operating Mode
Max Rate
 Reference: Background
 60 CPM
 SBM-20 GM tube
 Default Settings
 3000 CPM
 Safe for most devices and mic input, well above background levels
 Echo Filter Enabled
 600 CPM
 For use w/ Clickify.  Effectively restricts measurement to background levels.
 Ultrafast Rates / Manual Settings
 330000 CPM
 Auto-Adjust mode's defaults can also be set, "program auto" style
 Scintillation Counter Mode On
 660000 CPM
 Can be used with Geiger counters as well, but requires manual config.


 Configuration iOS Ver
 Input Type
 Sensor CPURAM
 6.0+ Microphone PIN photodiode
 Recommended Minimum
 7.0+ Line Input
 GM Tube, SBM-20 or better
 Dual Core
512 MB+
 Latest Line Input
 1x1"+ NaI Scintillation Probe
64-bit Dual Core
1024 MB