Hämeenlinnan Radioamatöörit ry, OH3AA, on toteuttamassa merkittäviä uudistuksia avoimen lähdekoodin Hamlib-ohjelmistokomponentin toimintaan. Projektille on saatu tukea yhdysvaltalaiselta Amateur Radio Digital Communications-säätiöltä (ARDC). Tuen avulla voidaan hankkia sopivia laitteita tietokoneohjauksen kehittämiseen ja testaamiseen sekä maksaa korvausta ohjelmistokehitystyöstä kehittäjille. Projektin laajuus ja työmäärä on melko suuri ja kestoksi on arvioitu noin 7-9 kuukautta. Kaikki tuella hankitut laitteet ovat kerhon omaisuutta ja jäävät projektin jälkeen kerhon käyttöön! Ohjelmistokehittäjinä toimivat kerhon jäsenet Jouni OH3CUF sekä Mikael OH3BHX.
Kaikki projektin lopputulokset – eli uudet ominaisuudet ja parannukset Hamlibin toiminnassa – ovat ilmaiseksi kenen tahansa käytettävissä, koska on kyse avoimen lähdekoodin ohjelmistosta. Avoimuus ja yleishyödyllisyys ovatkin olennainen osa ARDC-tuen vaatimuksia.
Miten voin seurata projektin etenemistä tai osallistua siihen?
Projektin rakenne on jo dokumentoitu korkealla tasolla tällä Hamlibin GitHub-projektisivulla. Kaikki projektiin liittyvä tekninen keskustelu käydään linkin osoittamilla GitHub-sivuilla ja projektin tulokset (lähdekoodi ja dokumentaatio) julkaistaan siellä. Keskusteluun voi osallistua kuka tahansa GitHubissa (tarvitset vain ilmaisen GitHub-tunnuksen), joten projektin kehityssuuntaan (sen yksityiskohtiin) voi vaikuttaa ja projektista voi antaa rakentavaa palautetta.
Mikä Hamlib on?
Hamlib on matalan tason ohjelmistokomponentti, joka huolehtii amatööriradioiden (”rigien”), antenninkääntäjien eli rotaattorien sekä lineaarivahvistimien tietokoneohjauksesta (”CAT-ohjaus”). Se on käytössä mm. suosituissa digimodeohjelmissa, kuten WSJT-X, JTDX ja fldigi – eli esimerkiksi kaikki suositulla FT8-digimoodilla pidetyt yhdeydet tapahtuvat siten, että Hamlib ohjaa laitteistoa taustalla! Hamlib on käytännössä ainoa laajassa käytössä oleva avoimen lähdekoodin komponentti tähän tarkoituksen.
Miten Hamlibia kehitetään ja miksi?
Projektilla on kaksi tavoitetta:
- Parantaa Hamlibin toimintavarmuutta olennaisesti kehittämällä sitä varten automatisoitu testausjärjestelmä, jonka avulla voidaan varmistaa eri laitteiden ohjauksen toimivuus.
Tällä hetkellä Hamlibin kehityksessä on merkittävänä haasteena se, että laitteiden CAT-ohjausta kehitettäessä ei ole olemassa järjestelmällistä eikä automattista tapaa testata, että tehdyt muutokset toimivat luotettavasti eivätkä riko joitain muita toimintoja tai esim. saman laitevalmistajan muiden radiomallien ohjausta. Tilanne on johtanut siihen, että uusissa Hamlib-ohjelmistoversiossa on ollut enenevässä määrin rikkinäisiä ominaisuuksia (bugeja / ”regression”) toiminnoissa, jotka aiemmin ovat toimineet. Testausjärjestelmällä siis pyritään parantamaan ohjelmiston laatua ja luotettavuutta merkittävästi.
Automatisoidut testausrutiinit ovat arkipäivää ohjelmistokehityksessä, mutta niiden kehitys ei välttämättä ole aina kovin suoraviivaista, etenkin kun toimitaan laitteiston ohjauksen kanssa – mikä lienee myös syynä, että Hamlibin testaus on jäänyt yksittäisten käyttäjien ja kehittäjien manuaalisen testauksen varaan. - Kehittää ohjaustuki lähiverkko-ohjatuille sekä ohjelmistopohjaisille (software-defiend radio, SDR) amatööriradioille.
Uusissa amatööriradiomalleissa käytetään usein sarjaporttiohjauksen lisäksi tai sen sijaan tietokonenohjausta lähiverkon (Ethernet) kautta. Lisäksi monet uudet radiomallit ovat ohjelmistoradioita (SDR), jolloin niiden käsittelemä vastaanotto tai lähetysdata ei ole enää pelkkää ääntä (audio) vaan I/Q-kvadratuurisignaalidataa.
Hamlibissä ei ole juurikaan tukea lähiverkko-ohjatuille radioille eikä ollenkaan tukea SDR-ohjelmistoradioille. Tämä alkaa olla esteenä jo nyt saatavilla olevien radiomallien ohjaukselle.
Projektissa on tavoitteena luoda puitteet Hamlibiin sujuvalle lähiverkko-ohjaukselle (CAT, audiotietovirrat) sekä ohjelmistoradioiden käyttämille I/Q-tietovirroille. Käytännön toteutuksena projektissa kehitetään tuki FlexRadion radiomalleille sekä Icomin lähiverkko-ohjausta tukeville radioille (IC-7610, IC-9700, IC-705 …).





















