Open Hardware Detektor (DIY)

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

⏪ vorheriges - nächstes ⏩

NuclearPhoenix

Hier mal eine kleine Vorstellung von einem DIY Detektor an dem ich ungefähr die letzten 1.5 Jahre immer wieder gearbeitet habe und ich glaube ich bin an einem Punkt angekommen, wo man das als "fertig" betrachten könnte ;)

Das ganze ist Open Hardware, kann also von jedem heruntergeladen und nachgebaut werden. Deswegen hoste ich das ganze auf GitHub, dort gibt es außerdem noch den Code dazu, und weitere Doku:

https://github.com/Open-Gamma-Project/Open-Gamma-Detector

Vom Prinzip her ist das ein normaler Szintillationszähler, man braucht also auf jeden Fall noch zusätzlich einen Szintillator. Nur benutze ich zum Unterschied der meisten anderen DIY Geschichten keine PMT, sondern einen sehr empfindlichen Silizium Photomultiplier (SiPM). Dadurch wird das ganze deutlich kompakter und man muss sich nicht mehr mit Hochspannung herumspielen. Im Gegensatz zu Detektoren wie z.B. Theremino wird auch kein Mikrofoneingang/keine Soundkarte gebraucht sondern die Umwandlung von Pulsen zu Energie wird direkt onboard gemacht. Dadurch kann man das ganze mit jedem beliebigen USB-fähigen Gerät benutzen, an dem man dann später die Daten haben will. Sieht man vom Ausmaß des Szintillators ab, also nur die Platine für sich, dann ist das ganze mit ziemlich genau 6x6 cm recht kompakt für eine DIY Lösung.

Der Raspberry Pi Pico Mikrocontroller ist das Herzstück der Datenverarbeitung und mit dessen ADC werden 4096 Kanäle vermessen. Das macht dann zusammen mit dem Energiebereich von ca. 30 keV bis knapp 1400 keV eine theoretische Auflösung von 0.33 keV pro Kanal.

Vom Preislichen liegen wir bei grob 120€ (~15€ für die SMD Bauteile, 4€ für den Pico, ~70€ für das SiPM, 20-30€ für die Platine) ohne Szintillator, natürlich stark abhängig wo man einkauft und in welchen Mengen. Wie man sieht verursacht das SiPM den absoluten Großteil der Kosten, das ist ein durchaus berechtigter Kritikpunkt. Durch Sammelbestellungen kann man den Preis hiervon noch deutlich reduzieren.

Ich benutze die finale Version jetzt seit kurzem und bin selber noch dabei einen Haufen Spektren aufzunehmen. Am-241 und Lu-176 gibt es zum Beispiel schon auf GitHub zu sehen (1h Messdauer), das Lutetium habe ich hier auch schon mal in den passenden Thread geschickt. Das ganze war letztendlich "nur" ein Projekt um zu lernen wie sowas genau funktioniert und auch mein Einstieg in die Gamma-Spektroskopie. Und wenn ich schon an sowas arbeite, dann kann ich das auch öffentlich machen bevor es in der Versenkung verschwindet. Vielleicht interessiert oder hilft es ja noch jemandem ;D

NuclearPhoenix

#1
So... habe jetzt noch einmal ein paar Fotos vom Board zusammen mit dem Szintillator gemacht, damit man sich besser einen Eindruck machen kann.

Nicht wundern, der Szinti ist mit dem SiPM über Silikonfett verbunden, dann nur mit Isoband zugeklebt, deswegen habe ich da für ein wenig mehr Halt zwei Gummibänder drum gemacht - ist auf jeden Fall verbesserungswürdig ;)

Dann kann ich auch noch zwei neue Spektren anbieten: Ein kleiner Knopf mit Urangehalt (pre WW2, deswegen noch U-235 vorhanden) und eine Tasse mit Pechblende (Schwarzumdruck).

NuclearPhoenix

In der Zwischenzeit habe ich herausgefunden wieso ein ADC Kanal so furchtbar erhöhte Werte anzeigt und damit das Spektrum wie hier in einem Bereich extrem verzerrt. Ich probiere auch mal gleich das neue Feature zum Bilder einbinden ;D

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

Das Ganze ist nämlich nicht nur ein Kanal, sondern gleich 4 Stück, die völlig überempflindlich gegenüber dem Rest sind. Das kann man auch hardware-seitig nicht ändern, sondern ist einfach ein Herstellungsfehler bei dem Microcontroller den ich hier benutze. Hier sieht man das ganz gut, das ist ein gut 4 Stunden Hintergrund (der erste Peak geht natürlich noch sehr weit aus dem Bild heraus, aber sonst würde man den Rest nicht sehen):

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

