Logging Shield Kit

Please Note: The Logging Shield kit has been closed out and is no longer be sold.

This is because the GK-Plus kit provides the same (and more) functionality as GK-B5 + Logging Shield at a similar cost.

This kit requires soldering of some surface mount components and is considered a kit for experienced builders. (In some cases I will solder on the SMD parts on request.) There are also some configuration parameters that are set in code. If you want to change these, you must be familiar with how to upload a new sketch to the chip using Arduino IDE. You must set one of these parameters if you plan to use the GPS.

Kits are available for purchase on the "Buy the Kit" page.

What it was:

Simply put, the "Geiger Shield" is a daughterboard that plugs into the Geiger Kit that provides additional functionality. It's main goal is to provide logging. You can get an idea of what it does from the videos below. I have also posted my final build on the Galery Page (near the bottom).

What's needed to use the it:

In order to use the Geiger Shield you will need:

  • any version of the Geiger Kit
  • Since the Geiger Shield requires different software than the default, you will either need an FTDI cable or board to load the new sketch, or you can get the kit with a pre-loaded ATmega328 ( order GS-B) and swap out the chips. You will need an FTDI cable to turn on the GPS ability in any case however.
  • a 2x16 LCD display (the contrast pot is already on the board) - you can order one with your kit if you like.
  • an IR remote. This can be the NEC mini-remote now supplied with the GK-B5 kit or Sony or Philips remote. See the Build Instructions for details.
  • a microSD card – Tested with 2GB and 8GB (SDHC) cards. (2GB will hold a huge amount of logs.)
  • (optionally) a GPS module. You must set #defines, and be able to recompile and reload the program to use the GPS.

GPS Modules Supported:

If you want to add a GPS to the shield it's best to get one that is known to work (unless you don't mind doing the programming to get it to work). Even though the NMEA output of GPS modules is standardized, the commands that need to be sent to the module vary from one manufacturer to another. I can only support GPS modules that I have on hand. If you want to get xyz module running, and it's not listed below, you are on your own.

Here is a list of GPS modules that are known to work or reported to work with the current software. There is more information for the GPS in the Build Instructions.

  • The EM-406A (some sources here and here and here). This was the original GPS I tested with, now I am using the Adafruit Ultimate GPS.
  • Customers have reported this EM-411 and the PMB-648 also work without code changes.
  • The Adafruit's Ultimate GPS Breakout. (MTK3339) It's features, performance, and low cost makes it highly recommended.
  • The Skytraq ST22 - Not recommended - the price of better GPS modules has come down recently. A fix takes ~25 min.!

Other GPS modules may work, but many will require you to make code changes.

What it does:


This is what the Geiger Shield provides in terms of hardware:

  • a header to plug in the LCD
  • a "GPIO" chip to drive the LCD with I2C instead of parallel. (this saves I/O pins on the Atmega328)
  • a header for the GPS module - using a GPS is only an option
  • a real time clock (DS1307) and backup battery. This is also I2C, and keeps the time and date if not using the GPS.
  • a MicroSD card slot to hold the log files - a 3.3V regulator and buffer IC make it compatible with the 5V system.
  • an IR Receiver so a TV remote can be use for input to the menu options (see below)
  • a set of 4 dip switches used for various purposes
  • all I/O pins on the main board are broken out on the daughter board
  • a little breadboard area is also provided

The V4 PCB . . .


(Note: The most current information on the stuff below will be found in your Build Instructions.)

Shield kits with a processor are shipped with the "optiboot" bootloader installed. This means that they are recognized by the Arduino IDE as an "Arduino Uno".

To support the new hardware, a new sketch is needed. Nothing will display unless the new sketch is loaded! If you got the shield kit that comes with the pre-programmed ATmega328 (GS-B) you simply swap out the original chip with the one with the yellow dot. If not, you will have to download the shield sketch to the original chip.The current source code is available in the Downloads section at the bottom of this page.

There is not enough memory in the ATmega328 to support both GPS and non-GPS logging at the same time. Note that when a GPS is used, the time and date (in UTC) comes from the GPS output. When it is not used, a real time clock chip must provide it (along with the menu options to set the date-time). The solution to the memory problem was to use "precompiler statements" (#defines) so that only the functions being used will take up memory. All this means that without changing anything, the software will default to the non-GPS mode, and it will use the real time clock chip. For those who want to use the GPS, one line of code is changed and the program is reloaded to the chip.

To make the hardware for navigation as simple as possible, an IR receiver is used so that navigation is done with a universal TV remote rather than adding a set of buttons to the board. The menus selections somewhat different between the GPS and non-GPS modes.

Initially, many of the options are set to defaults. The settings made are stored in EEPROM on the ATmega328, so they are retained after power off. Here is a brief description of each menu option: (A more up to date version may be provided in the Build Instructions.)

  • SEC DISP PERIOD is the number of seconds before the display refreshes. 5 seconds is a good setting.
  • Display counts are based on a "running average" I do not recommend settings of less than 5 seconds.
  • DOSE MODE ON / OFF Use the arrow keys to toggle. Dose Mode shows the running average of CPM & uSv/h on an alternate display that comes up after 4 display periods have passed. It can also be activated by closing DIP switch #1 on the board, or by setting this to “on”.
  • MIN LOGGING is when to write the log data to the MicroSD card (in minutes). Zero means logging is turned off.
  • (Since the setting is in minutes, logged results will not be subject to rounding errors.)
  • CPM->uSv RATIO is ratio for the type of GM tube used. 175 is the default for the SBM-20 and 100 is for the LDN 712.
  • ALARM > CPM when the CPM is greater than this value, pin 15 goes high (+5V) what you do with it is up to you. Caution! If you exceed 40mA. You can burn out the pin. You can trigger a transistor if you need more than that. You can also get a piezo with a built in oscillator such as this one (no transistor needed). Pin 15 will go back to low (Gnd) when the CPM drops back under the alarm threshold.
  • Date and Time (non-GPS mode only) Without the GPS, you need to set the date and time. There are separate menu options for DAY, MONTH, YEAR (YY), HOURS (24), and MINUTES + SET. Only after minutes are set, will the time clock be set. After setting you should see the correct date and time on the second line of the display when you leave the menu system. The date-time is backed up by the battery on the daughter board so it will stick. Note that there is a compile option to automatically adjust for the US version of daylight savings time. There are also several other compile options to set the format of the date and time. By default, the format is DDMMYY 24Hr, but MMDDYY, YYMMDD, AM/PM can also be set. See the beginning of the sketch for these options.
  • ZONE (>12= +) (GPS mode only) When using the GPS, you need to set your time zone because the GPS provides time in UTC format. The time zone can be anything between -12 and +12, but avoid the complexities of entering negative numbers, values between 0 and 12 are considered negative, and above 12, positive. So if your zone is +5 you would set 17. Note: you must restart to have the new zone setting take effect.
  • Note - more menus options may have added in later versions of the software.

I'm sure there might be good suggestions for additional options. Some might be able to be added, but understand that memory is already very close to the bitter edge.

Using the 4 DIP Switches:

All four switches are used by the default sketch however some #defines can be set to your the switch for your purposes. The switches are all "active low" which means that they are ON when the uC sees a ground. Switches are tested at each display refresh.

DIP switch 1 - Used for Dose Mode display. As described above, it shows the running average of CPM & uSv/h on an alternate display that comes up after 4 display periods have passed. Note that Dose Mode will only begin to display once 1 minute has passed. For that switch, you can use a pushbutton so the dose display will come on only as long as the button is held, (it will display immediately when the button is pushed), or you can use a switch so that the display continuously alternates between the two displays. It can also be activated through the menu.

DIP switch 2 - Used to turn the backlight on the display on and off. This can also be done using the INFO key on the remote.

DIP switch 3 – Beginning in version 5 a manual “Log Button” can be added to the shield. When pressed, it will log whatever values are on the display to the SD card. If a GPS is used, the coordinates will also be logged. This is handy for marking hot spots when surveying. Note that the logged entry will include "**" to show it was a manual entry. To use this feature simply connect a push button between ground and I/O pin 6. (This ability is optional and can be turned off by setting “#define LOG_BUTTON” to false – in this case the switch may be used for something else. However most will want to use it.)

DIP switch 4 – Beginning in version 7 this switch is used for power saving mode. When ON power is removed from the LCD, backlight, piezo (with board mod), and IR. (This ability is optional and can be turned off by setting “#define L_ MODE” to false – in this case the switch may be used for something else.)

Building and using it / Downloads:

  • Instructions for building and using the kit, along with the schematic are provided can be downloaded . . .
    • Here for the V5 PCB
    • Here for the V4 PCB (practically identical to the V5 board above)
    • Older versions of the Build Instructions found on he Archive page.
  • Source Code (Arduino IDE Rel 1.0.x is required) . . .
    • Here for v10
    • Support for the NEC mini-remote (now included in the GK-B5 kit). Sony and Philips remotes are still supported by using a #define.
  • If you are going to compile and load a sketch, you will also need a set of libraries. I have created a zip file of of the libraries you will need. You can download it here or from the Software page.
  • If you are new to installing sketches and libraries, you can download detailed instructions here.
  • If you want to set the time and other parameters using the serial monitor instead of the TV Remote, you can run a "setup" sketch you can get here. Just unzip it to your Sketchbook, uploaded it, start you serial monitor (9600 baud) and follow the prompts. (nothing displays on the shield)
  • Older versions of the software are found on he Archive page.

Note: There are three SMD (surface mount) parts - IC1 & IC2 and the MicroSD card socket (left), which is probably the most challenging. These are not super fine pitch components, but soldering SMD uses a little different technique. There are lots of tutorials on this subject on the web (http://www.sparkfun.com/tutorials/36 is a good one). If the picture on the left doesn't scare you, you're good to go. :-) Personally, I've found that a flux pen (water soluble) makes the solder flow nicely, and avoids bridging. The assembly instructions also provide a few tips.

I suggest you power the kit with either 3 alkaline or 4 NiMH batteries, or a 5V power cube. The max current for the regulator is only 100ma, and with a GPS and an microSD card this can be exceeded.