Chinesische Geigerzähler an Home Assistant anbinden

Mit RadPro und Home Assistant das Strahlungsniveau überwachen

Ge0rG (@ge0rg@chaos.social)

FrOSCon 2026 (15.08.2026, HS4)

Agenda

  1. Kurzvorstellung Ionisierende Strahlung

  2. Detektor-Funktionsweisen

  3. RadPro Firmware

  4. Chinesische Geigerzähler

  5. RadPro WiFi Bridge

  6. Integration in Home Assistant

Ionisierende Strahlung

Was ist das und kann es mich umbringen?

Arten von Strahlung

Ionisierende Strahlung: genug Energie, um Elektronen “freizuschlagen”

Energie zum Ionisieren

  • ab ~5 Elektronenvolt (eV): menschliches Gewebe
  • ab 12.6eV: Wasser

Arten der Strahlung

  • Helium-Kerne (Alpha / α; 10’000-20’000km/s, kinetische Energie 2-5 MeV)
  • Elektronen / Positronen (Beta / β, kinetische Energie 0-1 MeV)
  • Photonen < 250nm (Quantenenergie 0-1 MeV)
    • Kosmische Strahlung
    • Gamma (γ)
    • Röntgen
    • UV-Licht (UV-C)

Einheiten und Exposition

  • Aktivität, Bq / Becquerel - Anzahl Zerfälle pro Sekunde
  • Energiedosis, Gy / Gray - Energiemenge, die von Materie aufgenommen wird (1Gy = 1J/kg)
  • Äquivalentdosis, Sv / Sievert - Energiedosis · Strahlungs-Wichtungsfaktor ωR (α: 20; β: 5; γ: 1)
  • Dosisleistung, µSv/h - Energiedosis pro Zeiteinheit
  • (Empfindlichkeit eines Zählers, CPM/µSv/h)


Exposition

Brustkorb-Röntgen = 0.1mSv

10 Stunden Langstreckenflug = 0,12mSv

Ein Jahr überleben = 2mSv (0,2µSv/h)

CT-Untersuchung = 10mSv

Strahlungsquellen

Bananen

Kalium-Salz

Uran-Glas und -Fliesen

Radon im Keller (oder im Boden)

Radon im Keller

Radon-Taschentuch

Gilbert Atomic Energy Lab for kids

Atomic Energy Lab von Gilbert

Alles was ein Kind 1950 braucht!

  • Geiger-Müller-Zählrohr
  • Radioaktive (und giftige) Proben:
    • Polonium
    • Uranerze (Plural!)
    • Blei
    • Zink

Arten von Detektoren

CC-BY-NC-SA JamecoElectronics

Halbleiter-Zähler

  • Photodiode (PIN “positive intrinsic negative”) im dunkeln

  • (rauscharmer) Signalverstärker + ~verlängerer

  • Audio-Ausgang (PC-Soundkarte + GeigerLog)

  • Geringe Empfindlichkeit (5.9 CPM/µSv/h ➡ 1 CPM)

  • Zahlreiche DIY-Varianten (~10€):

  • Einige kommerzielle Versionen:

    • SmartLab Geiger Pro (10 PIN-Dioden ➡ ~10 CPM)

Geiger-Müller-Zählrohr

Geiger-Müller-Zählrohr (1908)

