OK1UFC, České Budějovice, JN78fx, dne 19.01.2018:

 
Kontrolér malé EME stanice desktop - verze Windows

Úvod

Malému EME Projektu jsem věnoval více než rok času. Se zkonstruovanými komponenty jsem realizoval první spojení, některé detaily a začátečnické zásady jsem popsal právě na těchto stránkách. Velkou část konstrukcí EME UHF Small projektu jsem realizoval, jak se říká: "na koleně", chcete-li, jak tady tomu říkám: "vidláckým způsobem". Několik věcí mi kazilo radost:

1. Ručně ovládaná malá anténa na fotografickém stativu.
2. Řízení stanice pro EME, které bylo poplatné době vzniku. Tedy skoro žádné, a to v době, kdy jsem pro KV měl z tabletu (Android) dálkově řízenou staničku.

Modernizace se týkala obou zmíněných věcí.

Ovládání antény

Ovládání antény jsem vyřešil pomocí tzv. montáže astronomického dalekohledu s USB ovládáním (http://www.skywatcher.com/, systém SynScan Pro App, původně jsem si to přál bez systému ovladačů ASCOM). Vyzkoušel jsem zatím jen dvě varianty, které lze použít pro maličkou montáž AZ SynScan a druhou pro nádherný polární Star Adventure). Program jednou částí nahrazuje např. tzv. SkyWatcher ručku. Montáže Skywatcher jsou krásně vyrobené věci. Proto jsem si udělal radost, koupil jsem si to a upřednostnil proti jiným systémům směrování antén.

Řízení stanice

Na řízení stanice jsem si napsal tento program pro desktop. Pojmenoval jsem ho "EME small station controller OK1UFC". Jako cíle jsem si dal tyto vlastnosti:

1. Program se bude připojovat k TCVRu (a také k druhému SDR přijímači) pomocí seriového portu (přes USB FTDI).
2. Z programu půjde pustit komunikační aplikaci WSJT-X.
3. WSJT-X nebude připojené do TCVRu, ale do virtuálního COM portu tohoto kontroléru.
4. Program nahradí všechny funkcionality tzv. sekvenceru a bude generovat všechny potřebné časové posloupnosti. Tyto nebudou vyvolané z WSJT-X, ale od času.
5. Program bude dekódovat signál NMEA a/nebo z SNTP serveru a bude přesně synchronizovat čas v PC. Taky dodávat info o poloze (používá se při výpočtu AZ/EL).
6. Program bude počítat nastavení azimutu a elevace (nebo tracking data pro polární montáž) a bude řídit směrování antény.
7. Program bude počítat Doppler a automaticky řídit kmitočet TRXu při spuštění vysílání (od naladění RX na přijímaný signál). Protože se TRX neřídí z WSJT-X, lze nastavení TX frekvence dělat před zahájením vysílání (povel posílám do TCVRu v 58 sekundě a zpět pro RX v 55 sekundě).

Alfa verze

Alfa verzi jsem dokončil nedávno. Částečně jsem některé algoritmy vyzkoušel na podzim roku 2017. Stav je teď následující:

ad 1. Funguje. Program výborně ovládá TRX Icom (nebo pomaleji Kenwood TS-2000). Protokoly Icom jsou dobré. SDR jsem zatím nerozchodil (nemám hlavu na prokousání se algoritmy některých ovladačů pro SDR).

ad 2. To je bez potíží. WSJT-W spouštím ve Windows pomocí příkazu Shell z adresářů WSJT-X.

ad 3. Funguje výborně. Program emuluje na virtuálním portu TRX Icom a WSJT-X to nepozná, pracuje s ním jako s  Icomem.

ad 4. Kupodivu fungovalo bez problémů. Jde o triviální věc.

ad 5. To bylo jednoduché. Časová základna je přímo z NMEA (GPS) nebo doma z SNTP serveru (používám CESNET server). Nic není odvozováno od WSJT-X, vše se řídí mezi 54 až 59 sekundou přímo programem, podle toho, zda je režim "jen RX", "První minuta" nebo "Druhá minuta".

ad 7. Výpočet Doppler, AZ, ELevace je bez problémů, pomohli známí, neuměli jsme to bez použití ovladačů ASCOM, které používá program SynScanProWindows (používají to astronomové).

Zkušenost

V jednom z contestů jsem zkusil zavolat se Small station Zdeňka OK1DFC. Neuvěřitelné, ale očekával jsem přesné naladění a Zdeněk slyšel moje slaboučké QRP mezi podstatně silnějšími stanicemi (pásmo 432 MHz, anténa yagi délky 2.2 metru, výkon 80 Wattů, JT65). Takže jsem udělal první nedomluvené EME spojení s OK1DFC big gun pomocí QRP staničky. Žádné chatování, žádný internet. Jak vidíte, EME jde i s QRP.

Jak ta hračka vypadá?

Jde o tzv. alfa verzi. Proto omluvte mnoho nedostatků:
1. Nemám napsané konfigurační menu, dost věcí se proto čte při startu programu z tzv. textového ini file. Informace, se kterými se dělá, jsou všechny v jednom okně.
2. Pravá část je česká, protože jsem kód převzal z jiného svého programu. Byl vidlácký a bohužel, musel zůstat v této verzi v češtině.
3. Levá (větší) část má 3 hlavní oblasti:

První část nahoře slouží k puštění rádií a k puštění programu WSJT-X. Také se tu ukazuje naměřené napětí obou zdrojů.
Druhá část je indikační a v políčkách problikávají zaškrtnutí a ukazují, jak nám sekvencer postupně zapíná (nebo vypíná) přijímače, předzesilovače, relé, aktivuje PA a budiče, přepíná relé antén, zobrazuje, která časová synchronizace je aktivní, ukazuje naměřené výkony na směrových odbočnicích u koncového stupně, teploty na chladiči, apod.
Třetí část je od toho, aby se dalo nastavit sledování měsíce (nebo slunce, nebo polárky, nebo majáku). Jsou tu vidět také hodnoty směru hlavního laloku antény (AZ/EL) a také tady jde hejbat s kmitočtem vysílače (krok 1 kHz) a nastavit vypočtení a naladění Doppleru (pro EME) při TX, pokud jsme naladěni na RX spektrum.


Čtvrtá oblast je nezajímavá. Koncept mého Small projektu je založen na ovládání z PC. V této části jsou tedy obyčejné "spínačky", kterými lze zapnout napájecí zdroje TRXu a Outdorového boxu. Software jsem, bohužel, napsal už někdy v roce 2010. Docela vidlácky a když jsem ho tady nakopíroval, tak jsem zjistil, že mu budu muset věnovat trochu času, aby byl jazykově neutrální.

Program spínačky může běžet na jiném PC. Na obrázku vpravo je puštěn pod Win 10 na "rodinném" PC, které se nevypíná. Spínačkama zapínám PC v hamovně a napájecí zdroje pro RX a TX.

Obrazovka ho zachytila zapnutý v sobotu, v 17.52 32 hodin, běžící od půlnoci v pátek a vypnul by se v 18.00 hodin.

Program je napsán jako týdenní spínačky. Pokud potřebujeme více časových intervalů, klikneme na nenápadný nápis (+) add další (nápis je bílý, je pod políčky Zapni Vypni a není na světle šedé ploše vidět, trochu je vidět u Kontroléru). Po kliknutí nám program naramluje sám sebe a vyleze další okno, po více kliknutích více oken a tam si můžeme naprogramovat jiné doby zapnutí a vypnutí zdrojů a také PC s kontrolérem stanice.

 

Jak to funguje s dalším zařízením stanice?

1. Každé zařízení stanice je připojené k sériovému portu přes USB (FTDI převodník).
2. V nejjednodušším zařízení, jako jsou napájecí zdroje TCVRu, zdroj řídícího PC, jsou mikrokontroléry (typ PICAXE08M2) s relé (které spíná, rozpíná).
3. Ve složitějším zařízení (outdoor skříň s PA, směrovými odbočnicemi, teploměry, voltmetry a sekvenčně řazenými relé) je složitější mikrokontrolér s více výstupy, více AD převodníky a s více kontakty. Zase však jen komunikuje protokolem s řídícím PC.
4. Po sériovém portu běží komunikace s jednoduchým protokolem, který vymysleli a začali používat v Icomu. Protokol umí adresovat více zařízení. V ovládacím programu musí být protokol nastaven. Např. u externích spínaček je to vidět, používá se COM 12, adresa číslo 37 (to je zdroj TCVRu), baud rychlost 9600, atd ... Pro informaci tu ještě ukážu obrazovku jednoduchého testeru instrukcí Icom protokolu, který jsem před léty napsal na zkoušení Icomů. Z obrázku je vidět struktura protokolu:
a) dvakrát FE FE (hexadecimálně), to je preambule protokolu;
b) adresa rádia (76 má Icom 7200);
c) adresa kontroléru, který vysílá (E0);
d) data 1A a 04 reprezentují příkaz (netuším, jaký, musel bych se podívat do manuálu Icomu);
e) data 01 01 reprezentují hodnoty k předchozímu příkazu;
f) křídelní znak FD na konci příkazu; příkazy mohou být různě dlouhé, proto je obrazovka testeru delší :-)

