Batteriebetriebener Funk-Geigerzähler

Dies ist einer von mehreren selbst gebauten drahtlosen Geigerzählern, die zusammen eines Tages ein kleines mobiles Messnetz bilden sollen. Ich möchte ein Messsystem bauen, das empfindlich genug ist, um den Wettereinfluss auf die Gamma-Ortsdosisleistung deutlich sichtbar zu machen.

Ich kann gar nicht genau sagen, wieso Geigerzähler mich so begeistern. Vielleicht weil sie zwei meiner Interessen miteinander verbinden: Elektronik und Teilchenphysik. Vor einigen Jahren bastelte ich einen Geigerzähler (Bausatz von mightyohm.com) an die Dachrinne, brachte ihm 1-wire bei und verband ihn mit meiner Homepage (siehe blinkendes ☢ im Menü oben rechts). Dieser Geigerzähler enthält ein einzelnes Geiger-Müller-Zählrohr mit einem Volumen von etwa 7.14 cm^3. Ich verglich seine Messungen mit denen des ODL-Messnetzes, und stellte fest, dass es dort in den Aufzeichnungen Peaks gab, die mit dem Wetter korrelierten. Diese Peaks kommen zustande, wenn radioaktive Folgeprodukte des natürlich vorkommenden, radioaktiven Edelgases Radon durch Niederschläge aus der Atmosphäre ausgewaschen und am Boden deponiert werden. Dort zerfallen sie mit einer Halbwertszeit von 30 Minuten, wodurch sich der Messwert wieder dem ursprünglichen Wert asymptotisch nähert.

Diese Peaks sieht man bei mir in der Messkurve auch, aber nur schwach ausgeprägt und nur bei sehr starkem Niederschlag. Der anschließende Zerfall der Isotope lässt sich nicht einmal mehr erahnen. Mein Geigerzähler war dafür viel zu unempfindlich. Das muss man doch verbessern können...

Nun gibt es große Zählrohre, die aufgrund ihres größeren Volumens viel empfindlicher sind. Aber große Zählrohre sind teuer, und richtig große sind schwer zu bekommen. Also begann ich erst einmal damit, viele der günstigen Zählrohre zusammenzuschalten.


20 russische SBM-20 Zählrohre um ein Rundholz. Die Zählrohre werden von 6.5mm Sicherungsfedern gehalten und jede hat ihren eigenen 4.7M Anodenwiderstand. Diese Konstruktion sollte ursprünglich mal in ein Rohr passen, deshalb diese Anordnung.

Das funktionierte schon ziemlich gut. Der Versuch mit 20 SBM-20 Zählrohren registrierte etwa 16-mal so viele Zerfälle wie ein Einzelnes. Das Problem mit dieser Konstruktion ist, dass sich zum einen die Zählrohre gegenseitig abschirmen, als auch aufgrund der einfachen Schaltung (alle Rohre parallel, aber mit eigenen Anodenwiderständen) eine gemeinsame Totzeit haben, und damit Zerfälle übersehen können. Wobei die gegenseitige Abschirmung hier so stark ausgeprägt war, dass ich nicht herausfinden konnte, wie und ob der zweite Effekt überhaupt ins Gewicht fällt. Ein weiteres Problem an der Schaltung war die nicht sehr vertrauenserweckende Stromversorgung - ich schloss die Rohre nämlich einfach an meinen vorhandenen Bausatz an, und es funktionierte augenscheinlich, aber mir gefiel diese ungeregelte Schaltung nicht.

Und so entstand der Bedarf für eine komplett eigene Geigerzähler-Plattform, die - auch aufgrund weiterer geplanter Projekte - folgende Rahmenbedingungen erfüllen soll:

  • geregelte Spannungsversorgung für 400V
  • Batteriebetrieb möglich
  • möglichst lange Batterielaufzeit
  • Unterstützung für viele Zählrohre gleichzeitig
  • jedes Zählrohr soll sich unabhängig von den Anderen zählen lassen
  • Koinzidenz-Detektion soll möglich sein, d.h. ich möchte ein extrem kleines Zeitfenster definieren, in dem auslösende Zählrohre als "gleichzeitig ausgelöst" gelten können. Diese Zeit sollte deutlich kleiner sein, als die Totzeit der Zählrohre.

    Die letzten beiden Punkte spielen für das Messnetz-Projekt keine große Rolle. Sie sind schon mal vorausschauend für ein Folgeprojekt mit eingeplant. Für das Messnetz-Projekt kommt dafür noch eine weitere Anforderung hinzu, nämlich:

  • Übertragung der gesammelten Daten per Funk

Und weil das so schön vielseitig wird, nenne ich diese Plattform MacGeiger. :D

MacGeiger

MacGeigers Spannungsversorgung ist inspiriert durch einen Thread auf mikrocontroller.net. Ich habe mit diesen Schaltungen experimentiert, viel gemessen, ein paar Bauteile getauscht, und bin auf ein richtig gutes Ergebnis gekommen. Mit einem SBM20-Zählrohr als Last komme ich auf eine Stromaufnahme von < 90 μA, mit 4 Zählrohren auf < 250 μA.


Einige Hochspannungs-Schaltungen für Geigerzähler im Netz bauen große Kondensatoren auf Hochspannungsseite ein. Seid da vorsichtig, denn je größer die Kondensatoren, desto länger der Stromschlag, den ihr bekommt, wenn ihr das mal falsch anfasst.

Die Impulsausgänge (active-low) der Kathodenschaltungen der Zählrohre sind an Schieberegister angeschlossen. Je nachdem, wie viele Zählrohre man unterstützen möchte, kaskadiert man einfach mehrere Register. Zusätzlich hängen alle Impulsausgänge über eine logische NAND-Schaltung gemeinsam an einer externen Interrupt-Leitung des μC. Löst ein beliebiges Zählrohr einen Impuls aus, so schaltet der Interrupt-Handler den LOAD/SHIFT Eingang der Schieberegister, so dass der augenblickliche Zustand in die Register-Flipflops übertragen wird, und liest anschließend die Register seriell aus. Der μC verwendet dafür vorhandene SPI bzw. USI Hardware, um die Register möglichst flott auszulesen. Innerhalb der Totzeit von ca. 190 μs schafft er hier leicht 24 Röhren bei 2 MHz Systemtakt. Die LOAD/SHIFT-Umschaltung im Interrupthandler ist der Trick für die Koinzidenz-Detektion. Das Zeitfenster ist umso kürzer, je früher man die Umschaltung im Interrupt-Handler macht (und skaliert dann mit dem Systemtakt).


Alles links vom Spannungsteiler muss 400V abkönnen.


Aus den Dioden und dem 10k PullUp ergibt sich ein logisches NAND für den Ausgang zu INT0. Die PULSE-Leitungen sind active-low, möchte man den Interrupt immer auslösen, wenn mindestens eine Pulse-Leitung nach low zieht.

Als Mikrocontroller kommt der ATTINY2313A zum Einsatz, weil ich finde, dass er sich gut für den Batteriebetrieb eignet. Was die Funkschnittstelle angeht, habe ich ein wenig recherchiert, und heraus kam, dass alles mit WLAN oder Bluetooth zu viel Strom braucht. Würde ich das tolerieren, dann hätte ich mich bei der Spannungsregelung gar nicht so bemühen müssen. Also kommuniziere ich verbindungslos mit dem Klassiker, dem RFM12B von HopeRF im ISM-Band auf 433 MHz.


Der ATTINY läuft nur auf 2 MHz, um Strom zu sparen. Die meiste Zeit schläft er in einem Modus, in dem der Quarz weiter schwingt. Die externen Interrupts sind beide als Level-Interrupts konfiguriert, und im Fall von INT0 sorgt die Software dafür, dass er nicht mehrfach auslöst.

So viel zur Idee, hier kommt nun das erste Teil zum Anfassen:

Batteriebetriebene Gamma-Sonde

Um das Problem mit der gegenseitigen Abschirmung zu lösen, verteile ich die Röhren auf mehrere Stationen, die dann in regelmäßigen Intervallen per Funk bei einer Basisstation ihre Werte abliefern. Die einzelnen Stationen sollen witterungsbeständig und batteriebetrieben sein, und die Batterien sollen zwecks der angestrebten Wartungsfreiheit möglichst lange durchhalten. Ich entschied mich für 4 Röhren pro Station.

Die Stromaufnahme der gesamten Schaltung inkl. Mikrokontroller und der 4 Röhren beträgt ca. 250 μA bei normaler Hintergrundstrahlung, wenn es gerade nichts sendet. Der μC befindet sich dabei die meiste Zeit im SLEEP_MODE_STANDBY Modus, und wird nur durch Impulse von den Zählrohren (auf INT0) oder Interrupts vom Transceiver (auf INT1) geweckt. Brownout-Detektion vom μC ist abgeschaltet - der programmierbare Brownout-Detektor vom RFM12b überwacht durch einen Kniff die Systemspannung, und überträgt sie mit den Daten zur Basis.

Was die Stromversorgung angeht, habe ich in verschiedene Richtungen überlegt. Eine Idee auf dem Weg waren auch Akkus + Solarzellen oder SuperCap-Kondensatoren + Solarzellen, aber am Ende gewannen dann doch die AA-Batterien, denn mein Stromverbrauch ist so niedrig, dass Akkus durch die täglichen Zyklen in etwa genau so schnell kaputt gehen, wie ich Batterien wechseln müsste, und für Kondensatoren ist mein Verbrauch doch knapp zu hoch.

Mit einem Satz Lithium-AA Batterien, wie z.B. den Energizer Ultimate, sollte die Schaltung ein gutes Jahr lang am Stück funktionieren. Der Test steht natürlich noch aus. :-)

Als Gehäuse bestellte ich mir ein hübsches Aluminium-Profilgehäuse, das sich dann als doch herausfordernd kompakt herausstellte. Ich bekam da gerade noch so alles dort hinein.

Die Schaltung ist übrigens deshalb von Hand gemacht, weil ich nicht Willens war, mich in meiner Freizeit mit Software herumzuärgern1. Das ist das schöne an Hobbykellerprojekten - niemand vermisst die Vernunft. :)

Falls es doch jemand selber nachbauen will, hier ein paar Foto (mehr Plan existiert nicht):

Der Transceiver übermittelt alle 30 Sekunden ein Daten-Frame:

typedef struct {
    uint8_t node_id;
    uint32_t msg_id;
    uint32_t count[4];
    uint8_t battery;
    uint16_t crc;
} t_frame;

Je nachdem, wie viel Package-loss ich im praktischen Einsatz zu erwarten habe - Versuche dazu stehen noch aus - möchte ich dieses Intervall vielleicht bis auf 5 Minuten verlängern, um Batterie zu sparen. Ob ich die Zählstände der Rohre tatsächlich einzeln erfassen möchte, oder mir die zusätzlichen 12 Byte zugunsten der Framelänge besser spare, weiß ich noch nicht. Zum Testen taugt es jedenfalls so, weil ich durch die Einzelzählung Fehler an den Zählrohren statistisch entdecken kann.

So sieht das beim Empfang aus:

Der improvisierte Empfänger schreibt aktuell einfach den Frame auf seiner UART raus, und guckt noch, ob die CRC16 über das Paket stimmt, und ob Pakete verloren gegangen sind. Der Batterie-Indikator in der 7. Spalte gibt die Batterie-Spannung in 0.1V Schritten an, beginnend mit 2.25V. "8" steht also für 2.25V + (8 * 0.1) = 3.05V. Man sieht, dass die Spannung zwischen Paket Nummer 5 und Paket Nummer 6 mal auf 2.85V eingebrochen ist. Da der Batterie-Indikator sich aktuell den niedrigsten je gemessenen Wert merkt, bleibt die Ausgabe nach einer Spannungsschwankung auf dem niedrigen Wert stehen. Ein zusätzlicher Puffer-Konsensator und vielleicht ein Softwareupdate dürften dieses Problem wohl beheben.

Ansonsten bin ich mit den ersten Tests sehr zufrieden. Mal sehen, wie es sich in einem längeren Test und bei verschiedener Witterung schlägt. Wenn alles gut läuft, bau' ich noch ein paar mehr davon.

Hier noch ein bisschen Making-of und ein Gameboy (for scale).