AIRSPY HF+ - Amateurfunk-Station DK1IO

Direkt zum Seiteninhalt

Hauptmenü

AIRSPY HF+

SDR (Software Defined Radio) ist der gegenwärtige Trend bei Funkgeräten. Wesentliche Merkmale des Gerätes werden jetzt nicht
mehr von der Hardware bestimmt, sondern von der zugehörigen Software. Die Analogsignale werden direkt am Antenneneingang
oder in der ZF in Zahlenwerte umgewandelt, von da an wird nur noch gerechnet.
Um mich mit dieser Technik vertraut zu machen, habe ich mir einen SDR-Empfänger zugelegt, einen
AIRSPY HF+.

Bild 1


AIRSPY HF+ / SDR# mit WSJT-X


Dieses kleine Kästchen mit den Ausmaßen einer Zigarettenschachtel soll ein vollwertiger Empfänger sein?
Nein, ist es natürlich nicht! ???
Ein SDR stellt man sich am besten als ein konventioelles Funkgerät vor, bei dem Haupteinheit und Bedieneinheit getrennt sind, wie
es z. B. beim Kenwood TS-480 und beim ICOM IC-7100 der Fall ist. Die Haupteinheit ist eine Blackbox, wie der AIRSPY HF+.
Diese Blackbox kann nur im Zusammenspiel mit der Bedieneinheit mit Leben gefüllt werden, genau wie der AIRSPY HF+ nur in
Vebindung mit einem SDR-Programm seine Funktionsfähigkeit entfaltet, dann aber richtig.
Es gibt nun mehrere Programme, mit denen die Hardware zum Leben erweckt werden kann. Ich habe mich für
SDR# (SDRSharp)
entschieden. AIRSPY HF+ und SDR# sind perfekt aufeinander abgestimmt, denn die Entwickler beider Komponenten sind dieselben.
Damit hat man schon alles, was zum Empfang von CW und Fonie benötigt wird. Außerdem ist es ein guter Panoramaempfäger mit
ca. 660 KHz Bandbreite.
Das alles interessiert mich allerdings nicht besonders, mein Hauptaugenmerk liegt auf den digitalen Betriebsarten, PSK und FT8.
Dafür braucht man natürlich noch das jeweilige Programm, z. B.
WSJT-X oder Fldigi. Damit ist aber auch gleich das größte Problem
angesprochen. Die Fenster dieser Programme benötigen Platz auf dem Bildschirm des Monitors. Dieser Platz ist aber bereits von
SDR# belegt. Wie man mit dieser Situation umgeht, bleibt dem Anwender überlassen.
Zur Lösung des Problems gibt es vier denkbare Möglickeiten:
1. Es ist immer nur ein Programm in voller Größe auf dem Bildschirm sichtbar. Normalerweise wird das
WSJT-X sein.
   Nur bei Änderungen an
SDR# wird dieses Fenster aktiviert und überlagert WSJT-X. Mit dieser Lösung müsste sich leben lassen.
2. In
SDR# wird das FFT Display deaktiviert. In dieser freien Fläche werden die Fenster von WSJT-X platziert (Bild 3).
   Die Fenster verschwinden jedoch bei Klicks auf das
SDR#-Fenster. Deshalb sind Maßnahmen erfoderlich, die sicherstellen, dass sie
   ständig im Vordergrund bleiben.
3.
SDR# wird horizontal so weit verkleinert, dass nur noch der Menüabschnitt ganz links übrigbleibt. Ab Version 1655 werden die
   blauen Schieberegler rechts am Rand entfernt, wenn im Menü
FFT Display bei View die Option None ausgewählt wird.
   Das Ergebnis sieht dann ganz ansprechend aus. Leider ist der Verkleinerung dann auch die Frequenzanzeige zum Opfer
   gefallen. Aber es gibt ja noch die von
WSJT-X (Bild 4).
4. Wer glaubt, er müsse alles ständig im Blick haben, nun, auch dem kann geholfen werden. Ein zweiter Monitor, und
   schon ist das Problem glöst.
SDR# mit Spektrums- und Wasserfallanzeige mit wählbarer Bandbreite, ein Empfänger de Luxe.
Zur Verbindung zwischen den Programmen sind noch zwei virtuelle Kabel erfoderlich, eins für die Audioweitergabe und eins für
die serielle CAT-Steuerung.
Für den Audioteil verwende ich
VB Cable, das eine problemlose Installation ermöglicht.
Es erscheint im Gerätemanager ein neues Audiogerät (
VB-Audio Virtual Cable) sowie zwei neue Audio-Ein- und Ausgänge
(
CABLE Input und CABLE Output).

Bild 2


In
SDR# ist der Ausgang auf CABLE Input zu legen, in WSJT-X der Eingang mit CABLE Output zu verbinden, fertig.
Nun muss man noch dafür sorgen, dass Frequenzänderungen in
WSJT-X auch an SDR# weitergeleitet werden, denn von dort wird
der VFO gesteuert. Dafür wird ein Plugin benötigt, das diese Aufgabe übernimmt.

Ich habe CalicoCAT gefunden, ein Plugin, das die Verbindung zwischen WSJT-X und SDR# über ein virtuelles serielles Kabel herstellt.
Dieses Kabel habe ich mit
VSPManager erstellt. Näheres dazu steht auf der Seite RS232.
Die Parameter für die serielle Schnittstelle, die in
WSJT-X einzustellen sind, werden im Plugin in einer kleinen Box angezeigt.
Im Plugin ist nur aus der Liste der verfügbaren seriellen Ports der zutreffende auszuwählen und
Enable zu checken.
Nach Klick auf den Startbutton links oben in
SDR# sollte sich der Wasserfall in WSJT-X mit Signalen füllen..
Beendet werden beide Programme ganz normal mit den Schließen-Buttons..

Bild 3   WSJT-X im Fenster des deaktivierten FFT-Display von SDR#


Fazit: Mit AIRSPY HF+/SDR# hat man einen sehr guten Emfänger, und mit WSJT-X hat man Zugriff auf viele interessante digitale
Betriebsarten. Und wer, wie oben beschrieben, für
SDR# noch einen zusätzlichen Monitor spendiert, spielt in der Luxusklasse mit.
Der ernsthafte SWL ist mit dieser Kombination bestens bedient.

Bild 4: Die Komponenten des Empfängers im Überblick



Auch für diesen Anwendungsfall habe ich ein kleines PureBasic-Programm geschrieben, das die Abläufe automatisiert.
Da ich
WSJT-X ja nicht nur mit dem AIRSPY HF+ betreibe, sondern hauptsächlich mit meinem K3 und weil die INI-Datei in WSJT-X für
beide Geräte unteschiedliche Parameter enthält, habe ich zwei INI-Dateien erstellt und diese
WSJT-X.ini.SDR und WSJT-X.ini.K3 genannt.
Da
WSJT-X aber die Datei WSJT-X.ini erwartet, muss der Dateiname vor dem Programmstart geändert werden.
Als nächstes wird erst
SDR#, dann WSJT-X gestartet. Anschließend werden die Handles der drei Fensters ermittelt.
Um alle Fenster immer im Vordergrund zu behalten, wird
SDR# zum Elternfenster für die beiden WSJTX-Fenster erklärt.. Das sorgt
dafür, dass z. B. beim Minimieren von
SDR# auch WSJT-X verschwindet.
Das Programm bleibt dann in einer Endlosschleife, bis
WSJT-X beendet wird.
Anschließend wird die INI-Datei wieder in
WSJT-x.ini.SDR umbenannt und auch SDR# mit einem simulierten Klick auf den
Exit-Button beendet.

Das Programm

; WSJT-X mit SDR-Empfänger AIRSPY HF+ / SDR#
; DK1IO 2018-2019

EnableExplicit

Procedure SimLClk()
 Define inp.INPUT
 inp      = #INPUT_MOUSE
 inp= #MOUSEEVENTF_LEFTDOWN
 SendInput_(1, @inp, SizeOf(INPUT))
 inp= #MOUSEEVENTF_LEFTUP
 SendInput_(1, @inp, SizeOf(INPUT))
EndProcedure

Define hSDRSharp, hWSJTX, hWdeGrph
Define pSDRSharp, pWSJTX

RenameFile("C:\Users\...\AppData\Local\WSJT-X\WSJT-X.ini.SDR", "C:\Users\...\AppData\Local\WSJT-X\WSJT-X.ini")

pSDRSharp = RunProgram("C:\SDR#-x86\SDRSharp.exe", "", "", #PB_Program_Open)
Delay(750)

pWSJTX = RunProgram("C:\WSJT\wsjtx\bin\wsjtx.exe", "", "", #PB_Program_Open)
Delay(750)

Repeat
 hSDRSharp = FindWindow_(0, @"SDR# v1.0.0.1703 - AIRSPY HF+")
Until hSDRSharp

Repeat
 hWSJTX = FindWindow_(0, @"WSJT-X   v2.1.0   by K1JT")
Until hWSJTX

Repeat
 hWdeGrph = FindWindow_(0, @"WSJT-X - Wide Graph")
Until hWdeGrph

SetParent_(hWSJTX, hSDRSharp)

SetParent_(hWdeGrph, hSDRSharp)

MoveWindow_(hWSJTX, 260, 62, 740, 954, #True)

MoveWindow_(hWdeGrph, 1020, 707, 890, 309, #True)

While ProgramRunning(pWSJTX)
Wend

RenameFile("C:\Users\...\AppData\Local\WSJT-X\WSJT-X.ini.", "C:\Users\...\AppData\Local\WSJT-X\WSJT-X.ini.SDR")
SetCursorPos_(1894, -15)
SimLClk()
SetCursorPos_(992, 540)

 
Zurück zum Seiteninhalt | Zurück zum Hauptmenü