GeigerLog's new Tasmota Geiger Counter

Begonnen von ullix, 11. Dezember 2025, 15:11

⏪ vorheriges - nächstes ⏩

ullix

Tasmota ist ein Open-Source Betriebssystem für die ESP32 Mikroprozessoren (Espressif Systems, China). Es ist weit verbreitet; derzeit in 2836 verschiedenen, kommerziell vertriebenen Geräten. Diese reichen von smarten Netzschaltern, über Lichtorgeln, Aromatiseure, zu Gassensoren, I2C Geräten, und mehr. Ich habe jetzt noch potentiell einen Geiger Counter hinzugefügt, den es in der Liste noch nicht gibt.

Man braucht dazu eine beliebige der mehr als ein Dutzend Varianten von ESP32, die es ,,für eine Handvoll Dollar" gibt. Nachdem man Tasmota aufgespielt hat, geht alle weitere Kommunikation via WiFi, einfach und schnell, wenn auch nur auf 2.4 GHz.

Zum Zählen braucht man nur einen Pin der ESP32 als ,,Counter" zu definieren, und schon geht's los. Ok, die Geiger Hardware braucht man auch noch, also Tube, Hochspannung, und Puls Schaltung, die aus jedem radioaktiven Treffer einen Logik-Pulse von 3.3V macht. Diesen Puls legt man auf den gerade definierten Pin des ESP32, und schon sieht man im Browser (Firefox, Chrome, ...) die Zählung. Aber ein bisschen mehr CPS und CPM hätten wir ja schon gerne.

Da trifft es sich, dass Tasmota auf der ESP32 die Programmiersprache Berry unterstützt, die genau für Embedded Systeme (also Microchips) entwickelt wurde. Sie ähnelt Python sehr, und ist ebenfalls interpretierend. Und saumäßig mächtig! Mein ganzer Counter Code benötigt bisher deutlich weniger als 100 Zeilen! Das ist gerdezu erschreckend wenig ;-). Natürlich brauchte auch GeigerLog Ergänzungen, aber auch die waren nur mäßig aufwändig.

Auf seinem eingebauten Flash Speicher kann die ESP32 Daten dauerhaft speichern. Typisch sind 4MB, reicht aber von 0 MB und – ,,für ein paar Dollar mehr" – bis zu 32MB. Das ist das 16fache dessen, was die GQ Konkurrenz zu bieten hat!

Damit kann ich CPS im Sekundentakt ohne Überlauf bis zu 1 Jahr(!) lang speichern; CPM, im Minutentakt, bis zu 20 Jahre!

Wer über den Speicher seines Counters noch begeistert war, wird erschrocken sein, sobald er einen History Download über die 115 kBaud USB-To-Serial Schnittstelle gestartet hatte. Das zieht sich über Minuten. Dagegen ist WiFi die wahre Wonne mit gut der 20fachen Geschwindigkeit:

Download Speed:
GMC-300S Re 1.03       :   6.6 kbytes/sec,  1.0x
GMC-800 Re1.18         :   9.9 kbytes/sec,  1.5x
Tasmota Geiger Counter : 175.0 kbytes/sec, 26.5x

Mein Entwicklungssystem besteht aus einer ESPRESSIF ESP32-WROOM-32E mit 8MB Flash; Strom per USB Kabel. Das Geiger Teil ist mein ,,Ukraine Counter" (Ggreg20_V3)  mit SBM20. Stromversorgung über den 5V Output des ESP32 boards. Zu sehen auf dem ersten Bild.

Sie dürfen in diesem Board keine Dateianhänge sehen.Sie dürfen in diesem Board keine Dateianhänge sehen.Sie dürfen in diesem Board keine Dateianhänge sehen. Sie dürfen in diesem Board keine Dateianhänge sehen.

Bild 2 zeigt Tasmota's eigene, typische Webseite. Bild 3 ein CPS Recording in GeigerLog, und der Poisson Test in Bild 4 bestätigt ein gutes Ergebnis.

Wer hier beitragen möchte – Herzlich Willkommen! An GeigerLog support wird es nicht mangeln.

DG0MG

