Not1MM je pretekový denník pre Linux a macOS, ktorý vyvíja Mike Bridak, K6GTE. Program je napísaný v jazyku Python 3.11+, grafické rozhranie stavia na knižnici Qt6 a dáta ukladá do databázy SQLite. Šíri sa pod licenciou GPLv3 a podľa zoznamu na GitHube podporuje viac ako 60 pretekov. Vývoj je veľmi aktívny, aktuálna verzia v čase písania nesie označenie 26.10.28.
V článku sa dočítate
Pôvod: osobný projekt dôchodcu
K6GTE netají, že program vznikol predovšetkým pre jeho vlastnú zábavu. Po viac ako 35 rokoch práce v telekomunikáciách (GTE, Verizon, Frontier) odišiel do dôchodku a hľadal náplň voľného času. Ako príležitostný contestman nenašiel pre Linux pretekový softvér, ktorý by mu vyhovoval. Spomína síce Tučňák, ktorý považuje za robustný a vyzretý, ale nebol to program pre neho.
Rozhranie sa otvorene inšpiruje programom N1MM Logger+. Autor však zdôrazňuje, že Not1MM nie je N1MM a nie je určený na spoluprácu s ním. Pakety vo formáte N1MM síce odosiela, ale len pre výsledkové tabule postavené napríklad na Node-RED. Primárnou platformou je Linux a macOS, Windows a BSD autor priamo nepodporuje.
„The worlds #1 unfinished contest logger.“ Podľa autorovej dcéry Coriny.
Video: Not1MM v rozhovore s autorom
Motiváciu aj vnútorné fungovanie programu približuje epizóda 507 podcastu Linux in the Ham Shack. Ide o rozsiahly rozhovor priamo s K6GTE. Nahrávka je len zvuková, takže ju pokojne môžete počúvať popri inštalácii.
Inštalácia pomocou uv
Najjednoduchšou cestou je inštalácia jedným príkazom v termináli: curl -LsSf uvx.sh/not1mm/install.sh | sh. Druhou možnosťou je najprv nainštalovať správcu balíkov uv od Astralu a program spúšťať príkazom uvx not1mm@latest. Trvalú inštaláciu alebo aktualizáciu zabezpečí uv tool install not1mm@latest.
uv pri prvom spustení stiahne najnovšiu verziu, vytvorí virtuálne prostredie Pythonu, doplní potrebné knižnice a všetko uloží do cache. Prvý štart trvá asi minútu, ďalšie sú rýchle a program pri každom spustení kontroluje aktualizácie.
Virtuálne prostredie má praktickú výhodu. Na starších distribúciách s Pythonom 3.10 netreba meniť systémový Python, stačí uvx –python 3.14 not1mm@latest. Rovnako sa dá vrátiť k staršej verzii, ak posledná aktualizácia obsahuje chybu, napríklad uvx –python 3.11 not1mm==23.5.19. Alternatívou je flatpak z GitHub Releases alebo inštalácia cez pipx.
Pred inštaláciou treba cez správcu balíkov distribúcie doplniť:
- Python 3.11+ a PyQt6,
- libportaudio2,
- podľa distribúcie aj libxcb-cursor0, libxslt-devel a libxml2-devel.
Databáza SQLite
Pri prvom spustení program vytvorí databázu ham.db. Nájdete ju v adresári určenom premennou XDG_DATA_HOME, inak v ~/.local/share/not1mm. Konfigurácia leží v ~/.config/not1mm.
Jedna databáza obsahuje nastavenia stanice a ľubovoľný počet pretekových denníkov. Autor pripúšťa oba prístupy: jednu databázu na celý život so stovkami pretekov alebo novú databázu pre každý preteky. Nová sa vytvára cez File > New Database, existujúca sa otvára cez File > Open Database. Keďže ide o jediný súbor, zálohovanie je jednoduché.
Nastavenie stanice, CTY a MASTER.SCP
Po prvom spustení alebo po vytvorení novej databázy sa otvorí dialóg Station Settings. Okrem volacej značky a operátora obsahuje lokátor (4 až 6 znakov), zónu CQ a ITU, zemepisné súradnice, výkon, anténu a jej výšku, ako aj adresné údaje pre hlavičku súboru Cabrillo. Neskôr sa dajú zmeniť cez File > Station Settings.

