DIY Gammaspektrometer mit SiPM

Begonnen von NuclearPhoenix, 23. Februar 2022, 19:47

⏪ vorheriges - nächstes ⏩

NuclearPhoenix

Zitat von: Henri am 15. Mai 2023, 17:23Ach, dann hat der Piezo KEINE Elektronik drin? Du hattest ja oben geschrieben, dass er piepst, wenn Du eine Gleichspannungsquelle anlegst?  :unknw: 
Jaja ist schon beides richtig, er piepst mit Gleichspannung und mit den PWM Pulsen :unknw:
Mir ist nur aufgefallen, dass er mit PWM viel, viel leiser ist. Das wird wohl einfach daran liegen, dass die Phase in der 3.3V anliegt ausreicht, damit die Elektronik da drinnen starten kann. Aber so ganz verstehe ich das immer noch nicht.
Das ist garantiert nicht das richtige Teil für so eine Anwendung. Ich werde mir mal einen anderen Buzzer (ohne Elektronik) besorgen und sehen wie der funktioniert. Ich denke aber mal, dass das kein großes Problem mehr sein wird. Im Zweifelsfall klingt er halt ein wenig anders. :unknw:

Ich habe die Tickerfunktion auf jeden Fall schon mal in der Firmware eingebaut und ich weiß zumindest schon von einer anderen Person, dass es gut funktioniert. In Version 3.3.0 kann man mittels "set ticker <num>" die Pulsdauer der "Ticks" in Millisekunden einstellen. Mit "0" stellt man den Ticker wieder ab. Standardmäßig hängt man den Buzzer zwischen RX und GND, man kann aber auch fast jeden anderen Pin nutzen.

EDIT: Ich habe doch noch einen Buzzer ohne Elektronik gefunden. Der funktioniert deutlich besser und mit der PWM Frequenz lässt sich auch endlich tatsächlich die Tonhöhe einstellen! :yahoo:

NuclearPhoenix

Mit Firmware 3.4.0 werden neben den bisherigen SSD1306 jetzt auch SH1106 OLED Displays unterstützt. Außerdem habe ich den Ticker ein bisschen geändert, sodass er nur mehr bei jedem 10ten Puls klickt. Damit hat man weniger ein Problem mit der Sättigung (bei 1 ms Klicks) und man wird auch nicht wahnsinning bei einer Hintergrundaktivität von größer 20 cps ;)

NuclearPhoenix

Wie schon in einem anderen Thread angekündigt wird es bald ein neues SiPM Carrier Board für die MicroFC 6mm Sensoren mit Temperaturkorrektur geben. Bevor ich das mache, will ich aber noch die letzten paar (kleinen) Software-Updates zusammenfassen. Im Allgemeinen waren das großteils Änderungen im Hintergrund die vor allem den Code effizienter gemacht haben, d.h. aufgeräumterer Code, weniger Stromverbrauch, etc. Das ist jetzt alles nicht sonderlich spektakulär, aber der Vollständigkeit halber hier rein :)

3.5.0:
  • Fast 10% Reduzierung des Stromverbrauchs (mit einem SSD1306 OLED getestet, ohne OLED wäre die prozentuelle Änderung nochmal mehr)
  • Etwas bessere Timing-Genauigkeit mit Gamma MCA: einige % weniger Standardabweichung für den cps-Wert beim Spektrum aufnehmen, da der Datensendezeitpunkt genauer eingehalten wird.
  • Die Geiger-Modus Anzeige zeigt jetzt die Einheit "kcps" an, wenn die gemessenen cps höher als 1000 sind. Das hilft bei dem begrenzten Platz am Display sehr und sollte für die meisten Anwendungsfälle ausreichen. Die Änderung war längst überfallig, aber das ganze Userinterface muss ich generell nochmal wirklich verschönern.
  • Möglicherweise besseres Verhalten bei höheren CPS (noch nicht getestet), da der erste CPU-Kern jetzt strikt nur mehr Interrupts verarbeitet. Auf dem Kern laufen keine anderen Aufgaben mehr, die verarbeitet ausschließlich Kern 2.

3.5.1:
Diese neue Version reduziert hauptsächlich nur die Codegröße und Effizienz des Arduino-Sketchs. Ich habe auch eine Statistikbibliothek gewechselt, die deutlich besser für den Anwendungszweck geeignet ist (RunningMedian auf GitHub).

NuclearPhoenix