Zitat von: ullix am 11. Dezember 2025, 15:11Auf seinem eingebauten Flash Speicher kann die ESP32 Daten dauerhaft speichern. Typisch sind 4MB

Bist Du sicher, dass das so ist?
Meine Erfahrungen mit ESP32 (vielleicht sind das ältere Varianten?) beschränken sich auf das Wissen, dass der GESAMT-Flash-Speicher des ESP32 4 MB groß ist. Für das Speichern über ein Ausschalten hinweg muss man entweder ein paar Byte des SRAM im Uhrenmodul nehmen (wenn die Spannung angelegt bleibt) oder den Daten-EEPROM, der hier mit 512 Byte(!) angegeben ist: https://randomnerdtutorials.com/esp32-flash-memory/
Oder es gibt eine Art "Partitionierung", die den GESAMT-Flash in Programm- und Datenspeicherbereich teilt.
Dann ist aber die Frage, wie groß die Tasmota-Software allein ist, zum Datenspeichern bliebe nur der verbleibende Rest.

Falls es das wirklich gibt (32 MB Daten-Flash) dann muss man bestimmt ein spezielles oder zumindest modernes Prozessormodell nehmen.
"Bling!": Irgendjemand Egales hat irgendetwas Egales getan! Schnell hingucken!

ullix

Die 4, 8, und 16 MB Module liegen neben mir; die 32 MB Module kenne ich nur aus den Produktblättern von Espressif. Im Markt habe ich keine gesehen, ich habe aber auch nicht wirklich gesucht. Bisher stimmte, was Espressif gesagt hat - warum sollte das hier anders sein?

Bei AliX habe ich mal den erstbesten Anbieter genommen, sein Angebot:
ESP32-WROOM-32U 4 MB 8 MB 16 MB :   US $3.08, US $3.32, US $3.61, plus Versand US $3.77.
Ein noch kommendes 32 MB Modul dürfte wohl in etwa in diese Reihe passen?

Ooopsie, bei der Speichergröße habe ich wohl vergessen, den Code Bedarf abzuziehen, wie peinlich 8)

Die ESP32 wird normalerweise partitioniert in 2 gleich große Code Partitionen, von, sagen wir, je 2 MB. Bei einem OTA Update (Over-The-Air, also per WiFi) läuft Part1, und updated Part2. Wenn erfolgreich, wird auf dieses neue Part2 umgeschaltet. Wenn nicht, bleibt alles unverändert. Dafür braucht man also stets 2mal den Platz für den Code.

Tasmota hat jetzt einen sehr cleveren Trick gemacht, und die für OTA benötigte Partition auf <1 MB geschrumpft, und dafür die Code Partition um 1MB vergrößert, also auf 3 MB. Das ist stattlich! Derzeit belegt Tasmota 2.1 MB, da ist also Luft drin. 

Tasmota nimmt sich somit 4 MB und verwendet die restlichen 8, bzw 12 MB als Filesystem, auf dem der Nutzer wie gewohnt Daten speichern kann. Bei den 4MB Modulen verzichtet es sogar auf 0.3 MB, und gibt diese als Filesystem frei.

Auf allen 3 Größen habe ich jetzt den "Tasmota Geiger" installiert und getestet. Läuft auf allen auf gleiche Weise. Die gemeldeten Größen der Filesysteme sind: # Flash Ufs (Universal File System) Size: 0.320 MB, 4.416 MB, 12.608 MB

Für das 16 MB Modul ergibt sich jetzt eine CPS Speicherung von ca 3 Monaten, und CPM von ca. 8 Jahren. Das kann man auch mischen. Reicht trotzdem nicht? Dann gibt es die Option für SD-Karten. Da machen wir gleich einen Sprung von MegaByte auf GigaByte. Kaum sinnvoll, aber möglich!
 

ullix