Die einfachste und schnellste Lösung die mir eingefallen ist, ist einfach genau diese 4 Kanäle herauszunehmen und im Spektrum selber zu ignorieren. Damit brauche ich keine aufwendigeren Methoden und verliere nur 4 Kanäle. Das neue Hintergrund-Spektrum sieht dann so aus (auch wieder 4h):

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

Schon weeesentlich besser, ohne viel Aufwand. Am besten wäre es natürlich, wenn das hardware-technisch repariert wird, aber das kann sehr lange dauern ;)

Das hier ist natürlich ein bisschen eine technische Diskussion, aber ich fand es durchaus interessant um zu verstehen wie das alles zustandekommt :)

NuclearPhoenix

Ich habe das ganze Projekt übrigens schon länger auf Hackaday als Projekt hochgeladen:
https://hackaday.io/project/185211-all-in-one-gamma-ray-spectrometer

Dazu gibt es auch einen tollen Artikel vom IEEE Spectrum Magazin: https://spectrum.ieee.org/pi-pico-gamma-ray-detector

In Anlehnung an das SiPM Steuerungsboard hier im Forum und anderes Feedback was ich so bekommen habe, habe ich die Platine übrigens aktualisiert. Damit kann man, wie auch bei eben genanntem Board, verschiedene Pulsschwellen, Gains und SiPM-Spannungen einstellen, sodass es mit den verschiedensten SiPMs und Szintillatoren funktioniert die man so bekommen kann. Demnächst wird man das auch fix fertig online kaufen können, dazu werde ich aber hier nichts posten. Falls ihr also daran interessiert seit, verweise ich euch auf Hackaday.

Im Anhang noch ein tolles Lu-176 Spektrum, welches ich in dünner Bleiabschirmung (~0.5 cm) über 4 Stunden aufgenommen habe. Für nichtmal 5 g Lutetium insgesamt (~20 cps mit Hintergrund im Blei) ist es denke ich ganz gut geworden ;D
Wie man sieht ist auch das Problem mit den ADC Kanälen vom Pico kaum mehr sichtbar. Nur mein Szintillator hat nur leider ein bisschen eine schlechte Auflösung bzw. ist schon stellenweise ganz leicht gelb angehaucht. Sonst wären die beiden Peaks noch etwas schmäler, aber dafür kann ja der Detektor sonst nichts ;)

DG0MG

Zitat von: NuclearPhoenix am 23. April 2022, 15:54Das Ganze ist nämlich nicht nur ein Kanal, sondern gleich 4 Stück, die völlig überempflindlich gegenüber dem Rest sind. Das kann man auch hardware-seitig nicht ändern, sondern ist einfach ein Herstellungsfehler bei dem Microcontroller den ich hier benutze.

Ich hab noch nie einen Raspberry Pi pico benutzt, aber hier beschwert sich ein youtuber darüber,
dass die A/D-Wandler-Ergebnisse sehr verrauscht wären:
https://www.youtube.com/watch?v=F0o1C7nEgw0
Die Ursache würde in dem auf der Platine verbauten Step-Down-Schaltregler liegen, auf dessen unruhigem Output dann auch die Referenzspannung des A/D-Wandlers liegt. Hast Du das mal untersucht?
"Bling!": Irgendjemand Egales hat irgendetwas Egales getan! Schnell hingucken!

NuclearPhoenix

Zitat von: DG0MG am 24. Juli 2022, 17:23
Zitat von: NuclearPhoenix am 23. April 2022, 15:54Das Ganze ist nämlich nicht nur ein Kanal, sondern gleich 4 Stück, die völlig überempflindlich gegenüber dem Rest sind. Das kann man auch hardware-seitig nicht ändern, sondern ist einfach ein Herstellungsfehler bei dem Microcontroller den ich hier benutze.

Ich hab noch nie einen Raspberry Pi pico benutzt, aber hier beschwert sich ein youtuber darüber,
dass die A/D-Wandler-Ergebnisse sehr verrauscht wären:
https://www.youtube.com/watch?v=F0o1C7nEgw0
Die Ursache würde in dem auf der Platine verbauten Step-Down-Schaltregler liegen, auf dessen unruhigem Output dann auch die Referenzspannung des A/D-Wandlers liegt. Hast Du das mal untersucht?
Ah, sehr cool - das Video muss ich mir anschauen!

Ist mir bekannt, der A/D Wandler ist leider die größte Schwachstelle vom Pico. Einerseits durch die Referenzspannung im Sinne von sowohl Rauschen, als auch von der Ausgangsgenauigkeit (sind glaube ich nur ~2%). Und dann gibt es eben noch den Effekt den ich hier weiter oben beschrieben habe. Das ist aber alles nicht allzu tragisch wenn man damit umzugehen weiß. Hier ist eine sehr gut dokumentierte und genaue Untersuchung vom Pico ADC: https://pico-adc.markomo.me/

