439100-yo7jyl

439.100 MHz sau Repetor RoLink pe Vf. Teasc-Borsec

Este un proiect RoLink foarte interesant, dar care a avut puțintel de așteptat. Noi, cei implicați, îl voiam dus la îndeplinire încă de anul trecut însă, nu am reușit să ne adunăm. Din cauza pandemiei și poate… a vieții, n-a fost dat să urcăm împreună pe Vf. Teasc, de deasupra localității Borsec.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec

Așa cum am mai povestit aici pe blog, startul acestei aventuri a fost dat în urmă cu doi ani când, la o trecere pe lângă Borsec, am primit o invitație din partea lui Nelu – YO6FCD de a-l vizita, împreună cu Cătălin.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec
Nelu – YO6FCD

Dumnealui se afla la altitudinea de 1400 metri, nu în altă parte, decât la releul de televiziune din județul Harghita, mai exact pe Vf. Teasc.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec

La momentul respectiv, ne-am văzut, ne-am plăcut, iar viitorul suna bine. De ce? Pentru că alături de Nelu, puneam la cale instalarea unui nod fix RoLink, dar și a unei camere web cu vedere spre apus. Peste câteva luni se ducea la îndeplinire acest obiectiv, prin contribuția unor colegi radioamatori cu suflet mare. Singura problemă care a apărut a fost aceea că, nodul montat atunci era în banda de doi metri, pe 145.337,5 Mhz, iar radiofrecvența locală, generată de emițătoarele de radiodifuziune, pur și simplu îi îneca recepția.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec

Toate testele făcute au dus la același rezultat, anticipat de altfel, dar totuși a meritat efortul. Asta deoarece, ne-a ambiționat să continuăm eforturile de a avea RoLink pe înălțimi, simulând și aria sa mare de acoperire.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec
Simulare arie acoperire VHF
439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec

Practic, prin ideea lui Răzvan – YO6NAM, s-au pus bazele construcției unui repetor în banda de 70 centimetri, cu care să evităm problemele de recepție cauzate de câmpurile respective. Repetorul care a luat naștere, s-a comportat foarte bine și în alte locații, după care a așteptat cuminte data din calendar, când aveam să-l urcăm pe munte.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec
Repetor RoLink

Echipa era alcătuită din mine… YO7JYL, Cătălin – YO7GQZ și Răzvan – YO6NAM cu care ne-am întâlnit la QTH-ul lui de lângă Brașov.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec
Organizare

De cu seară, am pus la punct toate cele necesare instalării și am încărcat în mașină repetoarele, antenele, truse de chei și suportul antenei cărat de la Pitești. Chiar dacă Nelu avea de toate din punct de vedere tehnic, am zis că este mai bine să le luăm cu noi.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec

De ce spun “repetoarele”? Pentru că, de fapt erau două: într-adevăr, unul destinat rețelei RoLink, iar celălalt, pentru modul digital, în rețeaua BrandMeister. Cel analogic era programat pentru frecvența originară, adică cea cu care a început și rețeaua RoLink… 439.100 MHz, CTCSS 103,5 Hz, shift -7,6. Cutiuța digitală era programată pentru frecvențele de emisie 439.875 MHz și recepție 431.875 MHz.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec
Repetoare în testare… la nivelul firului de iarbă

N-aș vrea să intru prea mult în detalii tehnice, deoarece toate informațiile se vor regăsi pe site-ul www.xpander.ro. Ceea ce pot să spun cu certitudine este faptul că echipamentele sunt construcție proprie, toate testele s-au efectuat cu o săptămână înainte de urcarea lor pe munte, iar în tot lanțul sistemului, s-au folosit cele mai bune componente.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec

Revenind… spre disperarea mea, noaptea se anunța una destul de scurtă, deoarece trebuia să ne trezim devreme. Aveam aproximativ 200 de kilometri până la Borsec, toată lucrarea trebuia făcută în totalitate în aceeași zi, plus drumul de întoarcere la Brașov. Desigur că Nelu ne rugase (ba chiar insistase) să stăm măcar două zile, nu puteam din motive obiective.

Deși nu se luminase de ziuă, la ora 5.30 AM, a trebuit să ne pregătim, deoarece la ora 7 AM, voiam să fim punctuali la reședința colegului de echipă. Somnoroasă și supărată pe viață, m-am instalat în dreapta lui Cătălin și ne-am pus în mișcare pe drumul spre Borsec. După aproximativ 20 minute eram în fața casei lui, împreună cu care am pornit spre releul de televiziune aflat pe Vf. Teasc.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec

I-am lăsat pe băieți în față, iar eu m-am mutat pe bancheta din spate, ca să privesc prin geamul mașinii. Soarele se ridica agale peste dealurile brașovene și tot somnoroasă, mă gândeam cât de norocoși suntem. De ce? Pentru că toată săptămâna urmăriserăm prognoza meteo, care pentru ziua de sâmbătă, varia de la descărcări electrice violente și până la ploaie torențială. Frumos! Și totuși, eram prea hotătâți ca să mai amânăm pentru cine știe când… și foarte pasionați să vedem finalizat proiectul Borsec. Altfel, desigur că aveam cu noi pelerine de ploaie și eram pregătiți pentru vreme urâtă pe munte. Simplu… în aparență.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec

Cum spuneam, norocul ne surâdea, ca și soarele de la mijlocul lui august. Contrar așteptărilor meteo, el anunța o vreme frumoasă peste zi. De fapt, pe parcursul dimineții, verificând din nou prognoza pentru Vf. Teasc, zarurile atmosferei aruncaseră către pământeni o probabilitate destul de mare de ploaie, dar după 18.00. În condițiile astea, totul era minunat, deoarce eram convinși că vom termina treaba până atunci.

La o oră atât de matinală, până și drumul era liber, iar punctul final ales pe navigație era Pasul Chiozrez, aflat în apropierea releului radio-tv. De la șosea, am cotit dreapta pe drumul forestier pentru aproximativ zece kilometri, iar după ieșirea la golul alpin, am ajuns în Pasul Chiozrez. De acolo, în linie dreaptă se vedea releul de televiziune, dar am mai parcurs câțiva kilometri până la clădirea lui.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec

Nelu a ieșit bucuros în întâmpinarea noastră, pentru a ne ajuta la descărcarea bagajelor din mașină. Pe Răzvan nu-l știa, deci a fost momentul potrivit pentru a-l cunoaște.

Ne-am strecurat printre mioarele care își fac veacul la stâna din apropiere, iar dulăii ciobănești s-au asigurat că suntem oameni buni, înainte de a deveni prietenoși.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec

Oamenii noștri erau puși pe treabă, așa că fără nici un moment de pauză, Cătălin a pregătit suportul de antenă pentru a fi urcat pe pilon, iar Răzvan asambla mufele pentru cabluri. Nelu era într-un permanent du-te… vino, ca să îi ajute pe colegii mei.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec
Cei trei mușchetari

Practic, până la o înălțime de 30 metri față de sol, Cătălin a urcat suportul pe pilonul care avea să găzduiască cele două antene ale repetoarelor.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec
Cătălin
Răzvan

A venit și rândul antenelor, amândoi făcând mai multe urcări pe pilon, împreună cu Nelu.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec

În tot acest timp, Răzvan a fixat mufele pentru cabluri, a măsurat, a făcut teste și s-a asigurat că totul este în regulă. Și apoi? El a pornit repetoarele, care se odihneau pe iarba de lângă pilon, pentru a le face ultimele teste chiar acolo, la fața locului. Despre asta le povesteam și radioamatorilor, nu de alta, dar aveam nevoie de controale riguroase pentru recepție. Era perfect… sau cel puțin așa ne-au spus Dan – YO3DEL, Laurențiu – YO7EPY, Ștefan – YO7LPT, Sergiu – YO6IOG (pe DMR, în modul digital), Adi – YO4PEA, Laur – YO4FZV, Ovidiu – YO7MPI, Vasi – YO8VAS, Sergiu – YO8ESO, Ionuț – YO9LIG/P, Cătălin – YO3JBF/P.

Am avut parte de vreme minunată, cu soare arzător, care nu ținea cont de altitudine. Partea boemă din mine, se bucura tot de ființele mărunte apărute în peisaj.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec

Ne ținea companie și Mura, prietenul canin al lui Nelu.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec
Mura – Cane Corso

Am stat împreună pe iarbă, explicându-i ce fac baieții acolo sus și ajutându-i cum puteam pe prietenii noștri: ba un control pe radio, ba o vorbă bună, ba un zâmbet, ba un șurubel acolo unde trebuia sau “o cheie de 8”, solicitată la timp.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec
Sttt!!! Pantera neagră îmi păzea bocancii

Doar că în depărtare, în jurul orelor 17.00, norii începeau să se adune, iar din când în când, se auzeau tunete surde. La fel spunea și aparatul lui Răzvan, cel care detectează descărcările electrice.

Cam tot atunci a terminat și Cătălin treaba pe pilon, însă nu înainte de a urca și eu… îi trebuia recipientul de spray cu vopsea albastră pentru finisare și deci, “copilul de mingi” s-a mobilizat.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec
Salutări de la 30 m deasupra solului

A urmat montarea repetoarelor în incinta clădirii, printre alte echipamente, de care Nelu se ocupă cu mare grijă de vreo 33 de ani încoace. Ultimele QSO-uri cu radioamatorii, au demonstrat că treaba era făcută la modul profesionist, așa că gândul nostru se îndrepta firesc, spre momentul plecării.

Ploaia începuse binișor, iar Nelu nu ne-a lăsat să pornim la vale până când nu mâncăm. Evident că planurile sale mărețe în privința noastră, fuseseră spulberate de faptul că noi nu puteam rămâne acolo peste noapte. Totuși, i-am promis pentru o dată viitoare, recompesa grătărușului cu bunătăți. După o masă rapidă și bucuria că toate ne-au ieșit la fix, o ultimă poză marcată de zâmbete, a însemnat rămas bun.

YO7GQZ, YO6FCD, YO6NAM, YO7JYL

Ploaia și descărcările electrice s-au întețit pe tot parcursul drumului spre Brașov, de parcă ne urmăreau. Aflați în mobil, scopul nostru era unul precis și categoric… acela de a face legături radio. Cu cât ne îndepărtam, voiam să testăm aria de acoperire a noului repetor RoLink instalat la Borsec. Eram și foarte curioși… fie vorba între noi.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec
Arie acoperire repetor RoLink UHF

Astfel, ne-am putut auzi cu Nelu până dincolo de Miercurea Ciuc, așa că rezultatele depășesc așteptările pe care le aveam înainte de instalarea propriu-zisă.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec
Distanță Vf. Teasc – locația mobilă unde ne aflam în timpul QSO-ului cu YO4PEA

Tot ca o surpriză a ariei sale de acoperire, Bogdan – YO3IXW, aflat în portabil pe Vf. Penteleu, deci la aproximativ 159 km în linie dreaptă fată de Vf. Teasc, a putut accesa repetorul lui Nelu. Noi l-am auzit în rețea cu un control de Q3, Q4. Minunat, nu?

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec

Eram foarte bucuroși, dar și obosiți… cu momente de exaltare, râs, până când seara și noaptea ne-au găsit tot pe drum. În apropiere de Brașov, ploaia s-a potolit, iar în jurul orelor 22.00, îl salutam pe Răzvan, cu bucurie în priviri… făcuserăm treabă bună.

Proiectele de acest gen vor continua, cu aceeași dorință de a contribui la extinderea rețelei RoLink. Ne caracterizează transparența cu care am pornit pe acest drum, dominați de ambiția că iată… se poate. Suntem mânați de simplitate și modestie, dorința de evoluție, dar mai ales de această pasiune pentru radio și, să nu uităm, ideile comune care ne-au adus împreună.

439.100 Mhz sau Repetor RoLink pe Vf. Teasc-Borsec

 ’73

Cristina – YO7JYL

Interfaţa hibrid pentru RoLink

RoLink_PCB_OPiZ_v3_hibrid

Anul 2021 a fost unul plin pentru reţeaua RoLink şi evoluţia acesteia, evoluţie la care am participat cu toţii, se observă şi continuă să ne bucure.
S-a demonstrat ca accesul la reţea se poate face şi uşor, dar în acelaşi timp şi ieftin. Ne-a confirmat exerciţiul care s-a dovedit a fi unul practic, eficient şi popular, acela de a achiziţiona, în grup, mare parte din necesarul pentru un nod portabil/mobil bazat pe Orange Pi Zero şi modulul rf SA818.
Pentru o recapitulare, vă recomand să (re)citiţi articolul RoLink gratis

În urma afluxului de noduri conectate la RoLink, construite conform schemei din articolul la care am făcut referire mai sus, s-au constatat şi remediat o parte din problemele ce au fost uşor de identificat.

Versiunea 1 (pcb verde), având la bază schema concepută de Evgeniy (UR5TLZ) a suferit o modificare pe care o consider critică, aceea de introducere a filtrului ceramic în lanţul de radio frecvenţă. Mai târziu, s-a descoperit lipsa decuplării pe pinul MIC_IN-N de pe Orange Pi Zero însă din păcate, versiunea 2 (pcb roşu) fusese deja comandată şi distribuită celor care au solicitat un PCB (populat sau nu).

Pentru următoarea revizie a cablajului imprimat, îmi propusesem să-l modific şi să fac loc componentei lipsă, dar din experienţa anterioară (dezamăgitoare) cu nodurile fixe, de putere, care utilizează Orange Pi PC şi un alt model de interfaţă, am hotarât să transform ce aveam deja şi mergea bine, într-o placă eficientă, flexibilă şi potrivită nu doar pentru modul portabil/mobil. Aşa s-a născut versiunea 3 (hibrid).



Schema electronică a fost modificată prin adăugarea lui C2 (560nF) care, aşa cum spuneam mai devreme, rezolvă problema preluării şi amplificării zgomotului de radio frecvenţă pe circuitul de microfon al Orange Pi Zero.
Pentru a minimiza zgomotul provenit din sursa de alimentare (riplu) s-a introdus C10 pentru decuplarea componentelor de joasă frecvenţă şi C9 pentru componentele de înaltă frecvenţă. Eficienţa filtrului, însă, nu poate compensa orice trompetă de alimentator, prin urmare recomandăm selecţia atentă a alimentatorului folosit (riplu cât mai redus).

Au fost efectuate decuplări pentru semnalele de înaltă frecvenţă pe traseele principale, predispuse la preluare de zgomot, fiind introduse C5,C6,C7 şi C8.