Hier jetzt wie versprochen das neue PCB mit der Temperaturkompensation vom SiPM Verstärkungsfaktor. Die Platine ist exakt gleich groß wie der Vorgänger (18mm Durchmesser) und kann auch genauso mit 3 Kabeln mit der Detektorhauptplatine verbunden werden. Das ganze basiert auf einem NTC Thermistor und der Vorteil ist, dass der Thermistor auf derselben Platine ist, auf der auch der SiPM ist. Damit ist die Abweichung zwischen gemessener und tatsächlicher Temperatur so gering wie möglich und deshalb auch die beiden Masseflächen und die vielen Vias dazwischen. Die Größe der Lötpads hat sich ebenfalls nicht verändert. :good3:

Schaltplan findet ihr im Anhang.

Als Beispiel findet ihr dort auch die Ergebnisse als Spektrum der letzten Tests mit Temperaturen zwischen 25 und 40°C und einer Co-60 Quelle. Wie man sieht bewegen sich die Peaks quasi überhaupt nicht, also Ziel erfüllt -- Gain bleibt konstant! Bisschen unwissenschaftlich formuliert, aber ihr seht es ja ;)

Schaltplan, Gerber Dateien, BOM usw. gibt's natürlich wieder auf GitHub. Dafür habe ich einfach das alte Repository aktualisiert: https://github.com/OpenGammaProject/MicroFC-SiPM-Carrier-Board
Wie lange Kitspace braucht um alles zu aktualisieren weiß ich leider nicht, das kann oft Tage dauern.

NuclearPhoenix

Ich bin grade am Finalisieren der jetzt schon vierten Hardware Revision vom Open Gamma Detector und wollte nur mal einen interessanten/anschaulichen Fund mit euch teilen. Ich werde jetzt hier noch nicht in sonstige Details gehen, weil ich ansonsten mehrere lange Posts von Hackaday 1:1 kopieren müsste und das macht ja keinen Sinn ;)
Wen das alles interessiert kann ja mal vorbeischauen: https://hackaday.io/project/185211-all-in-one-gamma-ray-spectrometer/log/225597-revision-40-status-report und ff.

Jedenfalls habe ich für die Rev 4 eine 4-lagige Platine verwendet und zusätzlich dazu das Layout, usw. noch ein wenig verbessert, sodass das allgemeine Rauschen ein wenig niedriger wird. Und siehe da, es wirkt: das Spektrum ist deutlich glatter...

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

... und ich komme sogar noch in niederenergetischere Bereiche (links neben dem 32 keV Peak)...

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

... bis ungefähr 10 keV runter. Super! :) :yahoo:

Das Cs-137 Spektrum habe ich über 4 Stunden ohne irgendeine Abschirmung aufgenommen und für beide Spektren dieselben Einstellungen verwendet (natürlich Hintergrund abgezogen). Für das untere Bild habe ich dann den SMA 8 aktiviert. Verwendet habe ich eine ganz schwache Quelle aus Pilzen, das ist also alles noch Tschernobyl-Caesium und bringt mir etwa 33cps auf die Waage :)

Kermit

Das sieht super aus  ;D

Jetzt brauche ich nur noch ausreichend Zeit um endlich auch einen Detektor von Dir zusammenzubauen ;)

Das Spannende daran ist ja gerade auch das Du in die niedrigen Energiebereiche unter 40 KeV kommst. Der Peak am Beginn des Spektrum müsst ja der 32 Kev Peak aus der Röntgenfluoreszens des Ba-137 sein.


NuclearPhoenix

Zitat von: Kermit am 03. Dezember 2023, 14:24Jetzt brauche ich nur noch ausreichend Zeit um endlich auch einen Detektor von Dir zusammenzubauen ;)
Schamlose Eigenwerbung: Bald gibt's wieder fertige Boards auf Tindie, wenn du noch ein bisschen warten kannst ;)

Zitat von: Kermit am 03. Dezember 2023, 14:24Das Spannende daran ist ja gerade auch das Du in die niedrigen Energiebereiche unter 40 KeV kommst. Der Peak am Beginn des Spektrum müsst ja der 32 Kev Peak aus der Röntgenfluoreszens des Ba-137 sein.
Ja genau, ich habe auch schon Versuche mit Am-241 gemacht, da kann ich den 26 keV Peak ebenfalls ohne Probleme komplett auflösen. Ich muss mal schauen, ob ich mir eine stärkere Cs-137 Probe für die ein oder andere Messung "ausleihen" kann, dann sieht das Spektrum nochmal repräsentativer aus :) Dafür warte ich aber noch, bis ich eine schönere Platine hier habe, dann kann ich davon auch Fotos machen ;)

