Qirx - DAB SDR-Software für Windows mit TII Auswertung

Alles zum Thema DAB(+) Digitalradio.
andimik
Beiträge: 5696
Registriert: Sa 1. Sep 2018, 19:11
Wohnort: Arnoldstein, Bezirk Villach Land, Österreich
Kontaktdaten:

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von andimik »

Dana Diezemann hat geschrieben: Mi 26. Mai 2021, 17:38Welle.io und QT-DAB nicht
Doch, Qt-DAB kann das seit kurzem. Probier es mal damit mit der 3.72 (oder evtl. bereits mit der 3.71). Ich hab leider keinen RTL-Stick mit Bias-T (das geht bei mir nur beim Airspy).
Dateianhänge
Bildschirmfoto vom 2021-05-26 18-23-37.png
Bildschirmfoto vom 2021-05-26 18-23-37.png (19.01 KiB) 2189 mal betrachtet
Dana Diezemann
Beiträge: 594
Registriert: So 10. Feb 2019, 20:15
Wohnort: Abstatt (HN)
Kontaktdaten:

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Dana Diezemann »

Kurzer Test leider negativ. 3.70-32 war/ist drauf. Stick wurde direkt erkannt und auch der Lime SDR. Mit 3.72-64 wird der Stick nicht mehr erkannt und Lime taucht nicht mal mehr in der Liste auf. RTL-SDR geht noch. Probiere morgen mal die 32 Bit Version.
HF-Hase
Beiträge: 467
Registriert: Fr 31. Aug 2018, 20:16
Wohnort: Windeck / RheinSieg

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von HF-Hase »

Dana Diezemann hat geschrieben: Mi 26. Mai 2021, 17:38 Thema Bias-T / 5 Volt auf der Antennenleitung

Frage: Hat das wer am laufen? Oder muss ich hier mal ein Bit zu Fuß setzen?
Mein Stick RTL-SDR.COM V3 klappt mit QIRX 3.1.2 und QT-DAB 3.72. Es kommen jedoch nur 4.7 V raus, vermutlich 0.3 V Abfall am Schalttransistor.

Ich frage mich allerdings, ob die BIAS-Spannung kurzschlussfest ist. Viele Antennen bilden ja für DC einen Kurzschluss. Was passiert, wenn in solch einem Fall die 5 V aktiviert werden?
Clem01
Beiträge: 282
Registriert: Fr 31. Aug 2018, 17:24

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Clem01 »

Bei mir hat keiner der "üblichen" RTL-SDR Dongle die Spannung ausgegeben. Airspy und RSP dagegen schon.
HF-Hase hat geschrieben: Mi 26. Mai 2021, 23:48 Mein Stick RTL-SDR.COM V3 klappt mit QIRX 3.1.2 und QT-DAB 3.72. Es kommen jedoch nur 4.7 V raus, vermutlich 0.3 V Abfall am Schalttransistor.

Ich frage mich allerdings, ob die BIAS-Spannung kurzschlussfest ist. Viele Antennen bilden ja für DC einen Kurzschluss. Was passiert, wenn in solch einem Fall die 5 V aktiviert werden?
Die Kurzschlussfestigkeit wird hier ("Feature 2: Software Selectable Bias Tee") kommentiert.
Drehrumbum
Beiträge: 575
Registriert: Mo 1. Jun 2020, 02:28

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Drehrumbum »

Kleiner QIRX3-Bug am Rande:

Die LSB/USB - Umschaltung funktioniert nur richtig, wenn "Show Registers" ebenfalls angeklickt ist.
viterbi.dll replacement for QIRX-SDR (all versions): https://github.com/Drehrumbum/viterbi.dll#viterbidll
Clem01
Beiträge: 282
Registriert: Fr 31. Aug 2018, 17:24

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Clem01 »

Kein Bug, sondern ein Feature:
Der Grund ist, dass die korrekte Signalisierung des eingestellten Seitenbandes das Auslesen der Register bedingt, und dafür müssen diese aktiviert sein.

Aber Dank für die Wachsamkeit!!
Drehrumbum
Beiträge: 575
Registriert: Mo 1. Jun 2020, 02:28

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Drehrumbum »