Valoarea rezistenţei R3 a fost revizuită prin ajustarea celei iniţiale de 1k la 2.2k, în scopul îmbunătăţirii calităţii audio la receptie, în spectrul frecvenţelor medii-joase.
Modificarea spectrului frecvenţelor superioare (audio dinspre RF, spre reţea) se poate face prin ajustarea C5 (valori recomandate : 560pf pentru o modulaţie mai cristalină, până la 1000pF pentru un spectru mai natural).
Accentuarea spectrului de frecvenţe medii-joase se poate face prin modificare valorii condensatorului C4 de la 470nF la 680nF.

Tranzistorii bipolari utilizaţi în vechea schemă au fost înlocuiţi (la sugestia lui Cătălin YO7GQZ) cu varianta prepolarizată a acestora, lucru care ne-a economisit spaţiul pe cablaj, făcând loc celorlalte componente adăugate.

A fost introdusă D1 care are rol de a proteja tranzitorul responsabil de activarea GPIO pe Orange Pi la momentul intrării în recepţie a staţiei mobile (în funcţie de modelul folosit, poate varia între 4V – 7V).

RoLink_PCB_OPiZ_v3_hibrid_A

Am adăugat conectorul UF.L/IPX (X2) pentru a facilita montarea ansamblului în interiorul cutiilor metalice, cu posibilitatea utilizării unui patch (UF.L-SMA), montare pe panou.

Flexibilitatea este oferită ce CN1, R10 şi R11, care atunci când se doreşte utilizarea unei staţii mobile, pot fi populate în locul SA818 şi poate tranforma nodul dintr-unul mobil/portabil, într-unul fix/de putere.
În configuraţia aceasta, se pot omite componentele pentru partea de RF (filtru ceramic, conector UF.L şi SMA).

Testul practic l-am facut cu o Motorola GM340 iar nivelele audio sunt suficient de mari pentru a obţine un reglaj corect al modulaţiei, atât pe intrarea de microfon a Orange Pi Zero, cât şi pe intrarea staţiei mobile, pe pinul 5 (Flat TX Audio). În caz contrar, pinul 2 (Ext Mic Audio) ne-ar fi permis să injectam nivelul insuficient iar apoi să-l amplificăm folosind selecţia de “Gain” din configuraţia CPS.

Pentru că pinul 6 de pe conectorul CN1 nu avea o utilitate, ideea lui Laur YO4FZV s-a dovedit a fi una excelentă, prin urmare am ales ca destinaţie a acestui pin, +5V pentru a facilita alimentarea ansamblului Orange Pi Zero / Interfaţa hibrid dintr-o sursă externă, diferită de cele clasice cu mufa microUSB.



Ca şi până acum, plăcile au fost comandate de la JLCPCB, calitatea este excepţională şi testele efectuate pentru ambele variante (SA818 / fix, de putere, Motorola GM340) au produs rezultatele scontate.

Îmbunătăţirile descrise în acest articol au contribuit la modificarea listei de componente (BOM), pe care am refăcut-o şi o găsiţi aici.
Restul resurselor rămân aceleaşi ca în trecut, cu precizarea ca RoLinkX Dashboard va fi modificată în viitorul apropiat pentru a putea face selecţia între cele două moduri de utilizare (SA818 / fix).

Imaginea de OS pentru Orange Pi Zero este disponibila aici.

Bonus : Exemplu configuraţie pentru Motorola GM340. Descarcă de aici.

Cum te putem ajuta :

Iţi punem la dispoziţie cablajul imprimat (15 RON / PCB)
Poţi opta pentru comanda unui PCB pre-asamblat (fară SA818) cu componentele SMD în mai multe variante de configurare.



Ce poţi face (deja) singur :

Să-ţi creezi un cont aici.
Să începi să te bucuri de hobby şi de “ham spirit”, aşa cum o facem noi, cei din spatele RoLink – www.439100.ro

Pentru că la acest proiect au participat mai multe persoane, dorim sa le mulţumim următorilor :
Mihai (schema electronică, design PCB) – 0721 254 126
Cătălin (YO7GQZ), Laur (YO4FZV), Dan (YO3DEL)

Mult succes!
Razvan / YO6NAM

Nod RoLink deasupra norilor – Vf. Teasc – Borsec

Nod RoLink deasupra norilor – Vf. Teasc – Borsec

Povestea montării acestui nod RoLink este scrisă dintr-o perspectivă cumva… diferită. Asta deoarece, eu nu am participat efectiv și deci este văzută prin prisma a ceea ce mi-a relatat Cătălin – YO7GQZ.

Este de fapt îndeplinirea proiectului instalării unui nod RoLink pe vârful Teasc aflat desupra localității Borsec.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec

La altitudinea celor aproape 1400 m este Releul de Televiziune, vegheat de peste treizeci de ani de către Nelu – YO6FCD.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec

Istoria acestui nod RoLink s-a născut din excursia mea alături de Cătălin, hoinărind prin țară în vara acestui an. La invitația dumnealui de a-l vizita la înălțime, adică în locul atât de drag lui, ne-a împărtășit dorința de a instala un nod RoLink acolo.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec

În singurătatea muntelui, dar printre posturile de radio si televiziune pe care le monitorizează în permanență, cu siguranță ar fi fost altceva, dacă ar asculta și ar vorbi cu radioamatorii din rețea.

Bucuria a fost reciprocă deoarece ne făcea plăcere să îl putem ajuta în acest sens, iar eu i-am propus și montarea unei camere web cu vedere spre zări.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec

În răstimpul acesta, noi cei din echipa fanilor RoLink, ne-am mobilizat, așa încât până la venirea frigului și a unei eventuale zăpezi, nodul și camera să fie funcționale în locația de pe Vf. Teasc.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec

Conform zicalei „dar din dar se face Rai”, Răzvan – YO6NAM ne-a dat o stație ICOM IC-F110 programată pentru frecvența 145.3375 MHz, Bogdan –  YO3IXW avea pregătit un Orange PI, iar Cătălin – YO7GQZ antena, cablul, sursa, cutia pentru ele și desigur… camera web.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec
Nod RoLink Vf. Teasc – Borsec

După ce toate au fost pregătite, Cătălin a stabilit un sfârșit de săptămână în care eu eram ocupată cu serviciul și alături de Bogdan și Mirel – YO4OMG s-au găsit într-un trio ce vroia să mute munții.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec

La ora 7.30 AM, Cătălin a pornit din Pitești pe drumul spre Brașov, iar Bogdan și cu Mirel au plecat din București, cu punct intermediar de întâlnire la Dâmbul Morii. Echipa odată întrunită a făcut un popas la QTH-ul lui Răzvan, după care s-au pus în mișcare pentru că, nu-i așa? Aveau în față un traseu destul de lung, spre Sfântu Gheorghe, Miercurea Ciuc, Ghiorghieni, Toplița, Borsec și în final cei zece kilometri de drum forestier ce urcă prin pădure și gol alpin, până la poarta Releului de TV de pe Vf. Teasc.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec

În jurul orelor 18, Nelu – YO6FCD i-a așteptat cu inima deschisă, dornic de a se afla în compania unor oameni buni, cu gânduri mari și plan de acțiune bine pus la punct.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec
YO6FCD, YO4OMG, YO7GQZ, YO3IXW

În timp ce Nelu făcea cunoștință cu Bogdan și Mirel, deoarece se vedeau pentru prima dată, portbagajul de la Duster se golea încet – încet. Cutiile cu diverse unelte, aparate și cabluri, inclusiv suport pentru antenă de care, până la urmă  nu a fost nevoie, se mutau în clădirea releului.

Mirel deja s-a apucat de treabă și a pus mufa la cablul de antenă, iar după ce au stabilit planul de bătaie pentru a doua zi, Nelu le-a pregătit cina celor osteniți după atâtea ore de drum.

Dimineața zilei de sâmbătă promitea să țină cu RoLink, așa că soarele a urcat binișor temperatura din aer, în timp ce în vale ceața lăsa o atmosferă tristă și rece.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec

Mirel n-a mai avut răbdare, dornic să vadă antena și camera web montate pe pilonul de lângă clădirea releului.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec
YO4OMG

Cu alte cuvinte s-a urcat pe scara din interiorul pilonului până la înălțimea de douăzeci de metri, după care, printre celelalte antene de radio și televiziune, a făcut loc și pentru antena nodului RoLink. Și camera web a fost prinsă de pilon și orientată spre Toplița.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec
YO6FCD, YO4OMG

După orele prânzului au început primele teste radio și… primele imagini cu zările. Era oarecum de așteptat ca semnalul să fie înecat de radiofrecvența celorlalte antene ale releului, iar colegii mei s-au gândit la soluții pentru remedierea acestei probleme.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec

Partea cea mai grea, aceea de testare a nodului, a fost destul de neplăcută, deoarece de la Pitești, îi dădeam lui Cătălin controale zgomotoase de Q3 datorită radiofrecvenței. Testele efectuate în banda VHF nu s-au ridicat la înălțimea așteptărilor, așa că într-un final, a rămas ca Nelu să schimbe poziția antenei pe pilon.

Instalarea nodului RoLink și a camerei web se voiau încununate cu un grătar delicios ca și importanța proiectului, în mirosul de brad accentuat de altitudinea la care ei se aflau.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec

Cele două patrupede ale lui Nelu, Mura și Lola au stat în permanență cu oaspeții, iar joaca de care aveau chef mai tot timpul, a asigurat atmosfera de bună dispoziție.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec
Mura, Lola

Altfel, după oboseala zilei de sâmbătă, cu stat afară, urcat de nenumărate ori pe pilon, întins cablurile și toate testele radio făcute până după apus, liniștea nopții s-a lăsat peste toate.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec

Deși pentru duminică, drumul destul de lung spre casă, anunța plecarea devreme, nu a fost așa, deoarece bagajele erau destule și … de îndesat în mașină.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec
Gata de drum

În plus, le mai veniseră câteva idei de încercat pentru partea de radio a nodului RoLink. De fapt, nici vremea faină nu-i lăsa să plece. Nelu s-a bucurat enorm pentru tot ceea ce s-a realizat în acest timp relativ scurt și a rămas să încerce diverse metode de a îmbunătăți recepția nodului.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec

Evident că oaspeții nu puteau pleca așa… cu burta goală, încât Nelu le-a pregătit, urmând o rețetă originală, o delicioasă mâncare de fasole, pe care eu am savurat-o doar cu ochii.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec
Mmmm

În jurul orei 12 PM, în compania aceluiași soare blând de noiembrie, Cătălin, Bogdan și Mirel au stat frumos la o poză cu Nelu, le-au mângâiat pe Mura și Lola, după care l-au salutat și… au pornit la vale.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec
YO6FCD, YO4OMG, YO7GQZ, YO3IXW

Au urmat același traseu de întoarcere și din nou, au oprit la Dâmbul Morii pentru ca fiecare să pornească pe drumul lui spre casă.

Pe lângă imaginile frumoase pe care camera web le oferă pe blogul meu, a rămas acolo amintirea celor trei zile pline petrecute de patru oameni sufletiști, radioamatori, foarte pasionați și cu mult avânt.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec
YO6FCD, YO4OMG

Și nu este prima dată când mă întreb: Ce anume i-a adunat pe acești oameni acolo? Nelu îi vedea efectiv pentru prima dată pe Bogdan și Mirel, chiar dacă se mai auzise cu Bogdan în legături radio, când el se afla prin munții din zonă.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec
Nelu – YO6FCD

Și totuși, așa cum am mai spus și altă dată, dorința de a realiza acest proiect interesant, de a ajuta comunitatea de radioamatori, a făcut ca acești oameni să se întâlnească, de parcă se știau de o grămadă de ani.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec

Să fie pasiunea pentru radio mai presus de orice efort fizic sau financiar? Să fie altruismul o parte importantă din acest hobby de lângă care nu putem sta departe? Să fie bucuria de a cunoaște oameni cu atâtea puncte comune pe lista de pasiuni?

Eu, nelipsită din toate aventurile care țin de RoLink, mi-a părut foarte rău pentru că de data asta nu am putut să fiu acolo, lângă acei oameni.

Nod RoLink deasupra norilor – Vf. Teasc – Borsec
Până când vom reveni…

Dar invitația lui Nelu pentru a reveni în zona pitorească a Borsecului, a rămas deschisă și de bifat pentru vara anului viitor, deși cu o nostalgie amuzantă, a afirmat că: “Până la anul, mai sunt trei ani!”.

’73

Cristina – YO7JYL

Întâlnire într-o vineri seara, pe calea undelor radio

Întâlnirea de vineri seara, s-a vrut o “masă rotundă” pe calea undelor între radioamatori. A fost un experiment pe care noi l-am pus la cale, în ideea de a constata câti colegi ne putem strânge laolaltă pentru a ne saluta prin intermediul Rețelei RoLink. Pentru întalnirea placută de aseară, ținem să vă mulțumim tuturor pentru prezență, fie că am vorbit cu dumneavoastră, fie că doar ne-ați ascultat. Am avut bucuria de a constata ca sunteți alături de noi, chiar dacă unii dintre dumneavoastră vă aflati în mobil, portabil ori în rutina programului încărcat, ați păstrat în memoria zilei, câteva minute pentru a intra în legătură cu noi.

Dincolo de emoțiile mele, normale unei prime astfel de întâlniri radio, am avut parte de QSO-uri foarte plăcute și interesante cu prieteni din bandă, alături de care am mai schimbat controale de-a lungul timpului. De asemenea, am avut surpriza de a mă saluta cu radioamatori care și-au făcut pentru prima dată apariția în RoLink și pe care îi vom aștepta cu plăcere să revină… aici. Ne-am bucurat pentru că am fost împreună, că rețeaua a funcționat așa cum ne-am așteptat, echipamentele pe care le utilizați fiecare s-au comportat optim așa încât, cu toții ne-am putut recepționa unii pe ceilalți, cu un control de Q4-Q5. Vă mulțumim foarte mult pentru aprecieri, acestea contează enorm pentru noi și ne încurajează să mergem mai departe.
În concluzie, ca și participanți, am avut 28 de indicative distincte, 5 dintre acestea au accesat rețeaua prin noduri portabile, 2 prin echolink, restul prin repetoarele/nodurile fixe.

Repetoarele accesate au fost: Tâmpa, Postavarul, Pitești, Preluca Veche, Păltiniș, Ploiești, Toaca, Cozia.