Deshalb habe ich übrigens Platz für eine Spannungsreferenz auf der Rückseite des neuen PCBs gelassen. Die kann man jederzeit einlöten und dann ist man zumindest dahingehend alles los. Ich hatte nur bei meinen ersten Testläufen keine wirklichen Verbesserungen bei meinen Messungen gesehen, deswegen ist das fürs erste optional... lässt sich ja auch einfach nachrüsten.

Weil im Video der Pico W erwähnt wird: Den finde ich ja auch sehr, sehr spannend. Den kann man in Zukunft (bei entsprechenden Lieferständen) ohne weiteres statt dem Standard-Pico einbauen und könnte bspw. irgendwie über WLAN (ohne extra App) die Daten, Spektren, etc abrufen. Ist wirklich super, was man damit wieder alles machen kann :good3:

NuclearPhoenix

Habe jetzt mal bei einem Hersteller eine kleine Serie fertigen lassen, die Boards sehen echt super aus (auch wenn ich da noch ein wenig manuell rumgelötet habe ;D). Hier habe ich jetzt mal den Szintillator noch nicht am Board angebracht, weil ich erst noch ein bisschen herumprobiert habe.

Die Spektren sehen auch wie zu erwarten aus, dafür habe ich wieder meinen üblichen 18 x 30 mm NaI benutzt -- eingestellt sind ca. 29.4 V und ~60-fache Verstärkung. Der Stromverbrauch liegt mit ~75 mW bei normaler Hintergrundstrahlung auch unter dem erwarteten Niveau. Mit ein paar Softwaretricks kann man den Verbrauch auch sicher noch senken ;)

Raddet

Zitat von: NuclearPhoenix am 24. Juli 2022, 19:36Ist mir bekannt, der A/D Wandler ist leider die größte Schwachstelle vom Pico

Warum nicht externe ADCs verwenden? Auf separaten spezialisierten Mikroschaltungen? 16-Bit oder 24-Bit. Wie schnell soll die Digitalisierung erfolgen?

NuclearPhoenix

Zitat von: Raddet am 20. August 2022, 12:07Warum nicht externe ADCs verwenden? Auf separaten spezialisierten Mikroschaltungen? 16-Bit oder 24-Bit. Wie schnell soll die Digitalisierung erfolgen?

Eine einzelne Messung dauert im Moment ca. 6 µs; laut Datenblatt hat der Pico einen 500 ksps ADC. In diesem Bereich sind 16 bzw. 24-bit ADCs schon sehr viel teurer. Außerdem muss man sich dann auch um die Datenübertragung kümmern und wenn das über I2C läuft, dann addiert sich da noch zusätzliche Totzeit dazu die keiner will. Außer den DNL Problemen funktioniert der ADC mit Referenzspannungsquelle trotzdem recht gut.

NuclearPhoenix

Zitat von: NuclearPhoenix am 20. August 2022, 12:40
Zitat von: Raddet am 20. August 2022, 12:07Warum nicht externe ADCs verwenden? Auf separaten spezialisierten Mikroschaltungen? 16-Bit oder 24-Bit. Wie schnell soll die Digitalisierung erfolgen?

Eine einzelne Messung dauert im Moment ca. 6 µs;
Ich habe zufällig gerade nochmal nachgeschaut, das war leider falsch was ich hier geschrieben habe. Wie man auch auf GitHub nachlesen kann liegen die maximalen CPS für die Spektroskopie bei 40,000 cps und im "Geiger-Modus" (also nur Pulszählung) bei 110,000 cps ohne das man irgendetwas an der Software tricksen müsste. Dementsprechend lange sind dann eben die einzelnen Auslesevorgänge.

Einmal ADC auslesen dauert um die 20 µs. Das ist sehr wahrscheinlich vor allem deswegen so langsam, weil die Software in der Arduino IDE geschrieben und kompiliert wird. Trotzdem reicht die Geschwindigkeit für viele Sachen völlig aus, deswegen möchte ich die absolute Einfachheit der Arduino Software vorerst nicht dafür opfern ;)

NuclearPhoenix

Da ich vor kurzem an einen neuen (gebrauchten) SiPM gekommen bin, konnte ich endlich die (alte) große SiPM Trägerplatine entfernen und das ganze mit Szintillator schön auf dem Detektor PCB montieren :yahoo:

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

Im Zuge dessen habe ich mich auch ein wenig mit dem Gain herumgespielt und ich habe jetzt ohne Probleme einen Messbereich von ~20 keV bis ~3.2 MeV. Als Beweisfoto (;D) wieder meine typischen LYSO Stäbe, was "schöneres" habe ich im Moment leider nicht hier. Ist auch nur eine 10 Minuten Messung, aber reicht zum Nachsehen. Ich werde in der näheren Zukunft auf jeden Fall auch mal die Chance haben ganz interessante Proben damit zu spektroskopieren. Das werde ich dann mit Sicherheit auch hier reinschreiben ;)