30 decembrie 2022
Incă o bifă in palmaresul personal (2)
02 decembrie 2022
Baliza radio WSPR (2)
Caracteristici
- Baliza de interior, cea mai simpla versiune.
- Nu necesita GPS sau RTC pentru sincronizare, dar are nevoie de o conexiune la internet.
- Constructie usoara, cablaj imprimat cu dimensiuni reduse.
- Frecventa de emisie: 3568.6 KHz.
- Putere de iesire: 100 mW.
- Alimentare: 9V / 250mA.
- Este dotata cu rezistenta de sarcina si detector, pentru masurarea si reglarea nivelului puterii.
- Etaj final cu tranzistori BS170, dar pot fi inlocuiti cu un IRF510, montat pe partea inferioara a cablajului, in contact cu un radiator.
- Cu exceptia componentelor active am folosit numai componente recuperate.
- Baliza poate emite continuu sau dupa un orar.
Principiul de functionare
Punerea in functiune
Precizari
20 octombrie 2022
Pamint - Luna - Pamint in 2.7 secunde ( 4 )
18 aprilie 2022
Arduino RDS PI decoder
Dupa construirea receptorului FM, urmatoarea etapa a fost integrarea unui decodor RDS. In prima faza intentia mea a fost intelegerea principiului de transmitere RDS si decodarea acestuia. Ulterior, dupa ce am citit mai multe documente pe internet, am trecut la experimente. Folosind semnalele de ceas si date, furnizate de un receptor Sony ST-SE370, am incercat si am reusit sa decodez. Am folosit un Arduino Nano, care s-a potrivit perfect nivelelor semnalelor din receptor. Ultima parte a proiectului a reprezentat simplificarea codului sursa, micsorarea timpului de decodare si extragerea doar a datelor care ma interesau, respectiv identificatorul PI.
Transmisiunea RDS se face in paralel cu semnalul audio stereo in cadrul unui semnal multiplex. Transmisia este seriala, cu o viteza de 1187.5 biti / secunda. Datele sint impartite pe grupuri. Acestea la rindul lor sint impartite in blocuri: A, B, C, D. Fiecare bloc are 26 biti, fiecare grup are 26 x 4 = 104 biti. Intr-o secunda sint transmise cca 11 grupuri. Blocul A contine identificatorul PI. El se regaseste in primul bloc din fiecare grup transmis, din 104 in 104 biti. In concluzie, blocul A este transmis de cca 11x / secunda, respectiv odata la 87.5 milisecunde.
Daca blocul A este transmis de cca 11x / secunda, cred ca este deajuns, in cadrul unor reflexii MS, de scurta durata, daca semnalul este destul de puternic, sa pot identifica PI-ul postului transmis. Pentru aceasta imi este necesar o receptie a grupului, respectiv 87.5 milisecunde, pentru a decoda si memora temporar PI-ul postului receptionat. Urmat dupa aceea de inca o receptie a grupului, alte 87.5 milisecunde, pentru a decoda dinou ID-ul si apoi sa il compar cu primul PI temporar. In caz de egalitate, totul este ok, am identificat postul, altfel, reiau procesul de la inceput.
Aceasta ultima afirmatie este pura teorie. Nu am testat-o inca. Teoretic ar putea sa functioneze, practic voi afla in vara aceasta, cu ocazia Perseidelor. In anii precedenti am receptionat des semnale de scurta durata via MS intr-un receptor auto. Anul acesta am posiblitatea sa si testez.
Schema de principiu este simpla. Pini de date si masa au fost conectati direct la microcontroler. Nu a fost necesara nicio interfatare, nivelele semnalelor sint perfect compatibile, 0 - 5V. Pinii D2 si D3 sint folositi ca intrari si sint conectati pull-up intern din setarile software. Rezultatul decodarii se trimite prin intermediul portului serial in USB la calculator si evidentiat intr-un monitor. Alimentarea se face din portul USB al calculatorului.
Software-ul seteaza pinii ca intrari si activeaza o intrerupere interna pe pinul de ceas. Dupa receptionarea a 26 de biti de date se incearca identificarea blocului prin calcularea CRC. Daca CRC nu este bun operatia se repeta. Cind CRC este ok, se identifica blocul. Daca blocul este altul decit A, se calculeaza dupa citi biti urmeaza blocul A si se reia asteptarea blocului A. Cind blocul A este identificat, se decodeaza si memoreaza PI. Se asteapta timp de 104 biti, se receptioneaza urmatorul bloc A, fara sa se mai verifice CRC, se extrage PI si se compara cu primul decodat. Daca este in regula se trimite prin intermediul portului serial catre calculator pentru a fi afisat pe monitor.
Aceasta este pe scurt descrierea algoritmului decodorului meu si intentiile mele pentru a-l folosii. Mai multe detalii dupa experimentele ce urmeaza sa le intreprind.
Sa vina vara, eu sint pregatit!
Constantin Bădican - YO7FWS
Descarca: codul sursa
15 aprilie 2022
Alertă E Sporadic prin SMS
Hardware
Are loc o legatură radio intre doi corespondenți și acestia raportează fiecare legatura pe DXCluster. Dacă anunțurile apar consecutiv, intr-o perioadă mai scurtă de 15 minute, dispozitivul le identifică ca două anunțuri: unul de prealertare și celalalt de alertare. In realitate avem o singură legatură radio.
Soluție: verificarea incrucișată a indicativelor din anunțuri și ignorarea ultimului anunț in caz de egalitate.
04 martie 2022
LogulMeuUUS vers. 03.03.2022
21 februarie 2022
FM DX RDS PI Scanner (1)
Receptiile radio si tv la mare distanta m-au pasionat dintotdeauna. In anii de liceu am observat receptionarea in Banda 1 TV a unor posturi de televiziune din Europa, iar in banda OIRT a unor posturi radio rusesti. Foarte mult timp am studiat acest fenomen, dar prea putin documentat. Anii trecuti am revenit la aceasta veche pasiune, am reluat receptiile si am avut rezultate. Ce m-a impresionat de aceasta data a fost posibilitatea identificarii postului radio care emite cu ajutorul transmisiei RDS in paralel cu semnalul audio. Aceasta facilitate este foarte importanta, nu numai ca auzi un post de radio interesant, dar ai posibilitatea sa stii de unde emite si cum se numeste. Genial!
Primele receptii le-am facut pe un radiocasetofon Sony pe masina. Apoi am trecut la un receptor RTLSDR pe calculator si un tuner stationar Sony ST-SE370. Toate au functionat, dar nu conform asteptarilor mele. Niciunul dintre acestea nu imi furniza in cel mai scurt timp posibil informatiile RDS transmise de postul radio receptionat. Era frustant: se auzea foarte bine, dar nu decoda nimic. Pornind de la aceasta experienta oarecum nereusita, m-am hotarit sa imi construiesc un receptor radio asa cum imi doream eu. Nu am avut de gind sa plec complet de la zero, am cautat sa gasesc module, gata construite, pe care imbinindu-le impreuna, sa-mi asigure rezultatul mult asteptat. Pentru aceasta am studiat module tuner din diverse receptoare radio, combine si casetofoane de masina, modul de comanda al acestora si controlul PLL, precum si principiul de transmitere si decodare RDS. Iarna aceasta am reusit sa-mi construiesc o varianta simplificata a primului receptor.
Tunerul FM si modulul decoder RDS au facut parte dintr-o combina Aiwa_XR-EM30. Pentru comanda si controlul PLL am folosit o placa de dezvoltare Arduino Nano, la care am conectat un afisaj LCD 2 x 16 caractere, un encoder mecanic si o tastatura cu trei push butoane. Receptorul nu este dotat cu amplificator audio, receptia se poate face doar in casti. Datorita dimensiunilor reduse ale componentelor, modulul decoder RDS a fost 'decupat' de pe placa de baza a combinei si adaptat proiectului meu. Iata schema simplificata a receptorului:
Controlul tunerului FM este realizata cu ajutorul unui program incarcat in Arduino Nano. Acesta comanda registrii de uz general GPIO si controleaza PLL dintr-un circuit integrat specializat Sanyo LC72131. Intervalul de frecventa acoperit este 88 - 108 MHz, cu pas de 100 KHz. Schimbarea frecventei de receptie este ralizata cu un encoder mecanic si afisarea se face pe un ecran LCD. Pentru inceput programul este foarte simplu. Acesta impreuna cu receptorul urmeaza sa fie imbunatatite pe viitor.
Descarca codul sursa: RXFM_V1.ino
27 ianuarie 2022
2021 - Recordurile mele in 2m
Iata ce scriam acum un an pe blog:
Hmm, am receptionat CU3EQ, Insulele Azore, la 4257Km... deci este posibil. Daca receptionez, inseamna ca pot sa si lucrez. Totul depinde de mine: cind si cu ce. Ia sa vedem: pot?
Si dupa un an pot spune: aproape am putut! Nu sint chiar 4257 Km, dar sint aproape!
Vara trecuta am lasat deoparte legaturile radio " la intimplare, tot ce aud si cit mai multe la numar ", in Es Sporadic, si am inceput sa ma concentrez pe directiile de propagare, dupa indicative si distante mari, posibile de lucru. Pe 10 Iunie 2021 in jurul orei 15.10 s-a produs o propagare puternica pe sudul Spaniei, acesta fiind momentul oportun pentru mine. Am oprit emisia si m-am concentrat pe indicative. La scurt timp mi-a aparut pe ecran apelul lui EA8JK, din Insulele Canare, care chema pe directia mea o statie din YU. Nu am mai stat pe ginduri, momentele acestea nu dureaza foarte mult, si l-am chemat. La scurt timp mi-a raspuns si am continuat legatura. Finalul legaturii, salutarile, nu l-am mai prins, propagarea radio a scazut. Dar am avut noroc: corespondentul meu l-a copiat.
A doua zi, am primit confirmarea prin email: legatura radio perfect valabila. A fost bucurie mare in sufletul meu. Am depasit doua bariere: 3000 si 4000 Km, doar cu o singura legatura, HI! Ce frumoasa este pasiunea noastra!
La cca doua saptamini am primit si premiul: confirmarea qsl.
Si astfel, am adaugat in palmaresul personal un nou record: EA8JK, Insulele Canare, 4091 Km, confirmat!
Probabil, in scurt timp, chiar de anul acesta, numarul legaturilor radio peste 4000 Km se vor inmultii printre iubitorii legaturilor radio in unde ultrascurte. De vina o sa fie Soarele, dar si modul de lucru FT8. Foarte bine! Toata lumea trebuie sa fie fericita!
Constantin BADICAN - YO7FWS
--- 73's YO7FWS ---
23 ianuarie 2022
Baliza radio WSPR (1)
Provocat de un experiment initiat de YO3FFF in banda de 80 m, m-am hotarit sa construiesc si eu o baliza WSPR. Intentia de a construi baliza era veche, asa ca de-a lungul timpului am achizitionat componentele necesare. Fara sa stau prea mult pe ginduri, am schitat o schema bloc cu minimul de componente necesare, am proiectat un cablaj imprimat si am trecut la executarea lui. Montajul a fost destul de simplu, nu a necesitat niciun reglaj. Pentru acesta am folosit o placa de dezvoltare Arduino Nano, un modul GPS Neo-6M si un generator SI5351. O iesire a generatorului am conectat-o la un filtru trece jos, pe care intentionez sa il studiez mai bine, ceva mai tirziu.
La punerea in functiune am avut probleme cu programul. Am ales un program 'de-a gata', luat de pe GitHub, care desi functiona corect, semnalul era nedecodabil. Nu am reusit sa inteleg unde era eroarea, n-am gasit nicio problema in cod. Apoi am testat, fara nicio sincronizare de timp, exemplul dat in libraria EtherKit JTEncode, care a functionat de la prima incercare. Dezamagit de timpul pierdut, m-am hotarit sa rescriu codul plecind de la acest exemplu. Mai intii am eliminat ceea ce era in plus si nu ma ajuta in proiect, apoi am adaugat restul de cod, necesar proiectului. Receptiile le-am facut 'pe masa', cu transceiverul meu si decodarea in laptop. Totul functiona corect. Fara sa montez filtrul de iesire, am conectat antena si am pornit emisia balizei. La scurt timp am fost receptionat de citeva statii din YO3, YO9. Spre seara au inceput sa apara receptiile dinspre SP, OE, DL, PA, OH si cel mai departe EA8. Am ramas impresionat. Cu doar 10mW, intr-o antena dipol, eram receptionat in toata Europa. Minunat!
A doua zi am montat un filtru de iesire si am lasat-o definitiv in emisie, pe antena. Pe fiecare dimineata, la cafea, imi arunc privirea pe harta cu receptia semnalelor mele. Pina azi, recordul de distanta este de cca 4300 Km, receptiont de RX9O, in apropiere de Novosibirsk.
Pe viitor, din motive de tehnice, intentionez sa renunt la modulul GPS si sa folosesc un modul RTC. Din nefericire este foarte greu de gasit un modul precis, experienta mea cu acestea a fost complet neplacuta. Testele continua!
--- 73's YO7FWS ---
Timestamp | Call | MHz | SNR | Drift | Grid | Pwr | Reporter | RGrid | km | az | Mode |
---|---|---|---|---|---|---|---|---|---|---|---|
2022-03-04 04:00 | YO7FWS | 3.570097 | -13 | 0 | KN24dj | 0.01 | K4WLO | EM65 | 8761 | 309 | 2 |
2022-03-04 04:02 | YO7FWS | 3.570097 | -14 | 0 | KN24dj | 0.01 | K4WLO | EM65 | 8761 | 309 | 2 |
2022-03-04 04:04 | YO7FWS | 3.570096 | -21 | 0 | KN24dj | 0.01 | K4WLO | EM65 | 8761 | 309 | 2 |
21 ianuarie 2022
My VHF Monitor
Articolul original a fost publicat pe siteul Radioamator.ro. Se pare ca titlul articolului si anumite denumiri formulate de mine in acesta, nu puteau fi folosite datorita drepturilor de autor. Pentru a nu intra in polemica, am hotarit retragerea articolului, corectarea acestuia si publicarea in continuare aici pe blogul meu. Articolul prezinta o solutie tehnica simpla care poate fi o sursa de inspiratie pentru alti constructori, programatori sau radioamatori.
Iubesc ESP8266. Este mic,
inteligent si ieftin. Stie Wi-Fi, stie sa se conecteze la internet, sa fie
server, client, etc. O bijuterie! Cu putina pricepere si multa imaginatie, poti
da viata celor mai nastrusnice idei. Iata una pe care avut-o de curand:
afisarea in timp real a legaturilor radio in benzile de radioamator.
Hardware
Un modul ESP01S este conectat la
alimentare prin intermediul unui stabilizator de tensiune care furnizeaza 3.3V.
Doua leduri, conectate la pinii ESP01S, indica starea conexiunii la reteaua
Wi-Fi si un server DxCluster. Acestea pot fi comandate de oricare dintre
perechile de pini, Rx - Tx sau GPIO0 - GPIO2, prin montarea unor strapuri. Eu
am ales pinii: GPIO0 si GPIO2.
Intreg montajul este realizat pe o
bucata de cablaj imprimat, simplu placat, cu dimensiunile: 40 x 30 mm. Pentru
micsorarea dimensiunilor cablajului, conectorul alimentarii este montat sub
modulul ESP01S.
Montajul este plasat intr-o carcasa
din plexiglass de 4 mm, cu ajutorul unor distantieri din PVC. Carcasa este
prevazuta cu gauri de fixare pe un panou sau perete.
Software
Partea de software este ceva mai complexa. A fost o provocare chiar si pentru mine. Cuprinde cunostinte de programare pentru microcontrolere, mai precis Arduino, a paginilor WEB, respectiv HTML, CSS, JavaScript si nu in ultimul rand, Leaflet. Acesta din urma a fost necesar pentru afisarea hartii.
1. Restart.
2. Conectarea la reteaua Wi-Fi si semnalizarea conectarii prin aprinderea LED1.
3. Crearea unui server WEB pentru tratarea clientilor.
4. Crearea unui client TCP necesar receptionarii spoturilor de la un DxCluster.
3. Conectarea clientului la un DxCluster din internet.
4. Logarea la DxCluster si transmiterea comenzilor de filtrare a spoturilor. Reusita conectarii si logarii este semnalizata de LED2.
5. Receptionarea spoturilor, parsarea, extragerea indicativelor si locatoarelor din spoturile formatate.
6. Pregatirea datelor pentru a fi transmise unui eventual client conectat la serverul WEB.
7. Tratarea clientilor conectati la serverul nostru prin transmiterea unei pagini WEB.
8. Transmiterea unui refresh catre serverul DxCluster, necesar pentru prevenirea deconectarii. In acelasi timp sunt sterse toate datele care nu mai sunt de actualitate.
In caz de eroare, prevenirea
blocarii microcontrolerului se face printr-un reset software. Astfel, acesta va
functiona continuu, timp indelungat, fara a fi necesara interventia
proprietarului.
Resetarea microcontrolerului se
face pentru unul din urmatoarele motive:
2. conectarea la DxCluster a esuat.
3. logarea la DxCluster a esuat.
4. daca timp de 15 minute nu receptioneaza date de la serverul DxCluster, inclusiv raspuns la refresh.
5. daca este deconectat de la serverul DxCluster.
In acesta versiune a programului, toate datele stocate inaintea resetarii, se vor pierde. Pe viitor, am in vedere pastrarea acestora si dupa restart.
Pe harta legaturile radio efectuate
sint afisate cu ajutorul unor markeri dispusi peste locatorul corespondentilor,
uniti prin linii geodezice. Extragerea indicativelor si a locatoarelor se face
numai din spoturile corect formatate. Un spot formatat contine la comentariu un
camp de forma:
LOC1<MOD>LOC2
LOC1 - locatorul corespondentului 1
MOD - tipul de propagare anuntat
LOC2 - locatorul corespondentului 2
Pagina WEB transmisa clientului
este relativ simpla. Afisarea hartii in interiorul acesteia se face cu ajutorul
unui iFrame. Folosirea iFrame-ului in pagina WEB, permite utilizatorului
editarea cu usurinta a acesteia, intr-un mod cat mai atragator, fara sa fie
afectat de catre acesta. Reactualizarea hartii se face automat printr-un
refresh odata la 30 secunde. Datele afisate pe harta se reimprospateaza in timp
real, pe masura ce sunt receptionate de la serverul DxCluster. Durata afisarii
acestora este de cca 60 minute, dar poate fi modificata. Dupa expirarea
timpului de afisare, acestea sunt sterse.
Pentru a raspunde cit mai rapid
cererilor clientilor, pagina WEB a fost impartita in trei blocuri. Primul bloc
si ultimul, care nu se modifica niciodata pe intreaga perioada de functionare,
se incarca in memorie imediat dupa restart. Al doilea bloc se reactualizeaza
automat la receptionarea unui spot formatat. Deasemenea toate datele, care nu
mai sunt de actualitate, sint sterse imediat dupa transmiterea unui refresh
catre serverul DxCluster. Astfel, in orice moment, la cererea unui client,
pagina WEB este disponibila in cel mai scurt timp posibil pentru a putea fi
transmisa.
Pe viitor am in vedere imbunatatirea functionarii serverului, intoducerea de facilitati noi si posibiltatea mentenantei de la distanta.
Serverul meu poate fi accesat la adresa: http://yo7fws.go.ro. Acesta functioneaza continuu de peste sase luni, fara interventii din partea mea.
Pornind de la acest proiect am mai creat inca un server, “Aproape de ES”, acum offline, care imi afiseaza in timp real evolutia propagarii Es Sporadic pentru frecvente apropiate benzii 144 MHz. Alte proiecte posibile ar putea fi afisare pe harta a evolutiei unui balon, emitator APRS, WSPR, etc. O pagina de internet prin care se extrag legaturile radio dintr-un fisier EDI si afisarea acestora pe harta. Totul tine doar de imaginatie.