Struktura protokolu Icom je jednoduchá, srozumitelná a použitelná rovněž pro jiná zařízení, která si sám vyrábím a přiděluji jim své adresy, příkazy, subkomandy a data. Značky jiných TRXů používají jiné protokoly.

Takže, se zařízeními kontrolér funguje pomocí Icom protokolů. S paralaktickou nebo AZ/EL montáží pomocí ASCOM protokolu (stejné, jako u ovladače SynScanProWindows), s časovou synchronizací pomocí NMEA nebo SNTP protokolů a s rádiem pomocí virtuálního sériového portu. S SDR rádii to zatím nemám vymakané. Jiné potřebné programy na PC to spouští pomocí instrukce Shell.

Závěry

Nejsem programátor. Proto tohle řešení je vidlácké a bude vidlácké. Funguje mi to s Windows 7 i s  Windows 10. Na Win 10 pozor, často ramlují disky (aktualizují se) a zrovna v tom čase, když to nejvíc potřebujeme, nemakají. Moon nepočká. Kompilátory by měly zvládnout Linux a IOS (až trochu firmám zaplatím za licence, teď se mi nechce). Ve Windows lze tohle řešení ovládat dálkově. Program funguje nějakou dobu docela spolehlivě. Lze se spolehnout, že se rozběhne po startu z PC ve všech komunikačních kanálech. Rozběhne se i po hibernaci systému.