AliBaba verkauft eine ESP32 mit 64MB, für $3.80  ;D Bei Mindestabnahme 50 Stück  :(
https://german.alibaba.com/product-detail/original-ESP32-WROOM-32E-ble-64Mb-1601111887587.html

Noch scheint aber selbst 32MB bei Tasmota noch nicht unterstützt, wie ich einigen Foren entnommen habe.

Derweil bereitet sich Espressif auf 128 MB vor:
Sie dürfen in diesem Board keine Dateianhänge sehen.
https://docs.espressif.com/projects/esptool/en/latest/esp32s3/esptool/flash-modes.html

ullix

Tasmota hat noch ein kleines Schmankerl im Angebot, was die Einrichtung der ESP32 nochmals einfacher macht: Man muss nur eine APP hochladen, und gut ist!

Hat man erstmal generisches Tasmota auf seine ESP32 aufgespielt, kann man im Browser aufrufen: Tools --> Manage File System (linkes Bild):
Sie dürfen in diesem Board keine Dateianhänge sehen. Sie dürfen in diesem Board keine Dateianhänge sehen.

Ein Klick auf 'Browse' läßt einen die TAPP (Tasmota-App) von seinem Rechner auf die ESP32 laden. Dann zurück ins Hauptmenü (rechtes Bild) und  "Restart" klicken, und es läuft.

Die TAPP ist hier "geiger.tapp", die Teil des GeigerLog Paketes ist (im Folder "Tasmota").

Die Software ist fertig. Mit der Hardware tue ich mich schwerer. Hier ist jeder eingeladen, zu "klauen" - und ich helfe sogar dabei !




ullix

Den Tasmota Geiger Counter mit aktuellem GeigerLog habe ich soeben als pre-release GeigerLog Version 2.2pre01 online gestellt.
https://sourceforge.net/p/geigerlog/discussion/devel2/thread/3519d9f810/

ullix

Der Tasmota Code in GeigerLog entwickelt sich. Sogar für die Beseitigung von Tasmota Bugs konnte ich beitragen. Inzwischen kann ich auch I2C Sensoren einbinden. Dank der Programmiersprache Berry für Mikrochips fast ein Kinderspiel. Wer an Programmierung von Mikrochips interessiert ist, sollte unbedingt einen Blick auf Berry werfen!

In GeigerLog jetzt auch via Tasmota verfügbar sind die I2C Sensoren LM75B (Temperatur), BME280 (Temperatur, Luftdruck, Feuchtigkeit), BH1750 (Intensität sichtbares Licht). Und ganz neu: der "Geigerzähler" GDK101.

In Anführungszeichen, weil es ja gar keine Geiger-Röhre hat. Es basiert auf der Strahlungsempfindlichkeit von quasi Solarzellen, genauer gesagt von Pin-Dioden. Zwei Reviews habe ich dazu gemacht: Pin-Dioden Counter,  sowie Smart Geiger Pro

Der Vorteil ist, dass keine Hochspannung benötigt wird, der Nachteil dass die Empfindlickeit nur ca. ein Zehntel der Standard Glasröhren ist. Für Langzeitmessungen - z.B. in der private Wetterstation, vielleicht gar neben einem BME280 I2C Sensor - sollte es dennoch gehen.

Der GDK101 Sensor liefert nur 2 Geiger Werte:
  • Rad1m: Strahlung über 1 min
  • Rad10m: Strahlung über 1 min, gemittelt über 10 min

Über die angegebene Sensitivity von 12 CPM/(µSv/h) rechne ich in CPS bzw. CPM um.

Es gibt aber ausserdem einen offiziell undokumentierten Puls Ausgang, der einen Logik-Pulse pro "Geiger"-Count liefert, und den ich jetzt an meiner Tasmota-ESP32 angeschlossen habe. Hier sind erste  Ergebnisse via GeigerLog:

Sie dürfen in diesem Board keine Dateianhänge sehen.

Linke Skala. Magenta ist CPS per Puls Ausgang gemessen; die gelb gerahmte Kurve ist dessen Moving-Average. In blau ist die GDL101 Rad1m kurve, auf CPS umgerechnet. Blau und Gelb sollten übereinstimmen, und das tun sie! Source sind übrigens Uran-haltige Perlen.

Sie dürfen in diesem Board keine Dateianhänge sehen.

Ein kurzer Poisson Test auf die CPS-Puls Daten zeigt, alles ok!

Wie schon gesagt, wer Ideen klauen und Hardware bauen möchte: Sei Willkommen, ich helfe gerne!