NuclearPhoenix

Mit einer anderen Einstellung für die ADC Mittelwertbildung ("averaging" bei den Befehlen) bin ich sogar erstmal unter 9% Auflösung gekommen. Mit einem einzelnen SiPM, bin schon gespannt wie weit ich mit dem 2x2 Array und dem besseren 7% Kristall kommen werde :yahoo:

jiajia

Why do you have to use Raspberry Pi as the main control? In my opinion, the main control is the shortest wooden barrel, which greatly limits the performance of your device. And since you have joined OLED and have Geiger mode, why not convert it and use the screen to display the current radiation equivalent?

NuclearPhoenix

Zitat von: jiajia am 08. Dezember 2023, 18:24Why do you have to use Raspberry Pi as the main control? In my opinion, the main control is the shortest wooden barrel, which greatly limits the performance of your device.
There are many different reasons. If you want to read more about it, please read the following and also follow through to the discussions thread: https://github.com/OpenGammaProject/Open-Gamma-Detector/blob/main/REFERENCE.md#notes-on-different-microcontrollers The Pico as an allround package isn't bad, it is easy and cheap to get, you cannot confuse it for any other microcontroller board, it's very versatile and it's trivial to program. On top of that it's also easy to solder (SMD).

I'd be interested into why you think that it's the single worst aspect about the board, even greatly limiting the performance. What makes you think that?

Zitat von: jiajia am 08. Dezember 2023, 18:24And since you have joined OLED and have Geiger mode, why not convert it and use the screen to display the current radiation equivalent?
There is also a discussion thread about this on the main GitHub page: https://github.com/OpenGammaProject/Open-Gamma-Detector/discussions/38

In short, you can do so yourself, but I won't be doing it since it would suggest that you can rely on the device to assess any sort of danger of radioactive sources. It's not something I'd ever suggest you do. If you're putting your life at risk, buy a professional device with factory calibrated settings from a known brand and don't cheap out there.

Other than that, it's also really limited to the fact that you could and probably will use a slightly different scintillator than I do, so even if I integrated some cps to Sv conversion factors, they'd be different factors for your device, so that would be useless. You could also compute the dose rate using the spectrometer functions (energy and cps per bin), but that would also require you to energy calibrate your device with the settings you're using. And that's not trivial to do anyways if that was a problem even for the guys from Radiacode. It's better to leave that to you if you really want to do it. Nothing's stopping you from forking the firmware and modifying it for yourself. That's why I chose the Arduino IDE, it doesn't get any easier than that really.

Hope that answers your questions!

NuclearPhoenix

Kleiner Querverweis, weil auch relevant für den Thread. Die erreichbaren Zählraten mit dem Detektor habe ich hier einmal getestet: https://www.geigerzaehlerforum.de/index.php/topic,2066.msg26285.html#msg26285

NuclearPhoenix

Kleiner Vergleich zwischen der "Anfängervariante" mit meinem alten 18x30mm NaI und einem einzelnen SiPM und einem brandneuen 1x1" NaI und dem 2x2 SiPM Array. Letztere Variante ist natürlich merklich teurer, deshalb nennen wir sie hier mal die "Premiumvariante" ;)

Die Zählrate vom neuen Szintillator ist offensichtlich deutlich höher und die Effizienz wesentlich besser, aber das interessante ist ja auch die Energieauflösung. Verkauft wurde mir der Kristall mit 6.9%, erreichen kann ich mit dem Aufbau 7.8% beim 662keV Peak vom Cs-137 (Die Herstellerauflösung will ich auch gar nicht bezweifeln).

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

Interessant ist auch der größere Messbereich bis über 2000keV. Ich messe gerade noch ein paar andere Sachen und habe da noch ein paar Schwierigkeiten mit der Energiekalibrierung, aber es sieht so aus, dass ich auf jeden Fall bei >2MeV bleibe. Runter komme ich anscheinend immer noch auf 10 - 20keV, wobei da natürlich anzuzweifeln bleibt, wie viel da noch durch das Alu überhaupt durchkommt ;)

