Web-App: Gamma MCA

Begonnen von NuclearPhoenix, 17. Februar 2022, 16:19

⏪ vorheriges - nächstes ⏩

NuclearPhoenix

Ich habe mal aus Interesse eine Umfrage für neue Features gestartet.

https://github.com/OpenGammaProject/Gamma-MCA/discussions/14

Falls jemand abstimmen möchte und keinen GitHub Account hat, kann ich auch hier eine Umfrage einrichten.

NuclearPhoenix

Changelog: ;D

  • Ab jetzt gibt es nur mehr einen Export-Button, mit dem man alle möglichen Formate speichern kann. Dieser befindet sich unter "File Control". Der Export-Button unter "Serial Connection" wurde entfernt, damit das alles klarer ist.
  • Ab jetzt kann man auch nicht mehr (unabsichtlich) leere Dateien exportieren.
  • Für importierte Dateien, die die jeweilige Messzeit enthalten, kann die y-Achse von "counts" auf "counts per second" umgestellt werden. Das heißt man kann jetzt auch den Hintergrund von einem kürzer/länger gemessenen Spektrum abziehen, wenn man auf die "cps"-Achse umstellt!
  • Neuer Kalibrierungschart: Verhältnis zwischen unkalibrierten Histogramm Bins und Energiekalibrierung, ein Bsp siehe unten. Ist interessant, vor allem wenn man quadratisch kalibriert und der Detektor nicht gut linear ist.
  • In die Export- und Aufnahmedialoge wurde jeweils eine kleine Beschreibung hinzugefügt. Auch die Buttons enthalten ein wenig mehr Info.
  • Besseres Toolbar Layout bei besonders kleinen Bildschirmen (noch nicht 100% zufrieden damit).
  • Autoscroll für die serielle Konsole.
  • Leistungs- und Netzwerkverbesserungen.
  • Einige weitere kleine Designanpassungen.
  • Viele kleine Verbesserungen und wieder einmal einige Bug Fixes. Dafür werden sich aber garantiert wieder ein paar neue eingeschlichen haben. ;)

Keine bahnbrechenden neuen Features, mehr ein "quality of life" Update. :)

NuclearPhoenix

Neues Changelog für Version 2023-02-01 (keine besondere Reihenfolge):

  • Die Messzeit wird im "Information" Tab auch für importierte Dateien angezeigt.
  • "Plottype Bar" ist jetzt die Standardeinstellung, sieht jetzt ein wenig anders (besser) aus und vor allem hat es keine Leistungsprobleme mehr.
  • Ich habe den "Gaussian Correlation Filter" Algorithmus aus PRA implementiert. Das ist ein wirklich wunderbarer Algo um auch "versteckte" Peaks aus dem Histogram rauszufischen und das Hintergrundrauschen loszuwerden. Ein Beispiel siehe unten! Insgesamt funktioniert dadurch der Peak Finder deutlich besser.
  • Die logarithmische x-Achse hat nie richtig funktioniert. Das habe ich nun endlich behoben.
  • Sobald Daten für das Spektrum oder Hintergrundspektrum vorhanden sind (also durch Dateiimport oder Aufnahme), wird ein entsprechender Haken bei der "File Control" dafür angezeigt, damit man auch immer weiß, was denn grade noch geladen ist.
  • Viele Leistungverbesserungen und bug fixes.

NuclearPhoenix

Kleines Update:
  • Neue Option zum Einstellen der Standardabweichungen für den Gauß-Filter.
  • Keine Warnungen mehr bei "zu kleinem" Fenster/Bildschirm.
  • Mit Linksklick in den Plot erstellt man an dieser Stelle eine Linie. Mit Rechtsklick entfernt man diese wieder.
  • Die Peaks vom Gauß-Filter werden auf 80% des Maximumwertes des Spektrum (hoch-)skaliert.

NuclearPhoenix

Gamma MCA unterstützt jetzt auch USB zu TTL Adapter (speziell FTDI) auf mobilen Geräten oder sonst überall, wo WebSerial nicht unterstützt wird, WebUSB aber schon. (Mehr Info dazu auf GitHub). :yahoo:

Das bedeutet vor allem auf Android kann man mit einem solchen Adapter jetzt gewohnt die Software verwenden. Das ganze ist eventuell noch nicht 100%-ig stabil, deshalb würde ich mich auch über Tester freuen ;D

Außerdem wird die Portnumerierung jetzt besser beibehalten, falls man andere Geräte während einer Messung ein/aussteckt. Der aktuell aufnehmende Port wird dabei immer automatisch ausgewählt.

NuclearPhoenix

Update auf Version 2023-02-16:

  • In unterstützten Browsern (großteils Chrome-Klone) wird jetzt endlich ein Dateidialog zum Speichern angezeigt! Dadurch werden Dateien (z.B. Spektren) nicht mehr einfach nur runtergeladen, sondern man kann sich aussuchen, wohin sie gespeichert werden sollen. Ebenfalls kann der Dateiname dadurch verändert werden!
  • Das Benachrichtigungssystem wurde ein wenig überarbeitet.
  • Die Performance des Gauß-Filters wurde deutlich verbessert.
  • Der Serial Port, der gerade zum Aufnehmen benutzt wird, wird immer automatisch ausgewählt und hervorgehoben, falls man andere Ports ein- und aussteckt.
  • Die Leserlichkeit der Formattierung des Datums von Dateien wurde verbessert.

NuclearPhoenix

Habe grade nochmal ein paar Kleinigkeiten für die WebUSB Unterstützung auf Mobilgeräten repariert. Jetzt sollte man auch wirklich einen FTDI UART-USB Konverter sehen. Vorher war irgendwie nur ein bestimmtes Gerät rausgefiltert.

NuclearPhoenix

Neues Update! Changelog (Wichtigste Änderungen hervorgehoben):

  • Der Typ "Line Plot" wird ab jetzt nur mehr als eine durchgängige Linie eingezeichnet. Die Farbfüllung zur x-Achse hin ist dem Histogram vorbehalten.
  • Die "Save" Buttons für Dateien werden auch freigeschalten, wenn man das Programm über eine Datei öffnet (PWA).
  • Ist eine Kalibrierung vorhanden, wird diese beim Laden der Datei auch automatisch aktiviert.
  • Ist die gemessene Aktivität unter 1 cps wird automatisch zu counts per minute gewechselt.
  • Die Skalierung der Achseneinheiten wurde verbessert (z.B. vorher: "10k keV" --> jetzt: " 10,000 keV").
  • Die Isotopenliste kann sowohl nach Energie als auch nach Massenzahl sortiert werden.
  • (Die Isotopenliste ist deutlich lesbarer: https://gist.github.com/Phoenix1747/755849920472bd12b4bdd7954b405d4e)
  • Der Peakfinder berechnet automatisch die Energieauflösung für gefundene Peaks. Sie wird automatisch bei jedem Peak angezeigt. Das kann man in den Einstellungen deaktivieren (s. Bilder).
  • Im Zusammenhang damit wurde der Markierungsstil der Peaks geändert (s. Bilder). Wenn man das nicht möchte, so kann man auch einfach zum alten Stil in den Einstellungen zurückwechseln (s. Bilder).
  • Mit dem "Box Select"-Tool (s. Bilder), kann man eine ROI im Plot auswählen. Dazu werden dann einfache statistiken oben rechts angezeigt (s. Bilder).
  • Der Plotstil wurde allgemein leicht geändert: alle Linien sind jetzt ein wenig dicker.
  • Die "Peak Width" Einstellung beim Peakfinder wurde entfernt, zusammenhängende Peaks werden automatisch besser erkannt.
  • Ein paar Bug Fixes, vor allem im Bezug auf die Einstellungen.

Wenn möglich wäre es sicher nicht schlecht, wenn ihr eure Einstellungen nach diesem Update einmal zurücksetzt. :)

NuclearPhoenix

Heute nochmal ein kleines Update nachgeliefert: Ein neuer Plot zur Zeitentwicklung der gemessenen Aktivität.

Hier ein Beispiel:
Sie dürfen in diesem Board keine Dateianhänge sehen.

NuclearPhoenix

Update auf Version 2023-05-15:

  • Benachrichtigung zur Dateispeicherung hinzugefügt.
  • Wenn "Save As" verwendet und erfolgreich eine Datei gespeichert wird, zeigt der Button "Save" auch auf diese Datei. Früher blieb bei "Save" noch der alte Dateipfad erhalten, sodass die alte (Original-) Datei überschrieben wurde. Damit sollten zu jedem Zeitpunkt sowohl "Save", als auch "Save As", auf denselben Pfad bzw. dieselbe Datei zeigen.
  • Die Zeilen in der seriellen Konsole wurden limitiert, was die Leistung vor allem bei langen Messunngen extrem verbessert.
  • Abhängigkeiten aktualisiert.

Ich warte immernoch auf die neueste CSS-Framework Version, damit ich endlich einen dunklen Modus implementieren kann. Ist natürlich für die Messungen usw. völlig irrelevant, aber trotzdem ein nettes Features. Vor allem am Handy zum Beispiel, wo man vlt. ohnehin nur im "Darkmode" unterwegs ist. ;)

axelroro

Hallo, da ich selbst gerade mit ESP32 rumexperimentiere,  interessehalber mal die Frage: hattest Du schon mal überlegt, einige der Elektronikfunktionen in Software zu machen? Z.B.:
Das Signal des Sipm aufintegrieren (dehnen) auf vielleicht 50us mit einem Charge Amplifier (o.ä.), danach buffer op ap ggfs mit Verstärkung, danach gleich auf ADC. Dort kontinuirlich samplen so schnell als möglich, müssten beim pico 500ksamples/s sein. ADC mit DMA, damit die CPU frei zum Rechnen bleibt. Wenn ein DMA buffer voll ist, ab einer Schwelle (Threshold) oberhalb des Rauschens einen Peak detect in Software machen und wegschreiben in einen Kanal.
Ich versuche ähnliches mit einem ESP32, nutze hierzu die geniale pschatzmann audio-tools library unter der Arduino IDE, die das extrem vereinfacht. Auch wenn das Audio-tools heisst, ist das nicht auf audio beschränkt. Selbst digitale Filter sind verfügbar.