Pe districte, am avut radioamatori din: YO2-1; YO3-5; YO5-2; YO6-7; YO7-8; YO8-2; YO9-2.

În urma acestei întalniri de vineri seara, pe care noi o considerăm ca fiind reușită, datorită în primul rând dumneavoastră, ne propunem să efectuăm un sondaj care se va desfăsura pe pagina de Facebook. De aceea, vă rugăm să ne spuneți dacă vreți ca ea să continue și, în cazul unui răspuns afirmativ, la ce interval de timp: săptămânal, bilunar, lunar sau mai rar de atât.

Mulțumim și celor care ne-au trimis feed-back pozitiv după emisiune, pe adresele de mail și, în special celor încă neautorizați, cărora le urăm succes la sesiunea de examinare și îi așteptăm cât de curând alături de noi.

Vă invit mai jos să ascultați înregistrarea acestei întâlniri, nu înainte să-i mulțumesc pentru ajutor lui Răzvan – YO6NAM:


Nu uitați: RoLink există, pentru că dumneavoastră existați!

Cristina- YO7JYL și echipa fanilor RoLink

Proiect pentru protecţie automată a nodului/reţelei

Dragi colegi,

Prin bunăvoința colegului nostru, Răzvan – YO6NAM, acum avem proiectul unei soluții simple și eficiente, astfel încât fiecare administrator de nod sau repetor RoLink poate să pornească, respectiv să oprească traficul rețetei. Acesta poate să implementeze o soluție simplă de blocare a PTT-urilor, o soluție descentralizată care nu ține de server, ci de doar de nodul sau repetorul respectiv.

Proiectul este foarte util în sensul în care administratorul respectiv sesizează că există o problemă tehnică la alte noduri care creează bruiaje sau deranjamente în întreaga rețea RoLink. Răzvan a intitulat-o: “Protecţie automată a nodului/reţelei împotriva abuzurilor (sau a problemelor tehnice)”, iar mai jos el ne explică modul de funcționare:

Cum funcționează?

Logul generat de către aplicația SVXLink este citit de către rlabp.sh și aplică următoarele :

  • La mai mult de 5 ptt-uri venite dinspre RF într-un interval de 20 de secunde, aplicația se restartează în modul TX Only timp de 30 de minute.
  • Dacă dinspre rețea se primesc mai mult de 10 ptt-uri în interval de 30 de secunde, aplicația oprește traficul dinspre rețea către nod pentru 30 de minute.

După expirarea timpului, se revine la modul RX/TX.

Instalarea se face simplu :

$git clone https://github.com/yo6nam/rlabp  
$cd rlabp  
$./install.sh  

Modificarea fișierului clonă de configurare (svxlinknorx.conf) presupune modificarea liniilor din :

[RxLocal]
...  
SQL_DET=GPIO  
GPIO_SQL_PIN=!gpio20  
...  

în :

[RxLocal]
...  
#SQL_DET=GPIO  
#GPIO_SQL_PIN=!gpio20  
SQL_DET=PTY  
PTY_PATH=/tmp/sql  
...  

După instalare nu este nevoie de alte intervenții, scriptul fiind accesat prin cron la fiecare 15 secunde.

Trigger extern

Logica de comutare în modul ‘TX Only/Operare normală’ poate fi comandată și din surse externe, consolă, cron, etc. Argumentul poate fi 0 (Normal), 1 (TX Only) sau 2 (deblocare trafic nod<->reflector)

$/opt/rolink/scripts/rlabp.sh 0|1|2

Această metodă poate fi folosită dacă se dorește integrarea cu phpKontrol, dar și păstrarea protecției automate.

Mai jos este link-ul către acest proiect și suntem convinși că va stârni interes. De asemenea, cu siguranță va avea un feedback, deoarece este un proiect pe care mulți administratori de nod l-au dorit pentru a fi pus în aplicare.

https://github.com/yo6nam/rlabp

Desigur, așteptăm opiniile voastre, ale tuturor, deoarece rețeaua RoLink există pentru că voi existați și funcționează pentru că fiecare dintre noi contribuim la asta.

Toate bune,

’73

Răzvan – YO6NAM

www.439100.ro

Instalare Sistem pentru RoLink

Dragi colegi,

Aici o să scriu pașii necesari pentru o instalare de svxlink pe Orange PI Zero denumit în continuare „opi”.

Pentru ca articolul este destul de stufos, pun aici un fel de cuprins prin care sa accesati rapid sectiunile.

Configurarea modulului SA818/DRA818.

Calibrarea receptorului

Configurare network pentru autoconectare la ethernet/wifi/usb/modem

Administrare online

Reflectorul și un exemplu de configurare

Ca și echipament hardware este necesar un micro-computer OrangePi Zero

Pe partea hardware, poate fi la latitudinea fiecăruia ce alege pentru inter-gate-area cu radioul, însă două proiecte interesante ni le prezintă colegul nostru, Miron – YO3ITI:

http://www.yo3iti.ro/index.php?title=RoLink_OPi_Simplificat

www.439100.ro
Placa radio nod simplificat

http://www.yo3iti.ro/index.php?title=Nod_RoLink_OPi_complex

www.439100.ro
Placa radio nod complex

Detaliile constructive și nu numai, multe alte lucruri interesante, veti gasi urmărind link-urile de mai sus.

Pentru cei ce nu se pot descurca cu ce se prezinta mai jos, am pregatit o imagine gata configurata cu sistemul instalat si care se conecteaza la un reflector de test, pe care se pot face reglajele de modulatie.

Imaginea este disponibila aici: https://bastus.go.ro/imagini/portabil.img

Se acceseaza prin ssh pe portul 22, cu userul root si parola: qweasd..!

Se recomanda schimbarea parolei. Sistemul este configurat pentru conectare la retea prin cablu ethernet si prin wifi la o retea folosita de obicei de catre hotspoturile facute prin telefoanele mobile Android. Reteaua este cea cu ssid=”AndroidAP” prezenta in exemplul de mai jos. O alta retea se poate adauga urmarind exemplul. ATENTIE! Imaginea este default Read-Only, pentru a fi protejat sd-cardul. Inainte de a se face orice modificare, se va da comanda “rw” (fara ghilimele) . Totodata, imaginea fiind comprimata, se va da apoi comanda:

/usr/lib/armbian/armbian-resize-filesystem start

Se asteapta aprox un minut dupa care se da reboot. Pentru conectarea la retea, se va completa ce este necesar in fisierul /opt/rolink/conf/svxlink.conf, adica credentialele primite la inregistrarea nodului.

Cei ce vor sa puna mana sa isi construiasca sistemul singuri, pot citi in continuare.

Se download-ează armbian de aici.

Imaginea se dezarhivează, rezultă un fișier cu extensia „img”.

Se download-ează de aici Balena Etcher, cu care se scrie fișierul img pe sd-card.

Recomand sd-card minim 4G, maxim 8G. Nu știu dacă se mai gaseste de 4G, dar de 8G este destul de răspandit și ieftin. De asemenea, să luați clasa „10”, deoarece au accesul mai rapid. Scrie pe card „Class 10”. Și să fie produs de o firmă cunoscută. Nu vă zgârciți.

După ce se scrie imaginea, se bagă în opi, se alimentează, se conectează la internet/rețeaua locală prin placa de rețea integrată și în câteva momente ar trebui să vă conectați prin ssh la sistem, pe adresa locală. Adresa o aflați din router, sistemul e configurat să își ia adresa prin dhcp.