Pred každými pretekmi sa oplatí aktualizovať súbory CTY a MASTER.SCP cez FILE > Update CTY a FILE > Update MASTER.SCP. Z cty.dat program určuje krajinu, vzdialenosť a Azimut k protistanici. Vyhľadávanie značiek podporuje QRZ.com (vyžaduje platené predplatné) aj HamQTH. Z QRZ.com si program dohľadá aj presnejší lokátor protistanice.
CAT a CW kľúčovanie
Transceiver program ovláda cez rigctld (štandardne 127.0.0.1:4532) alebo flrig (127.0.0.1:12345). README uvádza aj podporu protokolu TCI. Stav spojenia ukazuje farba malej ikony transceivera: zelená znamená pripojené, červená nepripojené.
Pre CW sú k dispozícii tri cesty:
- cwdaemon na porte 6789, vo verziách pre sériový či paralelný port alebo pre čip K1EL,
- pywinkeyer na porte 8000, autorov klient pre WinKeyer (na macOS SwiftKeyer),
- kľúčovanie cez CAT pomocou rigctld, ak to rádio podporuje.
V nastaveniach sa určuje krok zmeny rýchlosti klávesmi PgUp/PgDn (1 až 10 WPM), spôsob vysielania reportu (5NN, 599 alebo ENN) a zarovnanie poradových čísel. Nechýbajú ani skrátené číslice A, N a T namiesto 1, 9 a 0. Pozor na staršie verzie: Hamlib pred verziou 4.6.3 mal problémy s vysielaním CW a nastavovaním rýchlosti.
DX cluster a mapa pásma