Auf der Suche nach der Ursache der letzten sporadischen Ausssetzer, die es trotz all meiner Versuche gibt, habe ich mich in den letzten Tagen durch jede Menge Quellcode gewühlt und mir meine eigene "rtl_tcp.exe" gebastelt. Die kann zwar noch nicht so viel, funktioniert aber erstmal mit QIRX. Alles läuft mit normaler Priorität.

Beim Durchsehen der Quelldateien ist mir mehr oder weniger "sofort" diese Callbackfunktion in rtl_tcp.c ins Auge gesprungen, die von der rtlsdr.dll aufgerufen wird und die man beim Aufruf von rtlsdr_read_async angibt.

r = rtlsdr_read_async(dev, rtlsdr_callback, NULL, buf_num, 0);

"Mein" Problem mit dieser Callbackfunktion ist, dass dort mit malloc/free hantiert wird. Speicheranforderungen in einer zeitkritischen Funktion? Meiner Meinung nach ein absolutes nogo.

Ich habe diese Funktion jetzt "verkabelt" und messe die Zeiten. Aufrufperiode, Min, Max (das sind im Moment 64ms (abhängig von der Puffergrösse) und schwankt um ein paar Millisekunden) und die Zeitdauer vom Einsprungpunkt bis zum Verlassen der Callbackfunktion. Auch mit Min und Max. Hier gibt es schon grössere Unterschiede. 36 Microsekunden sind Minimum. Und das Maximum? 2ms, 5ms, 7ms... Achtung Millisekunden!

Einmal pro Minute holt ein Thread die Variablen ab (das blockt den Thread der Callbackfunktion mittels Mutex im Ernstfall nur für die Zeit des Umkopierens der paar Zeit-Variablen - 1µs oder so), An dieser Stelle werden auch die Min/Max-Werte wieder zurückgesetzt. Die Ausgabe mit "printf" findet später im Thread statt, hat also keinerlei Einfluss auf die Callbackfunktion.


Das ist der Stand der Dinge. Jetzt heisst es warten auf den Aussetzer...
Dateianhänge
rtl_tcp_timing.jpg
viterbi.dll replacement for QIRX-SDR (all versions): https://github.com/Drehrumbum/viterbi.dll#viterbidll
Dana Diezemann
Beiträge: 594
Registriert: So 10. Feb 2019, 20:15
Wohnort: Abstatt (HN)
Kontaktdaten:

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Dana Diezemann »

Wow, großer Respekt. Aussetzer bzw. das QIRX sich neu synct habe ich besonders beim Umschaltern innerhalb eines schwachen Muxes. V3 krasser wie V2. Und wenn ich den Bildschirm in Skype teile. Da ist die CPU phasenweise am Anschlag.

Thema: DAB Engine, so nenne ich mal den Decoder.
Ich bekomme trotz zwei Quellen, Sticks oder per Stream keine zwei Ensembles gleichzeitig aktiv. Die V3 bietet ja bis zu 3 Fenster. Nur als DAB und UKW oder ADSB. Weil da nur eine Engine drin ist. Zweimal QIRX starten geht auch nicht, wird verhindert. Wie mache ich eine Messfahrt mit einem PC und der Aufgabe, zwei Ensembles zu monitoren/recorden?
Dana Diezemann
Beiträge: 594
Registriert: So 10. Feb 2019, 20:15
Wohnort: Abstatt (HN)
Kontaktdaten:

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Dana Diezemann »

Clem01 hat geschrieben: Do 27. Mai 2021, 01:27 Bei mir hat keiner der "üblichen" RTL-SDR Dongle die Spannung ausgegeben. Airspy und RSP dagegen schon.
HF-Hase hat geschrieben: Mi 26. Mai 2021, 23:48 Mein Stick RTL-SDR.COM V3 klappt mit QIRX 3.1.2 und QT-DAB 3.72. Es kommen jedoch nur 4.7 V raus, vermutlich 0.3 V Abfall am Schalttransistor.