Inițial vă conectați ca root, cu parola 1234; sistemul vă va cere să schimbați parola inițială într-una mai complexă și de asemenea, să creați un user cu care vă veți conecta de acum înainte.

Pentru următoarea conectare și rularea comenzilor uzuale, monitorizare etc, veți folosi user-ul respectiv, iar comenzile care necesită drepturi de root vor fi precedate de comanda sudo. Comanda sudo (substitute user do) permite rularea unor comenzi cu privilegiile de acces ale unui alt utilizator, de obicei root.

În materialul de față, pentru simplitatea editării, eu voi rula comenzile direct ca și root. Acest lucru se face prin comanda sudo su – după introducerea parolei, user-ul se va transforma în root, acest lucru se vede și în caracterul din stânga prompterului, care s-a transformat din $ în #. În continuare să dau următoarele comenzi:

apt update 
apt upgrade
apt install g++ cmake make libsigc++-2.0-dev libgsm1-dev libpopt-dev tcl-dev libgcrypt20-dev libspeex-dev libasound2-dev libopus-dev libogg-dev libjsoncpp-dev libcurl4-openssl-dev alsa-utils vorbis-tools curl git-core ca-certificates

Instalarea de față, după o idee a lui Adrian – YO8RXT, nu va fi una standard, ci se va face în directorul rolink din /opt; aceasta va simplifica configurarea și monitorizarea programului svxlink.

cd /opt
git clone https://github.com/sm0svx/svxlink
cd svxlink
cd src
mkdir build 
cd build  
cmake -DUSE_QT=OFF -DCMAKE_INSTALL_PREFIX=/opt/rolink \
       -DSYSCONF_INSTALL_DIR=/opt/rolink/etc \
       -DSVX_SYSCONF_INSTALL_DIR=/opt/rolink/conf \
       -DSHARE_INSTALL_PREFIX=/opt/rolink/share \
       -DSVX_SHARE_INSTALL_DIR=/opt/rolink/share \
       -DSVX_MODULE_INSTALL_DIR=/opt/rolink/lib/modules \
       -DLOCAL_STATE_DIR=/opt/rolink/var \
       -DCMAKE_BUILD_TYPE=Release \
       -DCMAKE_C_FLAGS="-march=armv7 -mtune=generic-armv7-a" \
       -DCMAKE_CXX_FLAGS="-march=armv7 -mtune=generic-armv7-a" ..
groupadd svxlink
useradd -r -g daemon svxlink
make; make install 

Diferind de instalarea standard, librăriile necesare rulării programului nu se mai găsesc unde trebuie așa că va trebui să îi spunem sistemului unde se află acestea:

touch /etc/ld.so.conf.d/svxlink.libs.conf
echo "/opt/rolink/lib" > /etc/ld.so.conf.d/svxlink.libs.conf
ldconfig -v

ultima comandă ne arată că sistemul le găseste unde trebuie:

/opt/rolink/lib:
libasynccpp.so.1.6 -> libasynccpp.so.1.6.0.99.4
libasyncaudio.so.1.6 -> libasyncaudio.so.1.6.0.99.4
libasynccore.so.1.6 -> libasynccore.so.1.6.0.99.4
libecholib.so.1.3 -> libecholib.so.1.3.3

Dacă nu au apărut erori pe parcurs (și nu trebuie… dacă s-au respectat instrucțiunile) svxlink este instalat în acest moment.

Acum ne ocupăm de placa de sunet.  Ultimul kernel vine cu placa de sunet cu microfinul dezactivat, așa că trebuie să îl activăm:

alsamixer store

se apasă o data TAB ca sa ne pozitionam pe Capture, selectam MIC1 (cu săgețile stânga-dreapta) și, când e selectat, se apasă tasta SPACE.

Trebuie să arate ca în poză:

Urmează să edităm fișierele de configurare. Pentru asta trebuie să ne aflăm în directorul /opt/rolink/conf și să edităm fișierul svxlink.conf.

Acesta ar trebui să arate ca aici

[GLOBAL]
MODULE_PATH=/opt/rolink/lib/modules
LOGICS=SimplexLogic,ReflectorLogic
CFG_DIR=/opt/rolink/conf/svxlink.d
TIMESTAMP_FORMAT="%Y-%m-%d %H:%M:%S"
CARD_SAMPLE_RATE=48000
LINKS=ReflectorUpLink

[ReflectorUpLink]
CONNECT_LOGICS=SimplexLogic:99:R,ReflectorLogic
DEFAULT_ACTIVE=1
TIMEOUT=10
[SimplexLogic]
TYPE=Simplex
RX=LocalVoter
TX=Tx1
CALLSIGN=yo0xxx
SHORT_IDENT_INTERVAL=10
LONG_IDENT_INTERVAL=30
EVENT_HANDLER=/opt/rolink/share/events.tcl
DEFAULT_LANG=en_US
RGR_SOUND_DELAY=0
RGR_SOUND_ALWAYS=1
FX_GAIN_NORMAL=-5
FX_GAIN_LOW=-12

[ReflectorLogic]
TYPE=Reflector
HOST=bastus.go.ro
#HOST=svx.439100.ro
PORT=5300
CALLSIGN="nod_nou"
AUTH_KEY="qawsed"
JITTER_BUFFER_DELAY=250
DEFAULT_TG=226
MONITOR_TGS=226
TG_SELECT_TIMEOUT=99999
ANNOUNCE_REMOTE_MIN_INTERVAL=10
EVENT_HANDLER=/opt/rolink/share/events.tcl

[LocalVoter]
TYPE=Voter
RECEIVERS=Rx1
VOTING_DELAY=100
BUFFER_LENGTH=100
COMMAND_PTY=/dev/shm/voter_ctrl

[Rx1]
TYPE=Local
AUDIO_DEV=alsa:plughw:0
AUDIO_CHANNEL=0
SQL_DET=GPIO
SQL_START_DELAY=0
SQL_DELAY=250
SQL_HANGTIME=0
SQL_TIMEOUT=180
GPIO_SQL_PIN=gpio10
SIGLEV_SLOPE=1
SIGLEV_OFFSET=0
SIGLEV_OPEN_THRESH=30
SIGLEV_CLOSE_THRESH=10
DEEMPHASIS=0
PEAK_METER=0
DTMF_DEC_TYPE=INTERNAL
DTMF_MUTING=1
DTMF_HANGTIME=40
DTMF_SERIAL=/dev/ttyS0
##compression - recomandat activ
RxComp=1
RxCompThreshold=-30
RxCompRatio=0.5
RxCompAttack=50
RxCompDecay=5000

[Tx1]
TYPE=Local
TX_ID=T
AUDIO_DEV=alsa:plughw:0
AUDIO_CHANNEL=0
PTT_TYPE=GPIO
PTT_PIN=gpio7
TIMEOUT=300
TX_DELAY=100
PREEMPHASIS=0
DTMF_TONE_LENGTH=100
DTMF_TONE_SPACING=50
DTMF_DIGIT_PWR=-15
##compression - recomandat activ pe portabile
TxLimit=1
TxComp=1
TxCompThreshold=-90
TxCompRatio=0.5
TxCompAttack=10
TxCompDecay=5000