Hoffe, das ist nicht off topic, würde mich interessieren was Du meinst.

Grüsse
Axel

NuclearPhoenix

Hi, danke für die Ideen,! Das ist hier eigentlich mehr der Thread zu der Web-App, die auch mit einigen anderen Geräten funktioniert. Für die Hardware (was du glaube ich eigentlich meinst) ist der Beitrag besser geeignet: DIY Gammaspektrometer mit SiPM. Sorry falls das verwirrend ist, off topic ist es aber nicht.

Nun zu den Vorschlägen: Klingt im Prinzip auf jeden Fall nach einer guten Idee. Und, wenn ich die Pulse wirklich auf 50 µs oder so dehne, könnte es mit der Sample Speed auch funktionieren. Dann kann man natürlich viel mehr "post processing" mit den Pulsen machen, als es jetzt möglich ist.
Aber wirklich viel Elektronik würde ich mir da nicht sparen. Statt Preamp + Peak and Hold habe ich dann halt einen CSP + Buffer. Das einzige was ich weglassen könnte wäre der Komparator. Der ist aber gar nicht mal schlecht, weil damit lassen sich im "Geiger Modus" super schnell Pulse zählen (<= 10 µs Totzeit) -- das würde dann wegfallen und kaum einen Geschwindigkeitsvorteil mehr bringen, da der ADC ja immer gleich schnell ist.

Im Endeffekt würde das Gerät deutlich langsamer (eben min. 50µs Totzeit). Das ist mehr als das 3-fache im Vergleich zu jetzt. Und die Frage ist dann halt immer noch, was es wirklich für Vorteile bringt. Ich habe schon Spektren gehabt mit 8% Energieauflösung bei einem knapp 7% Kristall. Das geht sicher noch besser, aber meiner Meinung nach ist da der SiPM im Moment eine größere Fehlerquelle mangels der kleinen aktiven Fläche. Um größere Szintillatoren zu betreiben (> 1 Zoll), sollte man definitiv das 2x2 Array PCB benutzen. Damit wird die Auflösung nämlich noch einen Ticken besser, sodass man solche guten Ergebnisse erreichen kann.

Das sind mal meine Gedanken dazu. Es ist halt wie immer alles ein Kompromiss. Der Kollege vom DoZer hat das zum Beispiel so ähnlich gelöst wie du vorschlägst. Da wird der Puls auch direkt über den ADC gemessen und getriggert dürfte ebenfalls über einen Komparator werden. Wenn ich mir das so ansehe, hat er hier ziemlich großer Widerstände verwendet, also dürfte die Zerfallszeit recht groß sein. Was dann an post-processing noch dazu kommt -- keine Ahnung.

Übrigens, echt nette Lib :good3:

axelroro

Danke fürs Feedback. Ja, ob man nun Ergebnisse in Elektronik oder Software erreicht, ist eigentlich egal, und Elektronik macht (mir) noch mehr Spass, habe auch einen PMT basierten Szinti statt Sipm, der hinsichtlich Output in viel grösseren Spannungen daher kommt.
Mal kucken, wie weit ich mit den ESPs komme, geht entsetzlich langsam dank Job und Familie ....

NuclearPhoenix

Zitat von: axelroro am 25. Mai 2023, 19:25Ja, ob man nun Ergebnisse in Elektronik oder Software erreicht, ist eigentlich egal, und Elektronik macht (mir) noch mehr Spass, habe auch einen PMT basierten Szinti statt Sipm, der hinsichtlich Output in viel grösseren Spannungen daher kommt.
Wenn man privat dran herumbastelt, wirds egal sein. Im Allgemeinen ist es aber um Größenordnungen billiger, wenn man Dinge in Software realisiert vs sie in Elektronik zu machen. Zumindest, wenn man die Wahl hat und es nicht sein muss ;)

Elektronik macht mir auch deutlich mehr Spaß (Programmieren muss ich schon genug), aber es geht halt alles viel, viel langsamer, weil man auf Teile warten muss, vielleicht PCBs hergestellt bekommt, das kostet dann auch alles was, etc. etc.

NuclearPhoenix

Neues Update auf Version 2023-05-31: Im wesentlichen habe ich das Design ein wenig überarbeitet (z.B. sind die störenden Außenränder in der PWA jetzt weg) und vor allem konnte ich endlich einen dunklen Modus mit einbauen! :yahoo: :yahoo:

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

In den Einstellungen kann man jetzt zwischen 3 Modi wechseln: Dunkel, Hell und System (automatisch).