Ich frage mich allerdings, ob die BIAS-Spannung kurzschlussfest ist. Viele Antennen bilden ja für DC einen Kurzschluss. Was passiert, wenn in solch einem Fall die 5 V aktiviert werden?
Die Kurzschlussfestigkeit wird hier ("Feature 2: Software Selectable Bias Tee") kommentiert.
So wie mir der Stick aussieht, braucht der intern 3,3 Volt. Das macht ein Längsregler auf der Unterseite aus 5V. Wird gut warm. Die BiasT sind die direkten USB. Und das darf bei USB2 5 Volt +/- 5%. 4,75V kann da schon realistisch sein, der Schalter wird da auch noch was abziehen... Laut Spec ist der Antennenstrom gedeckelt. Also kurzschlußsicher.
Clem01
Beiträge: 282
Registriert: Fr 31. Aug 2018, 17:24

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Clem01 »

Hallo Dana,

DAB kann in einer exe nur einmal laufen, nicht zweimal. Das hat programmtechnische Gründe und ist im Gegensatz zu den anderen Demodulatoren. Z.B. ADS-B kann zweimal laufen.

Es ist aber sehr wohl möglich, QIRXe unabhängig voneinander mehrfach zu starten. Dazu gibt es eine einfache Mögichkeit, die beachtet werden muss, und wo ich nicht parat habe, ob das irgendwo beschrieben ist.

QIRX3 beachtet derzeit einen einzigen Kommandozeilenparameter, der auch bei der Installation gesetzt wird. Über das Icon wird qirx ja nicht direkt sondern über ein .bat File gestartet. Dieser Kommandozeilenparameter heisst per Default "qirx3" (ohne die Gänsefüsschen). Das bedeutet, dass ALLE Daten relativ zu einem Unterverzeichnis qirx3 gesucht werden, insbesondere auch die config Datei, die dann qirx3.config heisst.

Hier bei mir ist der Pfad dazu entsprechend Windows Konvention
C:\Users\cs\AppData\Local\qirx3

Wenn du also ein weiteres .bat File anlegst mit dem Inalt
qirx.exe qirx4711
wirst du gefragt, ob du eine neue qirx4711.config anlegen willst. Dann geht alles unabhängig vom qirx3 Verzeichnis und zwar im Unterverzeichnis qirx4711. Die Unterverzeichnisse sollten automatisch erstellt werden.

Damit können unabhängig voneinander mehrere Instanzen von qirx laufen.

Das mache ich permanent während der Entwicklung, wenn ich trotzdem parallel Musik hören will.
Wenn du das machst, empfiehlt es sich, wenigstens das Verzeichnis, wo die Kacheln der Karte gespeichert sind, Unterverzeichnis "MapCache", von Hand rüber zu kopieren, um eventuelles Sperren durch openstreetmap wegen zu hohen Verkehrs möglichst zu vermeiden. Die sind da manchmal etwas eigen. Außerdem könnte im Mobilbetrieb das Nachladen der Kartenkacheln etwas mühsam sein.

Wenn das Starten des zweiten QIRX generell verhindert wird, gibt es den Eintrag in der config:

Code: Alles auswählen

<application allowMoreThanOneInstance="true" />

Die Änderungsmöglichkeit wird aber auch als Hinweis zur Laufzeit ausgegeben.

Ich hoffe, das hilft.
Clem01
Beiträge: 282
Registriert: Fr 31. Aug 2018, 17:24

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Clem01 »

Drehrumbum hat geschrieben: Do 27. Mai 2021, 20:22 "Mein" Problem mit dieser Callbackfunktion ist, dass dort mit malloc/free hantiert wird. Speicheranforderungen in einer zeitkritischen Funktion? Meiner Meinung nach ein absolutes nogo.
Absolutes nogo??

Ich hab ebenfalls mal die malloc Zeiten direkt in der callback Funktion gemessen. Jeweils 1000 mal die gemessene Zeit addiert, die Summe durch 1000 geteilt, und im Main Thread angezeigt.

Das Ergebnis sind völlig unspektakuläre durchschnittliche 38us. Die Schwankungsbreite war (minutenlang) zwischen 35 und 41us. Die von dir gemessenen Maximalzeiten können daher nur selten auftreten, wahrscheinlich Threadwechsel, die man auch mit anderen Methoden nicht weg bekommt.

Natürlich wäre eine Speicherverwaltung, die mit z.B. gekacheltem Speicher arbeitet, schneller, die Frage ist, ob das die Aussetzer reduziert. Ich kann mir das nur schwer vorstellen.
Drehrumbum
Beiträge: 575
Registriert: Mo 1. Jun 2020, 02:28

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Drehrumbum »

Die Frage, ob die Aussetzer damit weggehen, kann ich auch noch nicht beantworten. Meine Tendenz geht in Richtung rtlsdr.dll. Die ist als nächstes mit einem Codereview dran...

Ich bin jetzt aber mit meinem Ausmisten soweit fertig. Nachdem ich den Quelltext noch etwas "hübsch" gemacht habe, bekommen Oldenburger und Du Post. Ihr müsst dann noch den Rest in diesen Command-Thread (Port 1235) einbauen, damit QIRX die Register lesen kann etc.. Ich hab auch nicht allen Code parat.

Ansonsten ist nun die pthread.dll unnötig, die unsägliche "linked list" aus dem Rennen und die rtl-tcp.exe etwas weniger rechenintensiv.

Bis denne erstmal!
Dateianhänge
rtl_tcp_timing2.jpg
viterbi.dll replacement for QIRX-SDR (all versions): https://github.com/Drehrumbum/viterbi.dll#viterbidll
Drehrumbum
Beiträge: 575
Registriert: Mo 1. Jun 2020, 02:28

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Drehrumbum »

Nur, damit euch nicht langweilig wird...

Wenn man die Seitenbänder umschaltet, macht man das v.a., um Nachbarkanalstörungen aus dem Weg zu gehen. Das kann mitunter helfen. Ansonsten passiert bei der Umschaltung rein gar nichts. Oder doch? Das hab ich noch nie zuvor gesehen. Es erübrigt sich fast zu sagen, dass der Stick längst "warm" war und es diese Frequenzdrift auf keinem anderen hier empfangbaren Mux zu sehen gibt. Komisch, das. :gruebel:
Dateianhänge
sideband.jpg
viterbi.dll replacement for QIRX-SDR (all versions): https://github.com/Drehrumbum/viterbi.dll#viterbidll
oldenburger
Beiträge: 120
Registriert: So 30. Sep 2018, 10:58

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von oldenburger »

Wenn das Seitenband umgeschaltet wird, ändert sich die Oszillatorfrequenz im Tuner. Die ist in dem einen Fall Empfangsfrequenz + ZF, im anderen Fall Empfangsfrequenz - ZF. Die kleinste Schrittweite bei der Oszillatorfrequenz des R820T ist bei 200 MHz ungefähr 30 Hz. Deswegen die unterschiedliche Abweichung.
Drehrumbum
Beiträge: 575
Registriert: Mo 1. Jun 2020, 02:28

Re: Qirx - DAB SDR-Software für Windows mit TII Auswertung

Beitrag von Drehrumbum »

Ist schon Annahmeschluss für Wunschzettel, oder geht da evt. noch was? Ich würde mir nämlich im IQ-Recorder-Tab die Anzeige der Aufnahme-Restzeit wünschen wollen.

Nur mal kurz ein Gedanke zu der "moving-map". Clem, wie seht's denn mit dem Aufwand aus, wenn Du einen User "simulierst", der regelmässig versucht den grünen Punkt durch Verschieben der Karte mit der gedrückten linken Maustaste in die Kartenmitte zu bekommen und die Taste dann wieder loslässt? Die xy-Position des grünen Punktes in der Map ist bekannt, wo die Mitte im Fenster ist, ebenfalls. xy-Differenz bilden dann mit SendMessage() an das Map-Window die Mausbewegung "faken". Das sollte so eigentlich funktionieren. Okay, der Sprung in den Atlantik vor Afrika sollte evt. abgefangen werden, wenn kein Fix vorhanden ist.
viterbi.dll replacement for QIRX-SDR (all versions): https://github.com/Drehrumbum/viterbi.dll#viterbidll
Antworten