Svxlink trebuie pornit automat la pornirea sistemului, așa ca în directorul rolink creăm următorul fișier, numit rolink-cron.d, în care vom pune comenzile de mai jos:

*       *       * * *   root    /opt/rolink/scripts/checkalive.sh
*       *       * * *   root    /opt/rolink/scripts/network.sh
*       *       * * *   root    /opt/rolink/scripts/reflector-test.sh 
17      3       * * *   root    /opt/rolink/scripts/rolink-re-start.sh

Îi vom face link către directorul demonului cron:

ln -v -s /opt/rolink/rolink-cron.d /etc/cron.d/rolink

Scripturile la care se face referire mai sus, va trebui să le creăm, ca tot ansamblul să funcționeze. Așadar:

md scripts
cd scripts
nano checkalive.sh

și aici punem:

#!/bin/bash

if [ "$(pgrep -c svxlink)" != "1" ]; then
   echo "re-start svxlink"
   /opt/rolink/scripts/rolink-start.sh
fi
exit 0

Salvăm, ieșim și creăm urmatorul fișier: rolink-start.sh

#!/bin/sh
. /opt/rolink/scripts/gpio-up.sh
export LD_LIBRARY_PATH="/opt/rolink/lib"
[ "$(pidof svxlink)" != "" ] && killall -v svxlink
/opt/rolink/bin/svxlink --daemon --config=/opt/rolink/conf/svxlink.conf --logfile=/tmp/svxlink.log --runasuser=root --pidfile=/var/run/svxlink.pid
echo heartbeat > /sys/class/leds/orangepi:red:status/trigger
#

gpio-up.sh:

#! /bin/sh
useradd -M -N -G daemon,audio svxlink
GPIO_USER=root
GPIO_GROUP=daemon
GPIO_MODE=664
GPIO_PATH=/sys/class/gpio
##function gpio IN pin
gpioin() {
 N=$1
 [ ! -d ${GPIO_PATH}/gpio${N} ] && [ -n "$N" ] && echo ${N} > ${GPIO_PATH}/export
  echo "in" > ${GPIO_PATH}/gpio${N}/direction
  [ -n "$GPIO_USER" ]  && chown "$GPIO_USER"  ${GPIO_PATH}/gpio${N}/value
  [ -n "$GPIO_GROUP" ] && chgrp "$GPIO_GROUP" ${GPIO_PATH}/gpio${N}/value
  [ -n "$GPIO_MODE" ]  && chmod "$GPIO_MODE"  ${GPIO_PATH}/gpio${N}/value
}
##function gpio OUT pin state
gpioout() {
  N=$1
  V=$2
  [ ! -d ${GPIO_PATH}/gpio${N} ] && [ -n "$N" ] && echo ${N} > ${GPIO_PATH}/export
  echo "out" > ${GPIO_PATH}/gpio${N}/direction
  [ -n "$V" ] && echo ${V} > ${GPIO_PATH}/gpio${N}/value
  [ -n "$GPIO_USER" ]  && chown "$GPIO_USER"  ${GPIO_PATH}/gpio${N}/value
  [ -n "$GPIO_GROUP" ] && chgrp "$GPIO_GROUP" ${GPIO_PATH}/gpio${N}/value
   [ -n "$GPIO_MODE" ]  && chmod "$GPIO_MODE"  ${GPIO_PATH}/gpio${N}/value
}
echo '### SQL - set PA20|gpio20/gpio26 in'
gpioin 10
echo '### PTT - set PA10|gpio10/gpio19 out high'
gpioout 7 0
gpioout 6 0
ls -1d ${GPIO_PATH}/gpio*
cat /sys/kernel/debug/gpio
#

network.sh:

#!/bin/bash
# RoLink
PAT='-p 526F4C696E6B'
echo 0 > /sys/class/leds/orangepi:red:status/brightness
ping reflector/vpn
ping -q -A -c 3 -W 10 $PAT reflector.rolink-net.ro > /dev/null 2>&1
if [ $? -ne "0" ]; then
  echo heartbeat > /sys/class/leds/orangepi:red:status/trigger
  # ping internet - google-public-dns-b.google.com [8.8.4.4]
  ping -q -A -c 3 -W 10 $PAT google-public-dns-b.google.com > /dev/null 2>&1
  if [ $? -ne "0" ]; then
    systemctl daemon-reload
    sleep 3
    systemctl restart networking
  fi
fi
echo 255 > /sys/class/leds/orangepi:red:status/brightness
exit 0
#

Orangepi zero are două led-uri, pe cel verde îl lăsăm în pace, când este aprins ne indică faptul că hardware sistemul este ok, cel roșu e folosit pentru statusul sistemului svxlink. Astfel, când programul este funcțional, led-ul va lumina intermitent, iar când este conectat în Rețeaua RoLink led-ul va fi aprins permanent.

reflector-test.sh

#!/bin/bash
LOG=/tmp/svxlink.log
INF=/tmp/reflector.test
REFOF=$( tail -50 $LOG | grep -ia 'ReflectorLogic: Disconnected from' | tail -1 )
REFON=$( tail -50 $LOG | grep -ia 'ReflectorLogic: Using audio codec' | tail -1 )
REFDEC=$( echo -e "${REFOF}\n${REFON}" | sort -n | tail -1 | grep -ia 'ReflectorLogic: Disconnected from' )
if [ "$REFDEC" != "" ]; then
  echo 'FAIL' > ${INF}
  exit 1
else
  rm -f ${INF}
fi
exit 0

Va trebui să dăm drept de execuție pe fișierele create:

chmod 755 *.sh

și să facem un simlink către rolink-restart.sh

ln -s rolink-start.sh rolink-re-start.sh

În momentul de față sistemul este pregătit de conectare. Cu configurația actuală, se va conecta la un reflector de test configurat în mod papagal, care vă va ajuta la testele de modulație. Pentru conectarea la rețea, în svxlink.conf vor trebui modificate aceste linii (trebuie să arate ca mai jos):

#HOST=bastus.go.ro
HOST=svx.439100.ro

iar aici:

CALLSIGN="nod_nou"
AUTH_KEY="qawsed" 

va trebui introdus user-ul și parola pe care ar trebui sa le primiți în prealabil de la administratorii Retelei RoLink.

Mai jos urmează configurarea modulului SA818/DRA818.

Modulul comunică pe interfața serială cu sistemul. Interfața este folosită doar pentru programarea acestuia, nu are alt rol în comunicație. De obicei armbian vine cu interfețele de comunicație serială neconfigurate, așa că va trebui să verificăm în /boot/armbianEnv.txt existența următoarei linii, care va trebui să arate ca mai jos (dacă nu, se editează):

overlays=usbhost1 usbhost2 analog-codec uart1 uart2

Va trebui să adaugăm un script care ne va ajuta în programarea modulului. Deci:

nano /opt/rolink/scripts/orangeserial.py
import time
import serial
ser = serial.Serial(
     port='/dev/ttyS1',
     baudrate=9600
 )
ser.isOpen()
print 'Enter your commands below.\r\nInsert "exit" to leave the application.'
input=1
while 1 :
     # get keyboard input
     input = raw_input(">> ")
         # Python 3 users
         # input = input(">> ")
     if input == 'exit':
         ser.close()
         exit()
     else:
         # send the character to the device
         # (note that I happend a \r\n carriage return and line feed to the characters - this is requested by my device)
         ser.write(input + '\r\n')
         out = ''
         # let's wait one second before reading output (let's give device time to answer)
         time.sleep(1)
         while ser.inWaiting() > 0:
             out += ser.read(1)
     if out != '':         print ">>" + out

