WT-SHF-Switch

Im GHz Bereich werden vielfach Transverter eingesetzt, da die wenigsten Transceiver die GHz Bänder direkt bedienen können. Dazu werden mittels externer Local Oszillatoren und Mischern das Sendesignal von Zwischenfrequenzen im 2m oder 70cm Band in die eigentlichen Sende- und Empfangsfrequenzen umgesetzt.

Im Contest müssen die QSO in dem richtigen Frequenzbereich geloggt werden, außerdem sollte die Bandumschaltung nach dem Anklicken eines Cluster Spots oder Skeds richtig eingestellt werden.

Ein OM aus unserem OV der mitbekommen hat, dass ich so etwas schon mal für meine Eigene Station entwickelt habe ((https://www.dg1atn.de/frequenzanzeige-fuer-ft-817-mit-cat-anbindung-arduino/)) , kam vor einigen Wochen auf mich zu und fraget, ob ich ihn bei der Problematik unterstützen könne.

Seine Anforderungen unterschieden sich aber doch einiges von meinen und so bot es sich an, für seine Anfrage eine neue Bandumschaltung zu entwickeln.

Er verwendet einen IC-7300 mit einem internen 10 auf 2m Transverter. Daher ist im WinTest für alle GHz Bänder der Frequenzoffset so eingestellt, dass der Transceiver die Frequenz im 10m Band übergeben bekommt. Bisher war für die Bandumschaltung in der Steuerbox, welche sich im Check befand, ein manueller Drehschalter vorgesehen. Dieser sollte gegen eine Ansteuerung aus dem WinTest heraus ersetzt werden. Die vom OM gefunkten Bänder sind 23 & 13 cm sowie 10 & 24 GHz.

Da die meisten CAT Protokolle diese hohen Frequenzen nicht unterstützen habe ich mich entschieden für die Bestimmung der aktuellen Frequenz die Daten aus den „STATUS“ Meldungen des WinTest Netzwerkprotokolles auszulesen und damit die Ausgänge eines Arduinos zu beschalten.

Hardware:

Die verwendete Hardware und Beschaltung ist kein Hexenwerk:

  • Arduino Nano mit ATmega328P
  • Nano Ethernet Shield mit ENC28J60

Für die Ansteuerung der einzelnen Transverter war mit dem OM vereinbart worden, dass es für ihn ausreicht, dass jede Frequenz auf je einem Pin gelegt werden. Die Pins sind alle HIGH aktiv, sollten aber im Ausgang noch durch einen Pull Down gestützt und durch einen Transistorstufe verstärkt werden.

Um die Programmierung allgemeingültig auf dieser Webseite für alle Interessenten bereit zu stellen sind folgende Pins mit den entsprechenden GHz Bändern beschaltet. Sollte eure Station diese Bänder nicht mit installiert haben, könnt ich die Ausgänge am Arduino auch einfach nur unbeschaltet lassen.

  • D2 => 1.3 GHz
  • D3 => 2.4 GHz
  • D4 => 3.4 GHz
  • D5 => 5.7 GHz
  • D6 => 10 GHz
  • D7 => 24 GHz
  • A0 => 47 GHz
  • A1 => 76 GHz
  • A2 => 134 GHz
  • A3 => 241 GHz

Software

Auch die Software stellte kein Hexenwerk dar. Zusätzlich zu den Standardbibliotheken aus der Arduino Installation wird noch die UIPEthernet Bibliothek eingebunden. Um die Bibliothek zu installieren ist der Arduino Library Manager ausreichend.

Neben den Basisfunktion setup() und loop() wurde noch eine Hilfsfunktion select_band(pin) geschaffen, die sicherstellt, dass nur eine Bandumschaltung ausgelöst wird, wenn auch eine Bandumschaltung notwendig ist, und dann erst alle Bänder kurzzeitig abgeschaltet werden, bevor das neue Band zugeschaltet wird.

Wenn die Software auf dem Arduino installiert wurde, können über die USB (Seriell, 9k6) Verbindung die notwendigen Einstellungen vorgenommen werden. Eingestellt werden kann die IP des Systems und der Port. Wintest verwendet in der Basisinstallation den Port 9871. Sollten im Wintest Netz mehre GHz Stationen aktiv und die Bänder zwischen den Stationen aufgeteilt sein, kann auch noch die jeweils korrespondierende Station mit konfiguriert werden. Die Konfigurationsdaten sind im eeprom des Arduino hinterlegt und so auch nach dem Reboot noch verfügbar.

In der Funktion loop() prüft der Arduino ob über die Ethernet Schnittstelle ein UDP Paket gelesen werden kann. Ein eingehendes UDP Pakte wird dann analysier ob es mit „STATUS:“ beginnt. Ander Pakete werden verworfen. Ist eine Station hinterlegt, wird im zweiten Schritt der Stationsname geprüft. Schritt 3 wertet die Frequenz des 1. Radios, 1. VFO aus und schaltet danach die entsprechenden Pins. Abschließend wird im loop der Serielle Port geprüft, ob dort neue Konfigurationsdaten anliegen.

Diese kleine aber für die Aufgabenstellung ausreichende Firmware verwendet 20124 Bytes (65%) des Programmspeicherplatzes und 1207 Bytes (58%) des dynamischen Speichers für Globale sodass 841 Bytes für lokale Variablen verbleiben.

Ich hoffe dieser Ansatz bietet dem interessierten Leser genügen Spielraum, um seine eigenen Bedarfe zu erfüllen. Hier findet sich der entsprechende Quellcode.

Dieser Beitrag wurde unter Basteln, DG1ATN veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *