Download
FREE

Link valid for 24h • Max 3 downloads

GEIGER COUNTER RadiationD V1-1 with Arduino Nano & SH1106 OLED

     

Overview

This project is a compact radiation monitor built around an Arduino Nano, a Geiger–Müller tube detector module (RadiationD-v1.1 / CAJOE) and a 1.3" SH1106 OLED display.

The system measures radiation pulses from the Geiger module and calculates:

  • • Instant radiation dose rate (µSv/h)
  • • Counts per minute (CPM)
  • • Integrated radiation dose (µSv)
  • • 60-second activity graph

The device includes a menu system, alarm buzzer, snooze function, battery indicator, and several stability protections (Watchdog Timer + I²C timeout recovery) for reliable field operation.

The firmware is designed to run continuously and recover automatically from communication errors or rare MCU lockups.

Key Features

  • Real-time µSv/h radiation dose rate
  • CPM (counts per minute) calculation using a rolling 60-second window
  • Total integrated dose measurement
  • 60-second activity graph
  • Adjustable alarm threshold
  • Buzzer alarm with snooze
  • Battery level indicator
  • Menu system for configuration
  • Factory reset option
  • EEPROM stored settings
  • Watchdog auto-recovery
  • I2C timeout protection

Hardware Components

ComponentDescription
Arduino NanoMain microcontroller (ATmega328P)
Geiger Counter ModuleCAJOE / RadiationD-v1.1 with M4011 or J305 tube
OLED Display1.3" SH1106 128×64 I2C
Active Buzzer5V active buzzer
Push Buttons × tactile buttons (MENU / UP / DOWN)
Li-Ion Battery3.7V cell
Step-Up Converter3.7V → 5V boost converter
Voltage Divider470k + 150k for battery measurement
Capacitors (recommended)100nF + 10µF near OLED


Wiring / Connection Table

DevicePinArduino Nano
Geiger ModuleVCC5V
Geiger ModuleGNDGND
Geiger ModulePulse Output (Click)D2 (INT0)
OLED DisplayVCC5V
OLED DisplayGNDGND
OLED DisplaySDAA4 (SDA)
OLED DisplaySCLA5 (SCL)
Buzzer+D6
BuzzerGND
MENU Buttonone sideD3
MENU Buttonother sideGND
UP Buttonone sideD4
UP Buttonother sideGND
DOWN Buttonone sideD7
DOWN Buttonother sideGND
Battery DividermidpointA7
Battery DividertopBattery +
Battery DividerbottomGND

Buttons are configured using INPUT_PULLUP, so they connect to GND when pressed.

Alarm Snooze

When the alarm is active:
Press UP + DOWN simultaneously
→ Alarm is muted for 30 seconds

Menu Structure

  • K Mode
  • Custom K
  • Alarm
  • Sound
  • Reset Fac. Default
  • Exit

Settings are stored in EEPROM.



Radiation Calculation

Radiation dose rate is calculated from the pulse count using calibration constants.

Two predefined calibration modes are available:
ModeConversion
K10.00332 µSv/h per CPM
K20.00812 µSv/h per CPM

A custom calibration constant can also be configured.

System Reliability Features

To ensure long-term stable operation:

Watchdog Timer

The firmware uses the AVR Watchdog Timer (2 seconds) to automatically reset the system if the firmware locks up.

I2C Timeout Recovery

Wire.setWireTimeout(25000, true);

This prevents the OLED display from freezing due to I²C bus lockups.

Reduced I²C Speed

u8g2.setBusClock(100000L);

Improves reliability with SH1106 displays.

Power System

Recommended power setup:

3.7V Li-Ion Battery
        ↓
Boost Converter (5V)
        ↓
Arduino Nano + OLED + Geiger Module

Battery voltage is monitored via A7 using a resistor divider.

Typical Background Radiation

Typical environmental background radiation:

0.05 – 0.20 µSv/h