Interessant finde ich es definitiv auch, dass das Spektrum insgesamt einfach viel, viel klarer geworden ist. Jetzt habe ich nämlich wirklich nur mehr die beiden Cs-137 Peaks und das wunderschöne Compton-Spektrum zwischendrinnen. Mit dem vorigen Kristall war das ja eine verzerrte Ebene, auch wenn man das Compton-Spektrum trotzdem erkennen konnte. Das habe ich jetzt eigentlich bei allen anderen Spektren ebenfalls beobachten können. Keine Ahnung woran das liegt, wahrscheinlich hat der alte Kristall schon so seine "Eigenheiten"... :)

NuclearPhoenix

Hier dasselbe nochmal für Lutetium-Oxid. Einen Vergleich sieht man in diesem Beitrag: https://www.geigerzaehlerforum.de/index.php/topic,974.msg19364.html#msg19364

Da bin ich mir sogar recht sicher, dass man den 88 keV Peak sehen kann, wenn ich länger aufnehme.


NuclearPhoenix

Hier ein Foto der neuesten Variante mit einer schwarzen Platine. Ich finde die Kombination aus schwarz und dem goldenen ENIG sieht super aus. Mit dem Gerät habe ich auch das Spektrum gemacht, was ich euch unten angehängt habe. Damit hat sich (ein für mich) neuer Rekord aufstellen lassen: Nach 2 Stunden Messen mit der Pilzprobe der letzten Male habe ich jetzt sogar 7.4% @ 662keV erreicht :yahoo:

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

Außerdem habe ich heute noch in der Software die Funktion der Schalter geändert (FW 4.1.0). Vorher war es ja so, dass man mit dem BOOTSEL Schalter am Pico den Modus umschalten konnte und mit dem anderen Schalter auf der Hauptplatine den Ticker. Jetzt funktioniert es so, dass der BOOTSEL Schalter den Mikrocontroller nur mehr in den Bootloader-Modus schickt (zB. zum Aktualisieren) und der Schalter auf der Hauptplatine steuert die beiden anderen Funktionen: Kurz drücken und man schaltet den Modus um, min. 1 Sekunde lang gedrückt halten und man schaltet den Ticker ein/aus.

Das sollte vor allem für diejenigen eine deutliche Verbesserung sein, die das Display direkt auf dem Board haben, so wie ich :)

EDIT: Das Display reagiert jetzt auch schneller auf einen geänderten Modus, was das ganze ebenfalls deutlich angenehmer macht.

NuclearPhoenix

Mit der neuesten Firmware von heute (4.2.0) kann man endlich auch Spektren im Flash auf dem Raspberry Pi Pico speichern. :yahoo:  :yahoo:

Dafür habe ich ein paar neue Kommandos eingebaut, die das Steuern der Aufnahmen ermöglichen und Zugriff auf das Dateisystem erlauben. Damit ist es jetzt möglich eine Messung über die serielle Verbindung zu starten und irgendwann einige Zeit später das komplett fertige Spektrum vom Gerät herunterzuladen. Die Ausgabe erfolgt in dem JSON-Dateiformat das ich schon längere Zeit für Gamma MCA benutze.

Das 1MB Dateisystem kann ca 50+ Spektren speichern. Die genaue Zahl ist schwer abzuschätzen, weil das Dateisystem relativ viel Overhead hat und der gesamte belegte Speicher größer ist als nur die reinen Dateigrößen. Die Größe schwankt natürlich auch von Spektrum zu Spektrum. Um den Speicherbelegungsstatus anzusehen, gibt's aber auch ein Kommando.

Im Endeffekt läuft das dann so ab, dass man mit einem Kommando die Messung startet und der Detektor nimmt so lange selbstständig auf, bis die Zeit abgelaufen ist, manuell gestoppt wurde oder der Strom aus ist. Dazwischen ist keine aktive Verbindung mit einem Computer nötig und es wird alle 15 Minuten zur Sicherheit automatisch gespeichert. Danach kann man mit einem Kommando den gesamten Dateiinhalt ausgeben und auf den Computer zum Ansehen kopieren.

Das schönste daran ist, dass dazwischen keine Verbindung gebraucht wird. Man kann also mit dem Computer sonst machen was man will und muss keine zusätzliche Software laufen lassen. :yahoo:  Die einzige Bedingung ist nur, dass der Detektor die ganze Zeit über Strom hat.

Ich würde euch gerne auf den englischsprachigen Hackaday-Beitrag verweisen, wenn ihr es mit den Änderungen genauer wissen wollt: https://hackaday.io/project/185211-all-in-one-gamma-ray-spectrometer/log/227031-fw-420-recording-to-flash