Scriptul de programare este făcut în Python. Vor trebui date urmatoarele comenzi, că sa meargă:

apt install python-pip
pip install pyserial

Pornim scriptul cu:

python orangeserial.py

după care dăm următoarele comenzi:

AT+DMOCONNECT

Dacă totul este în regulă, modulul va raspunde cu:

+DMOCONNECT:0

Deci, programăm frecvența:

AT+DMOSETGROUP=1,432.5500,432.5500,0013,4,0013

Ultimele 3 grupe reprezintă tonul ctcss la emisie și recepție (13->103.5) și nivelul de squelch (4).

și nivelul audio la ieșire din modul:

AT+DMOSETVOLUME=2

Ieșim scriind: exit

Configurare network pentru autoconectare la ethernet/wifi/usb/modem

By default armbian vine cu network-manager instalat. Îl dezinstalăm:

apt remove --purge network-manager

Mergem în /etc/network/interfaces și punem aceasta:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
wireless-mode Managed
wireless-power off

Salvăm, apoi:

nano /etc/wpa_supplicant/wpa_supplicant.conf

în care punem de exemplu:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
#ap_scan=0
update_config=1
network={
        ssid="AndroidAP"
        psk="123456789"
        proto=RSN
        key_mgmt=WPA-PSK
        pairwise=CCMP
        group=CCMP
        auth_alg=OPEN
}
network={
        ssid="acme"
        psk="123456789"
        proto=RSN
        key_mgmt=WPA-PSK
        pairwise=CCMP
        group=CCMP
        auth_alg=OPEN
}

Aici avem configurate două rețele, prima e un hotspot din telefon și a doua este rețeaua de acasă, de exemplu.

Administrare online

Daca ați observat în svxlink.conf o chestie numită “[LocalVoter]” , aici este cazul să explicăm la ce se folosește. Din documentație, aflăm că svxlink știe să lucreze cu receptoare multiple, nu este cazul aici, însă pentru gestionarea acestora, s-au introdus niște comenzi: Rx(x)Enable/Disable. În configurația cu un singur receptor, acestea nu funcționează, de aceea am recurs la acest artificiu, și anume receptorul introdus prin voter. Asta face ca într-o situație reală și anume paraziși pe recepție, cu o comandă, să putem opri recepția nodului fără a interveni fizic asupra acestuia sau a streamului din rețea, și să-l repornim când este cazul sau după un anumit interval de timp.

Deci: cd /opt/rolink/scripts

și mai adaugăm un fișier de stare:

touch t_rx

și trei scripturi:

rx_on.sh

#!/bin/bash
echo "ENABLE Rx1" > /dev/shm/voter_ctrl
echo -n "1" > /opt/rolink/scripts/t_rx

rx_off.sh

#!/bin/bash
echo "DISABLE Rx1" > /dev/shm/voter_ctrl
echo -n "0" > /opt/rolink/scripts/t_rx

rx.sh

#!/bin/bash
exec=$(</opt/rolink/scripts/t_rx)
if [ "$exec" == "1" ]; then
echo "ENABLE Rx1" > /dev/shm/voter_ctrl
else
echo "DISABLE Rx1" > /dev/shm/voter_ctrl
fi
exit 0

Acesta din urmă se ocupă de verificarea ultimei stări a receptorului, în caz de restart de exemplu. Pentru asta va trebui să-l adaugăm în fișierul rolink-cron.d din directorul rolink.

*       *       * * *   root    /opt/rolink/scripts/rx.sh

Atenție să fie executabile scripturile, deci:

chmod 755 rx*.sh

Următorul lucru este să instalăm soluția client/server oferită de Răzvan – YO6NAM de aici:

https://github.com/yo6nam/phpKontrol

Dacă nu suntem dispuși să instalăm server, instalăm doar clientul și apelăm la bunăvoința lui Răzvan pentru o pagină de administrare de pe binecunoscutul server XPANDER

Configul ‘launcher.conf’ pentru scripturile de mai sus arată asa:

logfile         = '/var/log/phpKontrol'
mqtt_broker     = 'ex_host.ro'          # default: 'localhost'
mqtt_port       = 1883                  # default: 1883
mqtt_clientid   = 'client_789'            # must be unique!
mqtt_username   = 'gigi'
mqtt_password   = 'bestialu'
mqtt_tls        = None                  # default: No TLS

topiclist = {
        "devices/cmd"   :   {
                'client_789_on'   :   [ 'bash', '/opt/rolink/scripts/rx_on.sh' ],
                'client_789_off'  :   [ 'bash', '/opt/rolink/scripts/rx_off.sh' ],
        },
}

Parametrii mqtt îi completăm cu ce primim de la Răzvan.

Interfața de administrare de pe mobil arată asa:

Ce este reflectorul și un exemplu de configurare

Reflectorul, parte a pachetului svxlink de ceva vreme, este un mic program care asigură interconectarea nodurilor. Configurarea sa este simplă și intuitivă și nu are nevoie de multe resurse; poate rula pe același sistem ca și clientul svxlink.

Exemplu de svxreflector.conf:

###################################################################
#
# Configuration file for the SvxReflector SvxLink conference node
#
###################################################################

[GLOBAL]
#CFG_DIR=svxreflector.d
TIMESTAMP_FORMAT="%c"
LISTEN_PORT=5300
#SQL_TIMEOUT=600
#SQL_TIMEOUT_BLOCKTIME=60
#CODECS=OPUS
TG_FOR_V1_CLIENTS=9
#RANDOM_QSY_RANGE=12399:100
HTTP_SRV_PORT=8090

[USERS]
YO7GQZ-1=MyNodes
YO7GQZ-2=MyNodes
PITESTI=MyNodes
CLIENT_NOU=Teste
#SM3XYZ=SM3XYZ

[PASSWORDS]
MyNodes="qweasdf"
Teste="123456"

Acesta este un exemplu de reflector ce funcționează la Pitești. Nodurile sunt cele cu denumirea din secțiunea [ReflectorLogic] a clientului.

Trebuie avut în vedere ca portul 5300 să fie accesibil extern pentru clienții din exterior. Clientul local se poate conecta la localhost.

Scripturile de pornire și verificare:

reflector-start.sh

#!/bin/sh


[ "$(pidof svxreflector)" != "" ] && killall -v svxreflector

/opt/rolink/bin/svxreflector --daemon --config=/opt/rolink/conf/svxreflector.conf --logfile=/tmp/svxreflector.log --runasuser=root --pidfile=/var/run/svxreflector.pid

#

Și mai adaugăm în scriptul checkalive.sh și verificarea de reflector:

if [ "$(pgrep -c svxreflector)" != "1" ]; then
  echo "re-start reflector"
  /opt/rolink/scripts/reflector-start.sh
fi

Atenție! Inaintea liniei “exit 0” se adaugă cele de mai sus.

Va urma:

-legarea mai multor noduri la un reflector și un exemplu de mini-rețea

-configurare modem 3G/4G

-qso recorder

-configurare voce, alta decât cea standard

-anunțuri personalizate

-monitor de propagare

-imagine gata configurată

’73

Cătălin – YO7GQZ