KAM+ se vyráběl v letech 1988 až 98, poslední verze firmware je 8.2. Kdo se chtěl na začátku 90. let věnovat vážně digitálním módům na krátkých vlnách, pro toho byl KAM+ jasná volba. Tehdejší situace rozhodně nebyla tak růžová jako dnes, Internet pro domácnosti byl naprosto nedostupný, takže digitálním módům kralovalo packet rádio na VKV v rychlosti 1200 Bd (AX.25) a na KV to bylo RTTY, někdy vylepšené o delší kódování jako ASCII, packet rádio v 300 Bd a provozy s potvrzováním příjmu AMTOR a PACTOR I (tzv. ARQ módy). Digimódy také v té době měly společné to, že byly založeny, na nepříliš efektivní modulaci, dvoustavové klíčování kmitočtu (FSK/AFSK), tj. jednomu kmitočtu odpovídá 0 (SPACE), jinému patřičně vzdálenému zase 1 (MARK). KAM+ s firmware min. verze 8.0 také umožňuje připojení GPS přijímače, který komunikuje přes RS232 standardem NMEA-0183 (National Marine Electronic Association), ale je nutné mechanicky přepínat mezi komunikací s PC a GPS RX.
V době největší slávy KAM+ se modemy nebo TNC (terminal node controller) dělily na hloupé a chytré. Ty hloupé posílaly surová modulační data přímo na port PC, které softwarově, měřením času mezi průchody nulou detekovalo kmitočet a převádělo modulaci na data (Hamcomm, Baycom).
Chytré TNC měly procesor a A/D, D/A převodníky, někdy i DSP procesor, a centrální procesor který se postaral o zpracování signálu už v sobě. Ke zpracovaným datům se pak člověk dostal nejčastěji připojením k TNC po sériové lince (RS232) buď z počítače nebo terminálu. KAM+ je zástupcem chytrých TNC.
Jeho unikátnost spočívá v tom, že se jedná o dvouportové TNC, s jedním portem pro KV a druhým pro VKV, které je možné se speciálním software běžícím v tzv. host módu, obsluhovat souběžně. Je tedy možné např. sledovat DX cluster na packet rádiu a zároveň komunikovat digi na KV. Je také možné mezi těmito porty přeposílat data. KAM+ umí pracovat i jako samostatná BBS a zprávy ukládat do své interní paměti 128 kB. BBS je dostupná jak pro KV/VKV packet, tak i pro *TOR módy. Případně funguje jako digipeater a připojené stanice mohou přes něj komunikovat (jiné TNC od firmy Kantronics, KPC-9612 takto dlouhá léta fungovalo na vesmírné stanici Mir). V 90. letech byla na KV dostupná řada BBS jak pro packet nebo PACTOR a např. bylo možné přes ně posílat a přijímat emaily, což oceňovali jachtaři nebo radioamatéři mimo dosah VKV packetu. KAM+ se ve své době prodával okolo $350.
A teď k tomu, co se s KAM+ dá dělat i po 20. letech. V radioamatérské praxi se vývoj přesunul především k použití zvukové karty jako modemu a nadupané PC pak obstará zpracování dat, ať už audiosignálu a nebo přes softwarově definované rádio z širší oblasti vf. pásma. To dalo za vznik novým druhům digimódů s lepšími modulacemi než je FSK, např. PSK31. Tady si KAM+ už nevrzne, takže zbývá pouze RTTY v radioamatérských pásmech, při poslechu profesionálních služeb se kromě RTTY dá vyžít i ASCII, AMTOR/SITOR a příjem WEFAX ve dvou barvách, na VKV se pak dá využít pro APRS. Ostatní módy jsou na pásmech zdá se historií.
Další věc, kde KAM+ zaostává je ladící indikátor, který tvoří LED bar s 10 diodami, při ladění pak blikání dvou krajních diod značí správně naladění na AFSK kmitočty MARK/SPACE. Např. u monitoringu RTTY služeb, kde je použitý odlišný zdvih se pak dá zdvih odhadnout pouze pokusem-omylem (navíc např. zdvih 450 Hz už KAM+ nedekóduje a je nutné nastavit MARK/SPACE ručně). Na spektrálním analyzátoru nebo vodopádu v programech pro zvukovku jsou tyto parametry okamžitě k vidění.
Na druhou stranu přístup přes terminál v GNU/Linuxu umožňuje provádět různá kouzla jako např. přesměrování přijatých dat a rovnou je zpracovat dalším programem (který si ale člověk musí umět napsat sám :). Dále je možné KAM+ různě přeprogramovat a nastavit si svoje vlastí parametry MARK, SPACE, zdvih a modulační rychlosti pro RTTY, ASCII, SITOR/NAVTEX (u software se člověk musí většinou spolehnout, co mu tvůrce SW naservíruje). Pro RTTY jsou dostupné i další kódy, takže kromě ITA-2, je možné použít i LCRTTY (obsahuje jak velké tak i malé znakyú), MARS (Military Affiliate Radio System), je možné vymaskovat určité bity u scramblovaných RTTY/ASCII kódů. KAM+ umí dále dekódovat i vysílat i telegrafii, je ovšem nutné ručně nastavit rychlost slov za minutu, u příjmu pak s přesností ±20 WPM.
Díky tomu, že KAM+ je léty prověřené zařízení s odladěným firmware nestává se u něj, že by náhodně klíčovalo, odčas mu ustřelil samplovací kmitočet nebo vydávalo různé nechtěné zvuky, což je nešvar za který uživatelé Windows většinou nemohou, ale stává se to a na pásmu je občas k vidění :(
Zapojení HF konektoru v manuálu je dost zmatečné, takto je to mnohem pochopitelnější:
Pin Označení Funkce 1 AFSK Transmit audio 2 GND Ground 3 PTT Push-to-Talk 4 KEY CW Key line 5 FSK FSK output 6 RCV Receive audio 7 RCV Receive audio 8 XCD External carrier detect |
označení GNU/Linux | označení DOS, Windows |
---|---|
/dev/ttyS0 | COM1 |
/dev/ttyS1 | COM2 |
/dev/ttyS2 | COM3 |
/dev/ttyS4 | COM4 |
Pokud používáte převodník USB/RS-232, zařízení je označeno jako /dev/ttyUSB*.
Jednou z podstatných věcí je, zda uživatel pracující v systému má právo čtení a zápisu do souboru odpovídajícímu seriovému portu. Zjistit práva je možné příkazem ll /dev/tty{U*,S*}, po jeho provedení může být výpis na terminálu např. tento:
crw-rw----. 1 root dialout 4, 64 Nov 22 15:56 /dev/ttyS0 crw-rw----. 1 root dialout 4, 65 Nov 20 22:58 /dev/ttyS1 crw-rw----. 1 root dialout 4, 66 Nov 22 14:32 /dev/ttyS2 crw-rw----. 1 root dialout 4, 67 Oct 18 14:39 /dev/ttyS3 crw-rw----. 1 root dialout 188, 0 Nov 22 16:07 /dev/ttyUSB0
Ve výpisu je vidět, že právo čtení a zápis (rw) má pouze uživatel root a uživatelé ze skupiny dialout. Pokud uživatel nepatří ani k jednomu musí root nastavit práva pro čtení a zápis ostatním, pro COM1 pomocí:
chmod 666 /dev/ttyS0
Lepší způsob je přidat uživatele do skupiny, ale změna skupiny se projeví až po opětovném přihlášení do X11 a nebo shellu. Příkaz pro přídání uživatele bruxy do skupiny dialout je:
usermod -a -G dialout bruxy
Pomocí příkazu id bruxy ověříte uživatelovy údaje.
Výpis souboru /proc/tty/driver/serial:
serinfo:1.0 driver revision: 0: uart:16550A port:000003F8 irq:4 tx:2 rx:0 1: uart:ST16650V2 port:0000C800 irq:16 tx:14 rx:0 RTS|DTR 2: uart:ST16650V2 port:0000C400 irq:17 tx:14909 rx:447084 fe:22 brk:3311 RTS|CTS|DTR|DSR 3: uart:unknown port:000002E8 irq:3
V mém případě, ve výše uvedeném výpisu, položka 0 je COM1 umístěný na motherboardu, 1 a 2 jsou porty na PCI-E rozšiřující kartě MosChip Semiconductor Technology Ltd. PCIe 9912 Multi-I/O Controller.
Po připojení USB převodníku se ve výpisu dmesg objeví např.:
ch341 1-4.4.1:1.0: device disconnected usb 1-4.4.1: new full-speed USB device number 36 using ehci-pci usb 1-4.4.1: New USB device found, idVendor=1a86, idProduct=7523 usb 1-4.4.1: New USB device strings: Mfr=0, Product=2, SerialNumber=0 usb 1-4.4.1: Product: USB2.0-Ser! ch341 1-4.4.1:1.0: ch341-uart converter detected usb 1-4.4.1: ch341-uart converter now attached to ttyUSB0
Toto zařízení ve výpisu lsusb je levný převodník za $2 z DealExtreme:
Bus 001 Device 036: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Nejjednodušší cesta jak se připojit přes sériový terminál je pomocí linuxového PuTTY, protože je klikací a obejdete se bez manuálové stránky. Takže místo telnetu nebo SSH vyberte v menu Session serial, nastavte port a rychlost a je téměř hotovo. V kategorii Terminal->Keyboard ještě nastavte The Backspace key Control-H, on totiž Backspace pak sice správně maže písmenka na obrazovce, takže vše vypadá ok, ale do KAM+ jsou pak poslána chybná data. Případně v KAM+ je možné nastavit DELETE $7F, takže backspace pak funguje jak má. Při běžícím session, se menu vyvolá stiskem Ctrl+pravé tlačítko myši, takže některá nastavení pak můžete změnit v průběhu.
Screen podporuje také seriovou linku, připojení se provede pomocí:
screen -h 1000 /dev/ttyS2 9600,cs8
Pomocí -h se nastaví počet řádku v historii výpisu. Listování v historii se pak vyvolá sekvencí Ctrl+a [ a skroluje se pomocí Ctrl+p a Ctrl+n nahoru a dolu. Screen se ukončí pomocí Ctrl+a k.
Linuxový přístup k hardwarovým zařízením jako k souborům funguje i pro sériový port. Parametry jako rychlost, počet bitů nebo parita se nastavuje pomocí stty. Následující skript čte a zapisuje na daný port, takže je možné ho použít také pro ovládání KAM+ v terminálovém režimu.
Stisk ENTER v terminálovém emulátoru posílá návrat vozíku (<CR> carriage return, $OD, decimal 13, <Ctrl-M>, ENTER key), takže, aby KAM+ zareagoval je nutné za příkazem odeslaným na port ještě přidat \r.
PORT=/dev/ttyS2
SPEED=9600
stty -F $PORT ispeed $SPEED ospeed $SPEED -ignpar cs8 -cstopb -echo
# ispeed -- vstupní rychlost
# ospeed -- výstupní rychlost
# -ignpar -- ignore parity error (odpovídá nastavení žádná parita)
# -cstopb -- posílá jeden stop bit
trap 'echo -e "\n- Ctrl-c disabled, press Ctrl-d for quit. -"' SIGINT
cat < "$PORT" &
RPID=$?
while read cmd; do
printf "$cmd\r" > "$PORT"
done
kill $RPID
Celé to funguje tak, že se nastaví parametry portu stty. Poté se odchytí stisk kombinace Ctrl+c (signál SIGINT), to proto aby se při stisku Ctrl+c program neukončil, při SIGINT se pak jen vypíše informační text. Poté se na pozadí pustí čtení z portu a uloží se PID tohoto ko-procesu. Ve smyčce se načítají řádky, které se posílají na port i se zmíněným \r. Pokud uživatel stiskne Ctrl+d, příkaz read to vyhodnotí jako ukončení vstupu, smyčka skončí a na závěr se ješte ukončí ko-proces ($RPID).
V DOSBoxu je také možné využít programy přistupující na RS-232, v konfigurační souboru ~/.dosbox/dosbox-0.74.conf mám nastaveno:
[serial] serial1=directserial realport:ttyS2 serial2=dummy serial3=disabled serial4=disabled
To znamená, že zařízení v DOSu budou nakonfigurována na COM1, který se fyzicky připojen na /dev/ttyS2. Další nastavení portu se už řeší přímo daném v dos. programu.
Následující software bez problémů funguje v DOSBoxu:
KAM+ po studeném restartu (jumper K6) nebo prvním spuštění spustí Autobaud Routine, kdy na port posílá následující hlášku v různých rychlostech:
PRESS (*) TO SET BAUD RATE
Takže po připojení přes terminál, pokud uvidíte tuto hlášku, stačí stisknout tlačítko * a KAM+ si nastaví parametr ABAUD. Na portu jsou podporované rychlosti: 300, 600, 1200, 2400, 4800, 9600.
Pokus je KAM+ v HOST módu na obrazovce se objeví: └└S00└ (v kódování CP-437, odpovídá to posloupnosti bytů decimálně: 192, 192, 83, 48, 48, 192). Pro vypnutí je nutné odeslat: └Q└ (192, 81, 192), to se provádělo v DOSovém terminálu kombinací ALT+číslo na numerické klávesnici. Po odeslání posloupnosti se KAM+ vrátí do příkazového režimu.
V Linuxu je možné HOST mód vypnout posláním výše uvedených bytů přímo na port, v printf jsou zadány hexadecimálně:
#Nastavení portu stty -F /dev/ttyS2 ispeed 9600 ospeed 9600 -ignpar cs8 -cstopb -echo # Odeslání sekvence pro vypnutí HOST módu printf "\xc0\x51\xc0" > /dev/ttyS2