Einfaches RTTY-CODEC-System auf Basis von
ARDUINO und ANDROID

In Bearbeitung
Stand: 20. Oktober 2017

  automatic translation by GOOGLE:
https://translate.google.com/translate?sl=de&tl=en&js=y&prev=_t&hl=de&ie=UTF-8&u=http%3A%2F%2Fwww.kh-gps.de%2Frtty.htm&edit-text=&act=url

Die Idee kam mir bei Versuchen zur Ausgabe und Auswertung von Morsesendungen mithilfe von ARDUINO-Prozessoren und ANDROID-Smartphones, An anderer Stelle [1] hatte ich darüber schon ausführlich berichtet. Die elektronische Auswertung empfangener Morsesendungen konnte mich dabei allerdings nie richtig zufriedenstellen. Das Hauptproblem dürften dabei die bei Zeichenempfang zu verarbeitenden unterschiedlichen Geschwindigkeitswerte sein. Günstiger liegen die Verhältnisse dagegen im Falle der Übertragung von RTTY-Signalen. Obwohl mancherorts bereits totgesagt, ist dieses schon viele Jahrzehnte bekannte Übertragungsverfahren immer auch noch zum Austausch von z.B. Textmessages geeignet. Ehemals grossvolumige Endgeräte lassen sich heutzutage durch moderne Computertechniken ersetzen. Neben z.B. Laptops können hierfür auch preiswert erhältliche Mikrocontrollerboards und ANDROID-Smartphones bzw. Tablets genutzt werden, womit sich äusserst kompakte, mobil einsetzbare Einheiten realisieren lassen. Mikrocontroller dienen dabei der Signalverarbeitung, während die Datenein- und ausgabe z.B. über Smartphones/Tablets erfolgen kann.


Abb.1   realisierte RTTY-CODEC-Einheit


Empfangsseite

Abgewandelt vom bereits erwähnten Konzept eines Morsedecoders entstand eine Einheit zum Empfang von RTTY-Aussendungen. Die Unterschiede beschränken sich dabei im Wesentlichen auf die verwendete ARDUINO-Software. Um auch RTTY-Signale mit Mark/Space-Tonfrequenzen von 1275Hz/1445Hz decodieren zu können, genügte auf der Hardwareseite die Änderung lediglich eines Kondensatorwertes ( C5 in Abb.2 ) am Tondecoderbaustein "LM567"


Abb.2   Gesamtschaltbild der CODEC-Einheit

Die von seinem Ausgang bereitgestellten RTTY-Tastsignale werden von einem ARDUINO-Baustein des Typs "Pro-Mini" weiter verarbeitet und stehen danach als serielle ASCII-Zeichenfolgen an seinem UART-Ausgang zur Verfügung. Zu weiteren Bearbeitung können sie von hier aus via z.B. Bluetoothfunk an ein Smartphone/Tablet gesendet und dort mit einem der hierfür verfügbaren Terminalprogramme zur Anzeige gebracht werden. Als Option ist aber auch eine Direktanzeige ankommender Zeichenfolgen mithilfe eines über Prozessorausgänge angeschlossenen Standard-16x2-Zeichen-LCDisplays möglich.
Im Ursprungszustand ist die verwendete ARDUINO-Software auf die Verarbeitung des RTTY-Signalformates abgestimmt, so wie es im Amateurfunkbetrieb üblicherweise zur Anwendung kommt. Passend dazu arbeitet auch die weiter unten noch zu beschreibenden Sende- bzw. Encodereinheit. Genutzt wird eine Baudrate von 45.45 Bd. mit festgelegter Datenlage für Mark- und Spacefrequenzen.
Die verwendete ARDUINO-Empfangssoftware stammt ursprünglich von JI3BNB aus Japan [3], wurde aber von DD0CW und mir modifiziert und auch erweitert. Zwei zusätzliche Taster erlauben jetzt die Auswahl zwischen verschiedenen gebräuchlichen Baudraten ( 45.45, 50, 75, 100, 110 und 300 Bd. ) und zwischen normaler oder inverser Datenlage.
Damit ist auch die Verarbeitung von Signalen kommerzieller Sender möglich, wozu beispielsweise die KW- und LW-Aussendungen des DWD ( Deutschen Wetterdienstes ) gehören ( siehe Abb.3 ). Zur weiteren Nutzung werden die gewählten Betriebseinstellungen auch im EEPROM-Bereich des Prozessors abgelegt, was sich in der Praxis als sehr nützlich erwiesen hat.


Abb.3   Auswertung empfangener RTTY-Signale des DWD mithilfe eines Terminalprogrammes am ANDROID-Smartphone/Tablet

Die am seriellen UART-Ausgang des Prozessors mit einer Datenrate von 9600bps bereitstehenden Ausgangssignale können direkt einem Bluetoothmodul, wie z.B. dem weit verbreiteten "HC-06" an dessen RxD-Eingang zugeführt werden. Verbindungen zwischen Smartphone/Tablet und Modul werden dabei immer ausgehend von Erstgenannten aufgebaut. Dazu musste vorher einmalig ein Pairing ( siehe am ANDROID-Gerät: Einstellungen/ Bluetooth ) zwischen beiden Einheiten erfolgt sein. Bei anschliessendem Start eines Terminalprogrammes am ANDROID-Gerät wird eine Liste der dem Gerät bekannten Bluetoothpartner aufrufbar sein. Hierunter sollte sich auch unser "HC-06" finden und zum Aufbau einer Datenverbindung anwählen lassen. Von der Decoderseite ankommende ASCII-Zeichenfolgen sollten anschliessend auch im Eingangsfenster des Terminalprogrammes sichtbar werden. Das beispielsweise von mir an dieser Stelle favorisierte Terminalprogramm ist unter dem Namen "Bluetooth Serial Controller" aus dem GOOGLE Play Store herunterladbar. Es erlaubt dabei sogar einen automatischen Wordumbruch und ein Zeilenscrolling nach gefülltem Fensterinhalt, womit sich ein gut überschaubares Darstellungsbild ergibt.

Sendeseite

Am unteren Bildschirmrand genannten Terminalprogrammes befindet sich eine Eingabezeile für aussendbare Texte ( siehe Abb.3 und Abb.4 ). Ihre Ausgabe erfolgt allerdings erst nach Betätigung der Taste "SEND", so dass sie bei Bedarf auch schon während des Empfangsbetriebes vorgeschrieben werden können.
Eine Besonderheit des verwendeten Terminalprogrammes sind dessen fünf zusätzliche Tastenfunktionen, die den Direktabruf vorabgespeicherter Zeichenfolgen mit je max. 64 Zeichen erlauben. Hierbei kann es sich z.B. um häufig benötigte Folgen, wie CQ-Rufe, Testsendungen und Stationsvorstellungen handeln. 


Abb.4  Empfang eigener Testaussendungen nach Herstellung einer zusätzlichen Drahtverbindung zwischen Encoderausgang und Decodereingang.

Ausgesandte ASCII-Zeichenfolgen sind nach Bluetoothübertragung auch am TxD-Ausgang des "HC-06" verfügbar. Ihre Weiterverarbeitung übernimmt ein zweiter ARDUINO-Prozessor des Typs "Pro-Mini" *. Auch der hierbei benutzte Programmcode stammt im Ursprung wieder von JI3BNB, wurde aber von OK1HRA [2] nachbearbeitet und von mir an die vorliegende Anwendung angepasst. Er erlaubt Zeichenausgaben in Form von 45.45 Baud-RTTY-AFSK-Signalen unter Verwendung der Töne 1275Hz und 1445Hz. Zusätzlich wird während ihrer Ausgabezeiten auch ein PTT-Signal bereitgestellt, worüber sich bei Bedarf ein angeschlossener Sender tasten lässt. Für z.B. Handfunksprechgeräte lassen sich beide Signale auch in gewohnter Weise kombinieren. Wird diese Funktion nicht benötigt, sollte Widerstand "R*" unbestückt bleiben.
Am KEY-Ausgang sind darüberhinaus auch RTTY-Tastimpulse verfügbar. Bei vorliegender Anwendung dienen sie allerdings lediglich zur Steuerung einer LED-Anzeige.

* Erste Versuche zur Nutzung nur EINES Prozessors sowohl für die Decoder-, als auch für die Encoderfunktion verliefen aufgrund von Kollisionsproblemen im Timing erst einmal negativ, sollen aber irgendwann noch einmal angegangen werden.

Nutzungsmöglichkeiten

Encoder und Decoder arbeiten mit RTTY-Tonsignalen, deren Frequenzen im Sprachbereich der menschlichen Stimme liegen. Damit sind zu ihrer Übertragung generell alle Funkgeräte geeignet, die Sprachübertragung erlauben. Im einfachsten Fall können das z.B. ( FM- ) Sprechfunkgeräte für die VHF- und UHF-Bereiche sein. Bei SSB-Betrieb ist dagegen sicherzustellen, dass die Empfangsfrequenz so eingestellt wird, dass nach Signalverarbeitung am Empfängerausgang anliegende RTTY-Tonsignale möglichst in der Mitte des Fangbereiches vom verwendeten Tondecoderbaustein und damit um 1360 Hz liegen. Als Abstimmhilfe eignet sich dabei die am Ausgang des Tondecoders angeordnete Leuchtdiode. Bei korrekter Empfängereinstellung wird sie im Takte ankommender Signale flackern.

Erste Inbetriebnahme ( Kurzschlussbetrieb )

Für einen ersten Funktionstest sind AFSK-Ausgang und -Eingang auf der Platine vorübergehend miteinander zu verbinden. Weiterhin sind die beiden Einstellwiderstände "P1" und "P3" etwa in Mittelstellung zu bringen. Nachdem die Versorgung des Bausteins eingeschaltet wurde, sollten auf beiden Pro-Mini-Boards die Power-LED's leuchten. Weiterhin sollte die LED auf dem Bluetoothmodul blinken. Wurde anschliessend, wie schon oben beschrieben, ausgehend vom Smartphonne/Tablet eine Bluetoothverbindung aufgebaut, so sollte die LED auf dem BT-Modul in den Zustand des Dauerleuchtens wechseln.
Zum Testen von Textübertragungen können gewünschte Zeichenfolgen jetzt in die Ausgabezeile des Terminalprogrammes geschrieben und mit der Taste "SEND" abgerufen werden. Bei bestehender Bluetoothverbindung sollte "LED2" der Encodereinheit jetzt im Takte übertragener Zeichen blinken. 
Durch die zwischen Encoderausgang und Decoder hergestellte zusätzliche Drahtverbindung gelangen ausgehende AFSK-Tondaten derzeit direkt an den Eingang des Tondecoders mit dem "LM567". Hier gilt es nun mithilfe von "P2" die optimale Frequenzeinstellung ( Frequenz wiederum um 1360 Hz ) zu finden. Dazu ist es allerdings erforderlich, dass auf der Decoderseite mit den zum Encoder passenden Betriebseinstellungen ( 45.45 Baud; invers ) gearbeitet wird. Diese sind im Decoder-EEPROM abgelegt und werden von dort jeweils bei Programmstart ausgelesen. Sollte Unklarkeit hinsichtlich dieser Werte bestehen, so können sie durch Betätigung der Taster "S1" und "S2" auch erneut angewählt und im Eingangsfenster des Terminalprogrammes sichtbar gemacht werden.
Die optimale Einstellung von "P2" hat bei laufendem Datenempfang zu erfolgen und sollte eine fehlerfreie Text-Rückübertragung in Richtung Terminalprogramm ( bzw. Anzeige an einem direkt angeschlossenen LC-Display ) bewirken.
Hilfreich beim Einstellen ist dabei auch die Anzeige durch "LED1". Der gesamte Vorgang erfordert ein wenig Fingerspitzengefühl, wozu ggf. auch das Testen unterschiedlicher Signal-Eingangspegel gehören kann.
Für den Regelbetrieb ist die Verbindung zwischen AFSK-Ein- und Ausgang selbstverständlich wieder aufzutrennen. Abschliessend sind die Pegelwerte an den Ein- und Ausgängen a
bhängig von den verwendeten Peripherieeinheiten entsprechend anzupassen.

Software

Die zugehörigen ARDUINO-Sketche sende ich gern auf Anfrage

 
Abb.5  Platinenlayout des RTTY-Codecs  ( Platinenherstellung: http://www.dh4ym.de
)

Linkliste

[1]  http://www.kh-gps.de/cw.htm
[2]  https://remoteqth.com/serial2fsk.php
[3]  http://k183.bake-neko.net/ji3bnb/page13.html

E-Mail contact via: