bGeigieNano is a kit version of the bGeigie mobile survey geiger counter designed to fit into a Pelican Micro Case 1010.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.dep Fix SDcard reading (Ray) Jun 2, 2018
SD card Config and Safecast parameters chnage May 2, 2013
assembly Update top NanoFrame for new PCB Apr 22, 2013
hardware Added newer board files and labled hex and zip of the Mac upload appl… Jun 7, 2018
lasercut files Added editable CS6 files May 24, 2017
libraries remove .DS_Store Nov 5, 2013
nano manual named pics Add files via upload Sep 19, 2018
sample Revert "V1.2.3" May 9, 2013
.gitignore Cleaned up May 28, 2018
HardwareCounter.cpp Add HardwareCounter support and new pin assignments Jul 10, 2012
InterruptCounter.cpp Initial version 0.1 Jun 5, 2012
InterruptCounter.h Initial version 0.1 Jun 5, 2012
Makefile HEX for 1.3.2 Nov 13, 2013
NanoConfig.h Display fix for not logging mode small display Aug 3, 2018
NanoDebug.h Small code cleanup (remove unnecessary code) Oct 4, 2012
NanoSetup.cpp Fix SDcard reading (Ray) Jun 2, 2018
NanoSetup.h Add sensor type/shield/mode definitions Oct 11, 2012 update licenses. Aug 24, 2017
TinyGPS.h Add GPS new status() Jul 20, 2012
bGeigieNano.hex Display fix for not logging mode small display Aug 3, 2018
bGeigieNano.ino Display fix for not logging mode small display Aug 3, 2018
bGeigieNanoV1.4.1.hex Added newer board files and labled hex and zip of the Mac upload appl… Jun 7, 2018 Added newer board files and labled hex and zip of the Mac upload appl… Jun 7, 2018
bGeigieNano_V1.4.2 rob and Display fix for not logging mode small display Aug 3, 2018 Added files Aug 2, 2018

Welcome to bGeigie Nano Kit project

Main bGeigie Nano page
Assembly and Operations Manual can be found on the Wiki

The Safecast bGeigie Nano is a mobile, GPS enabled, logging, radiation sensor. It is designed for mounting on the outside of a car window but can be used on bicycles, trains, planes, and other modes of transportation.

It can also be used for taking static readings and contamination findings. In logging mode, the Nano takes a measurement every 5 seconds and logs the time and location coordinates.


This work would not exist without the original development by [bidouilles] ( and contributions of other [safecast] ( developers.


Build process

(Needs compiler for example Crosspack-AVR on Mac)

Using the Makefile

export ARDUINODIR=/home/geigie/arduino-1.0.1/
export SERIALDEV=/dev/ttyUSB0
export BOARD=fio
cp -r libraries /home/geigie/arduino-1.0.1/
make upload

Using the prebuilt image

You can use directly the prebuilt image to flash the Arduino Fio. Here is an example with Arduino Fio connected to ttyUSB0:

/usr/bin/avrdude -DV -p atmega328p -P /dev/ttyUSB0 -c arduino -b 57600 -U flash:w:bGeigieNano.hex:i

Or Windows Users can download a small program called Xloader ( and can directly flash a HEX file to the bGiegieNano (assuming you have a FDTI connection. Can be bought at many places like Adafruit, Seeedstudio, Switch-science etc. Download and installed X-loader. Do not use the USB charging port on the Nano, but the 6 pin FTDI connector on the edge of the CPU board. Purchase a FTDI breakout adapter.

When you plug this little FTDI breakout board onto the 6 pin header and then plug in via a usb cable into your computer, the Nano will power up by itself (even though the power switch is off). Be careful here as you can plug it in upside down, so match the pins on the FTDI board with the pins on the cpu module.

Monitor the device manager com ports to see the device appear and what com # Windows assigned to the device.

Then Run X-loader, select com port, browse to HEX file, and I selected in the drop down Duemilanove/nano(ATmega328) device. Leave the baud rate at 57600 and hit upload. When it is done, the Nano rebooted/restarted all by itself and is running the new code. Remove the FTDI board and usb cable to computer, and the Nano will power off.


Pins assignment

Power consumption

  • Fio: 0.045mA sleep, 6mA at run time
  • OpenLog: 2mA idle, 6mA at maximum recording rate
  • Adafruit Ultimate GPS: 25mA acquisition, 20mA tracking
  • Monochrome OLED 128x32 0.91": 4mA 50% turn-on, 7.8mA 100% turn-on


The total current used at run time can be estimated around 36mA (= 6+6+20+4) per second which will result in a consumption of 0.01mAh (= 36mA/3600). So the total log duration if using a battery of 1300mAh will be (1300/.01)/3600 = 36.11 = 36h06m

Summary table

Battery capacity (mAh) Estimated log duration (days hh:mm)
1300 1d 12:06
2600 3d 00:13
6600 7d 15:19


Once powered on the bGeigieNano will initiliaze a new log file on the SD card, setup the GPS and start counting the CPM.

Sample log

# format=1.0.0nano


OpenLog config

The OpenLog should start listening at 9600bps and in Command mode. Here is the content of the CONFIG.TXT file you have to create on the microSD card:


SoftwareSerial update

To make sure all of the NMEA sentences can be received correctly, we will need to update the _SS_MAX_RX_BUFF definition from arduino-1.0.1/libraries/SoftwareSerial/SoftwareSerial.h header file. Here is the modification:

//#define _SS_MAX_RX_BUFF 64 // RX buffer size -- Old Value is 64
#define _SS_MAX_RX_BUFF 128 // RX buffer size for TinyGPS


Licenses for this repository can be found at here