V záložke Cluster sa nastavuje server AR Cluster, port a filter spotov. V režime OPEN prichádzajú spoty od spotterov z celého sveta. Pre európsku stanicu je rozumnejšie obmedziť ich filtrom, napríklad set/dx/filter spottercont=eu.
Okno Bandmap triedi spoty a odpracované stanice podľa frekvencie. Pri zapnutom CAT sleduje VFO, ktoré označuje zelený trojuholník, a modrý pruh ukazuje šírku prijímacieho filtra. Kliknutie na spot preladí rádio a vyplní značku. Odpracované stanice sú sivé, ikonka za značkou označuje mód a značky [P] a [S] spoty POTA a SOTA.
Starší Python podľa manuálu nemusí počas rušných pretekov stíhať tok dát z clustera a mapa pásma sa rozíde so skutočnosťou. Riešením je spustiť program s novším Pythonom cez uv.
Okná a nástroje Not1MM
Okno Check Partial počas písania značky ponúka zhody z troch zdrojov. Z MASTER.SCP zobrazuje kandidátov s aspoň tromi zhodnými znakmi od začiatku značky, z vlastného denníka a z posledných spotov zhody ľubovoľnej dĺžky. Kliknutím sa značka prenesie do poľa.
Okná DXCC a Zone zobrazujú odpracované entity a zóny CQ alebo ITU podľa pásiem. Pri zadaní značky sa môžu automaticky posunúť na príslušný riadok. Okno Rate ukazuje tempo spojení.
Okno rotátora je zatiaľ vo vývoji. Pripája sa k rotctld na 127.0.0.1:4533 a zobrazuje aktuálny azimut antény aj smer k zadanej stanici. Tlačidlo Move otočí anténu na cieľ, pravým klikom na dlhú cestu, k dispozícii sú aj Stop, Park a svetové strany.
Makrá a ESM
Makrá na klávesoch F1 až F12 sa upravujú cez File > Edit Macros v systémovom textovom editore. Každý preteky a každý mód (CW, SSB, RTTY) majú vlastný súbor. Zmeny sa prejavia po prepnutí medzi Run a S&P. K dispozícii sú premenné ako {MYCALL}, {HISCALL}, {SNT}, {EXCH}, {LOGIT} alebo {SPOT}, znak # vloží poradové číslo.
Pre SSB slúžia makrá {VOICE1} až {VOICE10} pre hlasové pamäte rádia cez rigctld alebo súbory WAV, napríklad [cq] pre cq.wav. Pribalené fonetické nahrávky NATO dokážu vyhláskovať značku aj report. Predvolené nahrávky však autor odporúča nahradiť vlastným hlasom. Prefixom RI: sa dá do rádia poslať aj priamy CAT/CI-V príkaz.
Funkcia ESM (Enter Sends Message) sa zapína v Configuration Settings > Options. Kláves Enter pošle makro podľa toho, čo je vyplnené, a medzi poľami sa presúva medzerníkom. V režime Run pošle CQ, po zadaní značky jeho značku s výmenou, pri prázdnej výmene AGN a nakoniec TU QRZ so zápisom spojenia. V S&P pošle vlastnú značku, pri chýbajúcej výmene AGN a po jej zadaní vlastnú výmenu so zápisom. Funkčné klávesy musia mať v oboch režimoch rovnakú úlohu.
Digitálne módy v Not1MM
Spojenia z WSJT-X program zachytáva cez UDP multicast na adrese 224.0.0.1:2237, čo funguje bez ďalšieho nastavovania. Spojenia z Fldigi sleduje cez UDP na 127.0.0.1:9876. Klávesy F1 až F12 posiela do fldigi cez rozhranie XMLRPC, ktoré prepne fldigi na vysielanie, odošle text a pripojí ^r na návrat do príjmu. V fldigi treba zapnúť XMLRPC, v CONTESTS > General zvoliť Generic Contest a nastaviť Text Capture Order na CALL Exchange.
Multi-Multi so serverom renfield
Aktuálnym ťažiskom vývoja je prevádzka Multi-Multi. Potrebný je sprievodný projekt renfield, odľahčená terminálová aplikácia, ktorá beží ideálne na samostatnom počítači v tej istej sieti, napríklad na Raspberry Pi. Spravuje databázu, prideľuje poradové čísla, kontroluje duplicity a generuje Cabrillo.
Na pretekových počítačoch sa v záložke Group zvolí pripojenie k serveru a jedna stanica ako hlavná oznámi serveru, aký preteky beží. Ak je v nastaveniach pretekov operátor MULTI-OP a kategória vysielača iná ako ONE alebo SWL, Not1MM si čísla a kontrolu duplicít vyžiada od renfieldu. Renfield môže poslúžiť aj sólo operátorovi ako automatická záloha denníka. Autor zároveň otvorene priznáva, že s Multi-Multi nemá praktické skúsenosti, takže je dobré systém pred ostrým nasadením vyskúšať.
Cabrillo, ADIF a prepočet násobičov
Skóre sa aktualizuje priebežne po každom zápise. Keď sa však opraví chybne zapísané spojenie, môže pribudnúť alebo zaniknúť násobič. Na to slúži funkcia Recalculate Mults v menu Misc, po nej treba súbory Cabrillo a ADIF vygenerovať znova.

Výstup pre vyhodnocovateľova vznikne cez File > Generate Cabrillo a File > Generate ADIF. Súbory sa uložia do domovského adresára s názvom v tvare značka_preteky_dátum_čas s príponou .log alebo .adi.
Záver
Not1MM je pre linuxových contestmanov jednou z mála alternatív k programom viazaným na Windows. Rozhranie pripomínajúce N1MM uľahčuje prechod a funkcie ako ESM, Check Partial, mapa pásma či podpora WSJT-X a fldigi pokrývajú bežnú pretekovú prevádzku. Autor s humorom priznáva, že „testuje v produkcii“, takže pred dôležitými pretekmi sa oplatí program vyskúšať a mať po ruke príkaz na návrat k staršej verzii. Zdrojový kód, používateľská príručka v PDF aj zoznam zmien sú voľne dostupné na GitHube projektu mbridak/not1mm.