(Kompakte) Glas-Kammer mit Gasgemisch

  • Kathode am Rand, Anode in der Mitte, ~400V dazwischen
  • Jede Ionisation erzeugt vollständige Gasentladung
  • Keine Aussage über ursprüngliche Energie
  • Totzeit von 0,1ms
  • M4011/J321: 108 CPM/µSv/h ➡ 20 CPM (Vergleich #1, #2)

Kaskade von Ladungspumpen

  • Kondensatoren und Dioden
  • Fein-Tuning per PWM

CPU zum Zählen und Anzeigen

  • Messung der Impulse (Lautsprecher-“Klick”)
  • Umrechung von Impulsen zu Äquivalentdosis/Zeit

Szintillator

  • Szintillator: erzeugt (UV-)Licht aus ionisierender Strahlung (€€€)
  • Silizium-Photomultiplier (SiPM) (€€€)
  • Mikrocontroller
  • Erlaubt Messung der Strahlungsenergie
  • Empfindlichkeit ~ Szintillator-Größe
  • 1800+ CPM/µSv/h ➡ 360 CPM


Radiacode 10x (250-600€)
CC-BY-SA MyName (A1000)

RadPro Firmware

RadPro custom Geiger counter firmware

  • Aktuell / Durchschnitt / kumulierte Dosis
  • Logging und Visualisierung
  • Konfigurierbare Alarme und Signale
  • Daten-Export (USB-Seriell)
  • Zufälliger Zufall
  • 68k LoC C-Code (49k für UI)

Modell Cortex Zählrohr Installation
??? FS2011 M0 divers SWD
Bosean FS-600 M0+ divers SWD
Bosean FS-5000 M0+ divers SWD
Fnirsi GC-01 M3 M4011 USB
Fnirsi GC-03 M3 M4011 USB
GQ GMC-800 M4 M4011 WebUSB

Bedienung

Tasten-Mehrfachbelegung

Weitere Funktionen

Kalibrierung

  • Zählrohr (kann getauscht werden)
  • radioaktives Isotop
  • Einstellung PWM-Frequenz und Duty Cycle
    • Erlaubt Tuning der effektiven Spannung am Zählrohr
    • Ziel: Mitte des Geiger-Müller-Plateaus


Serielle Schnittstelle

Dokumentiertes Protokoll für Data-Logging und mehr:

GET deviceId
OK FS2011 (STM32F051C8);Rad Pro 2.0/en;b5706d937087f975b5812810

GET randomData
OK 9155facb75c00e331cf7fd625102f37a

radpro-tool.py - Anzeige, Export nach gmcmap.com, radmon.org, safecast.org, opensensemap.org

Fnirsi-Geigerzähler

  • zwei CPU-Varianten
    • CH32F (5k Messungen)
    • APM32F (72k Messungen)
  • gelb / blau 😜
  • 230x240 LCD
  • 40-60€

Fnirsi GC-03 (rechts)

  • CH32F (170k Messungen)
  • 240x320 LCD
  • Sensor für elektrisches / magnetisches Feld
  • schwarz / weiß 😜
  • 80-90€

Installation

Windows

  1. GC-0x ausschalten
  2. an den PC anschließen
  3. RadPro-Release (passendes Modell, passende Sprache) auf den USB-Speicher kopieren
  4. Reboot abwarten

Linux

Der Bootloader-USB-Emulator mag uns nicht.

  1. GC-0x ausschalten
  2. an den PC anschließen
  3. pmount sda (GVFS geht nicht so gut)
  4. cp radpro.bin /media/sda/fw.bin
  1. sync
  2. cp radpro.bin /media/sda/fw.bin
  3. sync
  4. Reboot abwarten

Fnirsi #1 (GC-03)

ALAAAAARM!
  • Es begann am zweiten Tag…
  • Anzeige 120µSv/h (600-fache Strahlung)
  • Leichte Verunsicherung der betroffenen Person 😱

  • Reklamation per E-Mail, Wiederholung
  • Eskalation zu PayPal (~1 Monat)
  • Keine Reaktion des Händlers, Erstattung durch PayPal

  • Ursache: inkorrekte Kalibrierung
  • zu hohe Spannung ➡ continuous discharge
  • Neukalibrierung in RadPro hilft

  • Kaputter Laderegler
  • Kaputtes Wahlrad

☢️⚠️ Nicht auf fnirsi.com kaufen! ⚠️☢️

Fnirsi #2 (GC-01)

😌

Hat funktioniert!

Fnirsi #3 (GC-01)

Warum klappert es so komisch?

Fnirsi #4 (GC-01, Ersatz)

  • Anomalien ab ~23°C
  • Kalibrierung hilft nicht
  • Kälte-Spray hilft nicht
  • Ursache noch unklar

Nicht-ganz-Fnirsi (Kleinanzeigen)

Will it run DOOM?

  • Genug CPU (72MHz / 96 MHz)
  • Genug Display (320x240 Farb-LCD)
  • Genug Tasten
  • 20KB / 32KB RAM 😢
  • 112KB / 232KB Flash 😭😭😭

RadPro-WiFi-Bridge

RadPro-WiFi-Bridge

SunboX/radpro-wifi-bridge

  • Firmware für ESP32-S3-DevKitC (N16R8)
    1. USB-C-Port: Logging, Stromversorgung
    1. USB-C-Port für Geigerzähler (TinyUSB)
  • RGB-LED für Status
  • GPL3 licensed
  • 12k LoC C++

Installation

  • Na toll, doch noch löten! 😜

N16R8

  • RGB - LED an GPIO
  • IN-OUT - USB D+/D- an OTG
  • USB-OTG - Stromversorgung

N16R8

  • Diode umdrehen / kurzschließen

Flashen

MQTT für Home Assistant

homeassistant/sensor/cdab454edabdecb739e339e3/bridge_version/config
    {
      "name": "Bridge Firmware Version",
      "state_topic": "stat/radpro/cdab454edabdecb739e339e3/bridgeVersion",
      "unique_id": "cdab454edabdecb739e339e3_bridge_version",
      "object_id": "radpro_bridge_version",
      "icon": "mdi:chip",
      "entity_category": "diagnostic",
      "device": {
        "identifiers": [
          "radpro-cdab454edabdecb739e339e3"
        ],
        "manufacturer": "Bosean",
        "model": "FNIRSI GC-03",
        "name": "RadPro",
        "sw_version": "Rad Pro 3.1.1"
      }
    }

MQTT-Daten

stat/radpro/d30015001100003632303156/deviceBatteryVoltage 4.139
stat/radpro/d30015001100003632303156/deviceBatteryPercent 95
stat/radpro/d30015001100003632303156/deviceTime 1786786362
stat/radpro/d30015001100003632303156/deviceTimeZone 0.0
stat/radpro/d30015001100003632303156/tubeLifetime 4643031
stat/radpro/d30015001100003632303156/tubeSensitivity 108.345
stat/radpro/d30015001100003632303156/tubeDeadTime 0.0000230
stat/radpro/d30015001100003632303156/tubeDeadTimeCompensation 0.0000000

stat/radpro/d30015001100003632303156/devicePower ON
stat/radpro/d30015001100003632303156/tubePulseCount 1547401
stat/radpro/d30015001100003632303156/tubeRate 17.765
stat/radpro/d30015001100003632303156/tubeDoseRate 0.16397

Home Assistant

Home Assistant: Entitäten

type: gauge
entity: sensor.radpro_tube_dose_rate
name: ☢️ Strahlung ☢️
unit: µSv/h
min: 0
max: 0.4
needle: false
severity:
  green: 0
  yellow: 0.3
  red: 1

Home Assistant Dashboard