Stand-Alone-WSPR-Bake auf Arduino-Basis
In Bearbeitung
Stand: 30. Mai 2018

Bereits im Jahre 2013 hatte ich mich schon einmal mit WSPR-Baken auf Arduino-Basis beschäftigt [1]. Damals ging es allerdings nur um eine Version, die Tonsignale lieferte und dabei in Verbindung mit SSB-Sendern zu betreiben war. Heute soll es dagegen um eine eigenständig arbeitende sog. "Stand-Alone-Version" gehen.

Grundsätzliches zu WSPR vorab noch einmal kurz zusammengefasst

"WSPR" (engl. ausgesprochen "whisper") steht für “Weak Signal Propagation Reporter”. Dabei handelt es sich um eine von dem Nobelpreisträger Joe Taylor, K1JT entwickelte PC-Software zur Erkennung möglicher Funk-Ausbreitungsbedingungen und Übertragungswege unter Nutzung kleiner Sendeleistungen. Neben der Steuerung von Bakenaussendungen erlaubt diese Software auch eine Auswertung der von anderen Stationen in bestimmten Bandsegmenten empfangenen Daten. Wenn gewünscht, lassen sich diese dann auch Online an einen zentralen WSPR-Server weiterleiten und stehen von dort aus auch allen anderen Netzteilnehmern zum Abruf bereit [5]. Natürlich auch abhängig von der Menge eingehender Empfangsberichte, ergeben sich somit üblicherweise sehr gute Möglichkeiten zur Beurteilung der Leistungsfähigkeit der eigenen Antennenanlage und auch der jeweils aktuellen Ausbreitungssituationen. Kartendarstellungen erlauben dabei eine Übersicht über alle vom System in den letzten Stunden in einem bestimmten Amateurband registrierten Funkkontake. Dabei sind sie bis zu 2 Wochen auch rückwirkend verfügbar. Alle von bestimmten Rufzeichen erfassten Empfangsberichte sind darüberhinaus auch in tabellarischer Form abrufbar.  
So ist es nicht verwunderlich, dass sich "WSPR" in Funkamateurkreisen schon seit vielen Jahren grosser Beliebtheit erfreut. Ursprüngllch als eigenständiges PC-Programm zum Betrieb in Verbindung mit SSB-Transceivern bereitgestellt, ist diese Betriebsart inzwischen Bestandteil der Multifunktionsprogrammsammlung "WSJT-X" [3],[4] und dort neben anderen digitalen Betriebsarten, wie z.B. auch "FT8" aufrufbar.

Im Folgenden soll es nun aber um eine autonom operierende und dabei weder einen externen PC noch einen separaten SSB-Sender benötigende WSPR-Sendebake gehen. Internetverbindungen werden später lediglich zur Abfrage von Empfangsberichten benötigt, so diese nach erfolgten eigenen Aussendungen ( hoffentlich ) eingetroffen sind.

Das Bakenkonzept

In der Grundausstattung setzt sich die Bake aus einem ARDUINO-Board des Typs "UNO" und einem aufsteckbaren sog. Shield mit darauf befindlichem Si5351A-Oszillatorbaustein zusammen. Über eine I2C-Busverbindung steuert ein auf dem UNO-Board befindlicher Mikrocontroller "ATMEL328P" dabei den Oszillatorbaustein und sorgt auch für dessen Modulation zur Übertragung gewünschter Nachrichteninhalte. Im Normalfall beschrängt sich diese allerdings auf Absender-Rufzeichen, ( vierstelligen ) Locator und Feldstärkewert.
Grundsätzlich erlauben die Si5351A ein Generieren von ( ggf. auch mehreren ) Ausgangssignalen beginnend bei wenigen Kilohertz bis zu 160 MHz und mehr. Dabei sind Ausgangsleistungen bis max. etwa 10mW ( +10dBm ) möglich.
Das von mir zur Steuerung verwendete ARDUINO-Programm stammt im Ursprung von Jason Milldrum, NT7S [14], [15], [16]. Von ihm kommt auch die dabei verwendete Library [17]. Neben anderen Schwierigkeiten, auf die noch einzugehen sein wird, erwies sich diese allerdings als nur für Ausgangsfrequenzen bis etwa 30 MHz nutzbar. Damit konnte neben Lang- und Längstwellen aber zumindest auch der gesamte Kurzwellenbereich abgedeckt werden. Auf bestehende Möglichkeiten zur Erweiterung der Bake auch für den Betrieb auf VHF-/UHF-Frequenzen, wird weiter unten noch einzugehen sein.   


Abb.1   Vereinfachtes Blockschaltbild der Bakenanordnung

Abb.1 zeigt ein vereinfachtes Schaltbild der realisierten Bakenversion. 12-14V-Energieversorgung erfolgt über das UNO-Board ( welches aber auch eine 5V-Direktversorgung zulässt ). Zum Aufstecken gibt es frei bestückbare sog. Prototypen-Shields. Auf ihnen lassen sich die in Abb.1 gezeigten zusätzlichen Bauteile, wie z.B.  Si5351A-Baustein [6], Start-Taster und Sende-LED unterbringen. Ein an dieser Stelle ebenfalls verwendbares spezielles Si5351-Shield ist in Abb.2 zu erkennen und hier [11] erhältlich.
Im Schaltbild sind zusätzlich auch noch ein nachgeschalteter HF-Leistungsverstärker ( PA ) und ein Tiefpassfilter ( LPF ) angedeutet. An dieser Stelle infragekommende Verstärker stellen üblicherweise Ausgangsleistungen im Bereich von bis zu einigen Watt bereit. Mögliche Versionen sind z.B. via EBAY aus Fernost erhältlich ( Abb.3 ). Ggf. nutzbar sind aber auch die in [10] und [13] zu findenden Versionen. In jedem Fall ist eine Anpassung der Si5351-Ausgangssignalpegel an den für die jeweils benutzten Verstärker angegebenen Eingangspegelbereich vorzunehmen. Unbedingt erforderlich ist auch das Nachschalten eines Tiefpassfilters, welches dabei abhängig von der benutzten Frequenz zu dimensionieren ist. Derartige Filter sind z.B. hier [7] als Bausatz erhältlich. Wer Selbstbau vorzieht, der findet z.B. in [8], [9] die benötigten Dimensionierungsangaben.


Abb.2  Bakenversion mit speziellem Si5351-Shield-Board, Si5351-Baustein, Tiefpassfilter ( alle von QRP-LABS ),
sowie zusätzlich bestückter Starttaste und Sende-LED


Abb.3  Breitband-Leistungsverstärker mit 2-3W-Ausgangsleistung ( Pin=0dbm ) aus China


Der Bakenbetrieb

WSPR-Bakenbertrieb ist einfach durchführbar, erfordert allerdings sekundengenau einzuhaltende Sendestarts an ( geraden ) Minutenzeitpunkten. Eine Möglichkeit hierzu besteht durch Zuhilfenahme einer beigestellten Funkuhr ( z.B. auf DCF77-Basis ) und Betätigung der Starttaste im richtigen Moment. Diese Methode ist durchaus praktikabel, erweist sich aber auf Dauer als doch wenig komfortabel. Einfacher ist es daher, sich die Startpulse z.B. von dem in [2] beschriebenen GPS-Timer liefern und an den Prozessorport #9 führen zu lassen. Entsprechend vorheriger Festlegung im Programmcode des Timers, werden die für den WSPR-Betrieb gewünschten Startsignale fortan sekundengenau bereitgestellt  ( z.B. alle 10 Minuten mit Beginn in Minute 0, 10, 20, 30, 40 und 50 ). Solange zumindest minimaler GPS-Satellitenempfang besteht, wird ein zeitgenaues Starten der einzelnen WSPR-Aussendungen von nun an völlig selbständig erfolgen können. Während der Sendezeiten ( Länge jeweils ca. 110 Sekunden ) werden dabei sowohl eine auf dem UNO-Board befindliche, als auch eine ggf. an den Portausgang #13 anschliessbare LED zur Kontrolle dauerleuchten.

HINWEIS:
Die Übertragung der WSPR-Nachrichteninhalte erfolgt in Form von Frequenzumtastungen, wobei die verwendeten Hubwerte sehr gering sind und bei nur knapp 1.5 Hz [!] liegen. Beim Abhören der WSPR-Signale mit einem separaten Empfänger wird somit während der langen,  jeweils etwa 110 Sekunden dauernden Sendesequenzen im Wesentlichen nur ein Trägersignal feststellbar sein. In WSJT-X-Wasserfalldiagrammen ( Abb.3a ) sieht man dagegen durchaus auch die modulationsbedingten Frequenzverschiebungen.


Abb.3a  Wasserfalldiagramm eines WSPR-Signals  

Die Bakensoftware

Zumindest bei Verwendung neuerer IDE- und aktueller Si5351A-Libraryversionen [17] brachten alle Kompilierungsversuche mit der Original-Bakensoftware von NT7S nur viele Fehlermeldungen. Ursache hierfür waren offenbar die inzwischen erfolgten Änderungen am Libraryformat. Aus diesem Grunde musste einige der den Oszillatorchip steuernden Quellcodebefehle  zuerst noch modifiziert werden.
Ein Vorteil der neuen Libraryversion besteht aber darin, dass jetzt auf einfache Weise auch Si5351-Betrieb mit solchen Steuerquarzen möglich ist, die eine andere, als die in der Originalversion mit ihren ADAFRUIT-Bausteinen verwendete 25 MHz-Frequenz nutzen. Eine Anpassung der Programmsoftware an 27 MHz-Quarze, so wie sie bei den Si5351-Bausteinen von QRP-LABS [6] ( Abb.4 ) zum Einsatz kommen, war jetzt auf einfache Weise machbar. Die gleiche Befehlszeile beinhaltet jetzt auch mögliche Korrekturwerte zum Ausgleich exemplarspezifischer Frequenzungenauigkeiten. Ohne zusätzliche Korrektur können Frequenzabweichungen, so wie sie hier auftreten, durchaus in einer Größenordnung von 10 Khz (!) und darüber liegen. Nachdem die einzelnen WSPR-Bänder aber jeweils nur 200 Hz-Segmente umfassen, ergeben sich an dieser Stelle nicht unerhebliche Anforderungen in Hinblick auf Frequenzgenauigkeit und natürlich auch Stabilität. Ohne zusätzliche Korrekturmassnahmen wird man somit kaum auskommen. Wie aber schon erwähnt, lassen sich die dazu erforderlichen Werte in einer entsprechenden Programmzeile ablegen. Aber wie können wir die benötigten Korrekturwerte ermitteln?