Komfort na EME stanici

Toho si cením nejvíc. Nemusím se starat o nastavení  AZ/ELE antény, ani o Doppler, ani o sekvence spínání, ani nezapomenu zapnout napájecí zdroje.
Doppler lze samozřejmě řídit bez tohoto kontroléru přímo z WSJT-X. Bohužel, např. u Kenwooda TS-2000 trvá dost dlouho, než se všechny instrukce nacpou z PC do rádia. Vlastní vysílání, myslím, začíná opožděně a to může zadělat na další problémy s dekódováním u protistanice. Tady mám sekvence přesně odvozené přímo od přesného času a rádio lze připravit na vysílání JT65 dříve, než s pomocí WSJT-X.

Článek nemůže být návodem. Na psaní SW nemám ani dovednosti a ani tým, se kterým bych mohl rychle konzultovat nebo sdílet zkušenosti. Nemám dokonce ani představu, do jakého stádia program chci a  mohu dotáhnout a nemám ani příliš času, abych mohl některé detaily základů počítačového bakalářství prezentovat, či konzultovat. Nechť je tedy popisem mé částečně realizované představy a třeba jen inspirací pro zdatnější hamy.

Poznámka: Několik hamů reagovalo na tento článek s přáním, zda bych neuvedl alespoň kousek kódu z použitých algoritmů. Jenže kód by měl publikovat jen dobrý programátor. To já v žádném případě nejsem. Kód by měl být komentovaný. Nicméně, není v mých silách kousky kódu ukazovat v editoru individuálně, proto jsem vybral jeden dílčí algoritmus sekvenceru, který jsem zkoušel v malém prográmku samostatně. Listing programu, demoverze spustitelného programu a pokus o popis některých algoritmů je zde.

 

TU 73, Mira, ok1ufc