Abb.4  aufsteckbarer  Si5351a-Baustein von QRP-LABS [6]

Die einfachste Lösung dürfte darin bestehen, sich mit verschiedenen Korrekturwerten an die gewünschte Sollfrequenz heranzutasten und die Ergebnisse dann jeweils mit einem möglichst genauen Frequenzzähler zu messen. Eine andere einfache Möglichkeit zur Frequenzmessung ergibt sich bei Benutzung eines RTL-SDR-Sticks und PC-Software, wie z.B. SDRSharp. Auch hiermit war es mir  möglich, die zum Wechsel auf die gewünschte Frequenz einzusetzenden Korrekturwerte zu ermitteln ( Zur Frequenzverschiebung um mehrere Khz kann dieser Wert durchaus auch einmal in einer Größenordnung von 200000 und darüber liegen ).

Die vom mir modifizierte Version des passenden Arduino-Sketches ist HIER herunterladbar.

WICHTIG:
Zu beachten ist noch, dass im Quellcode keine der WSPR-Frequenzen einzugeben ist, so wie sie üblicherweise zur Verwendung in Verbindung mit SSB-Sendern ( USB-Mode ) angegeben werden, sondern stattdessen eine im Bereich 1400-1600 Hz darüber liegende tatsächliche Arbeitsfrequenz zu wählen ist.


WSPR-Bakenbetrieb auf VHF-Frequenzen

Weiter oben hatte ich schon einmal angedeutet, dass die verwendete Si5351A-Library [17] offenbar nur für Frequenzen bis etwa 30 MHz verwendbar ist. Nachdem die Variable "freq" im Sketch der Bake von UNSIGNED LONG auf FLOAT geändert wurde, liessen sich Bakensignale zwar auch auf höheren Frequenzen erzeugen, aber das dabei erzeugte WSPR-Modulationsformat liess sich zumindest bei mir nicht mehr dekodieren.
Erfolgreiche Tests gelangen dagegen durch Nachschalten von Transvertern, so wie sie z.B. hier [12] preiswert angeboten werden ( Abb.5 ). Auf einfache Weise erlaubten sie das Umsetzen von WSPR-Signalen aus dem 28-MHz-Band auch in höherfrequente Bereiche. Erfolgreich getestet wurde dabei z.B. eine Umsetzung in das 6m-Band. Bei Umsetzung auf weitere VHF/UHF-Bänder könnten dann allerdings Zusatzmassnahmen zur Verbesserung der Frequenzstabiliät des Umsetzoszillators notwendig werden.


Abb.5  Transverterbaustein aus der Ukraine [12];
Versionen von 28 MHz auf 50, 70, 144, 432 MHz verfügbar ( hier 28<>50MHz )


Linkliste

[1] http://www.kh-gps.de/wspr_audio.htm
[2] http://www.kh-gps.de/gps_timer.htm
[3] https://physics.princeton.edu/pulsar/k1jt/wsjtx.html
[4] http://physics.princeton.edu/pulsar/k1jt/wsjtx-doc/wsjtx-main-1.7.0.html#WSPR
[5] http://www.wsprnet.org/drupal/
[6] http://www.qrp-labs.com/synth.html
[7] http://www.qrp-labs.com/lpfkit.html
[8] http://www.qrp-labs.com/images/lpfkit/gqrplpf.pdf
[9] http://www.qrp-labs.com/images/lpfkit/assembly_A4.pdf
[10] http://www.qrp-labs.com/pa.html
[11] http://www.qrp-labs.com/uarduino.html
[12] http://transverters-store.com/
[13] https://www.qrp-shop.biz/epages/qrp-shop.sf/de_DE/?ObjectPath=/Shops/qrp-shop/Products/VQRPPA2008
[14] https://gist.github.com/NT7S/2b5555aa28622c1b3fcbc4d7c74ad926

[15] https://github.com/etherkit/JTEncode
[16] https://platformio.org/lib/show/495/Etherkit%20JTEncode
[17] https://github.com/NT7S/Si5351


E-Mail contact via: