vineri, 7 februarie 2020

Radio FM (RDS) cu TEF6686

 
   Am aflat de tunerul cu TEF6686 de la Iulian, un radioamator din Craiova. El m-a rugat sa ii modific niste programe Arduino pentru a avea anumite informatii RDS pe PC si ulterior pe un afisaj LCD, pentru a realiza un radio independent. Versiunea comandata de pe PC este folosita mult de radioamatori pasionati de receptii DX, adica "prinderea" unui post indepartat.
   Initial, voiam sa iau radioul lui si sa rescriu/modific programele care le avea, dar am preferat sa comand si eu un tuner pentru ca stau foarte prost cu timpul liber si l-as fi incurcat. Pana sa vina tunerul si apoi sa ma apuc eu de lucru, am aflat ca Iulian si prietenul lui, Florin Matei, au rezolvat cu partea de program Arduino pentru comanda de pe PC cu programul XDR-GTK
   Dupa sosirea tunerului, am lipit fire cu terminale tata, deoarece pasul intre pini e de 2mm, nu 2,54mm cat e pe breadboard sau cablajele de test
si l-am conectat la o placa Arduino Uno sa ii aflu adresa pe i2c cu programul i2c scanner
   M-am "concentrat" pe adaptarea programului de la https://github.com/makserge/tef6686_radio pentru a afisa informatiile pe un afisaj LCD. La indemana a fost un afisaj serial 2004 (cu caractere uriase), ce tocmai il testasem dupa cum se vede in articolele:
Ceas RTC cu afisaj serial
Ceas NTP pe afisaj serial
   Bun, deoarece tunerul se conecteaza pe i2c, iar afisajul pe un pin, schema a fost simpla:
si cu aceasta am testat 2 sketch-uri, radio_serialLCD2 ce are informatii radiotext lung si radio_serialLCD3a ce are si informatii PTY si PI, dar radiotextul prelucrat este mult mai scurt decat cel original.
    Am facut filmuletul radio cu TEF6686 cu afisaj serial
    Deoarece interfata seriala seriala nu este prea populara, am preferat sa trec la interfata i2c, asa ca am modificat schema, adaugand (pe parcurs) si butoane pentru a putea da si comenzi locale, nu numai din ecranul de monitorizare seriala sau PUTTY.
    Am identificat si adresa afisajului cu programul i2 scanner:
    Ca si in cazul afisajului serial, am modificat 2 programe, unul cu radiotext lung si PTY, dar fara PI (TEF6686_1602i2c_v2x) si unul cu informatii PI si PTY (TEF6686_1602i2c_v3x), la final existand 6 butoane fizice (volum +/-, cautare autoamta +/-, crestere si scadere frecventa cu pas de 0,1MHz).
    Pe parcursul testelor am realizat mai multe filmulete:
   Pentru moment, cam atat, dar incerc sa combin cele 2 programe sa am cat mai multe informatii.

11.02.2020
    Schema recomandata de conectare a tunerului cu TEF6686, model TDQ-230V-186, este:

  

14 comentarii:

  1. I do on stm23 a board "maple mini", the display
    ST7920 and encoder works very well.

    RăspundețiȘtergere
    Răspunsuri
    1. depending on my free time I will add other features (encoder, graphic display, STM32 instead Arduino Mega, etc)

      Ștergere
  2. Works fine with your sketch. The original makserge sketch function "radio.getLevel()" might give values like 65536, 65535 back when antenna level is below "0" (uint16_t range). This might result in "%%" display
    behind antenna level value.

    RăspundețiȘtergere
    Răspunsuri
    1. I saw.. you must put instead lcd.print("%"); an additional space: lcd.print("% ");

      Ștergere
    2. I forgot to thank you for donation... ;)

      Ștergere
  3. Salut nicu. as dori si eu un tutorial cu ce fisiere trebuiesc downloadate si cu ce program scriu skatch-urile. pentru unii limbajul arduino e chineza pura. pana acum am inteles ca trebuiesc un arduino uno un sirag de fire parca dupont sau cum le mai spune si butoane. spre ex eu vreau vesiunea rds plus pty si pi. habar nu am dupa ce leg tunerul de arduino ce trebuie sa scriu in ce sa scriu etc.

    RăspundețiȘtergere
    Răspunsuri
    1. Recomand sa incepeti cu ceva mai simplu, un arduino nano un breadboard niste fire si ceva leduri si butoane.
      Pentru radio de mai sus va trebuiesc: un arduino (de preferat nano) un lcd 20x4 un tunner tef6686 si ceva condensatori si rezistori(sunt descrise in schema electrica)
      Le puteti comanda pe toate de pe aliexpress.Apoi incarcat programul in arduino cu ajutorul softului de pe situl: https://www.arduino.cc/en/Main/Software

      Ștergere
  4. In seara asta am instalat arduino pe PC. Apoi am instalat modelul de arduino că e wavgat. Bun. Până aici totul ok.
    Am incercat sa scriu programul primul link și a dat eroare că lipsește ino file. Bun. Am căutat și nu l-am găsit.
    Bun am băgat și skatch și acolo lipsesc fișierele serlcd.h si încă unul pe care.nu l-am reținut.
    V-am zis pentru unii pare floare la ureche iar pentru unii că mine mana prinsa in tocul ușii. E chineză pura.
    Stimabile ce ai făcut aceste explicații pune un loc unde sa fie absolut toate fisier le cu ino cu cpp și cu h. Nu sa stam la căutat prin site și să nu dăm de ele!
    Halal tehnologie. Scrierea asta arduino e ceva mai groaznică fata de pic-uri și icprog

    RăspundețiȘtergere
    Răspunsuri
    1. trebuie sa aveti rabdare.. sounwti care schema ati facut-o si va indic care program trebuie folosit pentru ca trebuie si niste librarii... daca ati incarca programul blink din exemple schimband 1000 cu 500 ati vedea ce simplu e si cum reactioneaza

      Ștergere
    2. cred ca versiunea din aeticolul http://nicuflorica.blogspot.com/2020/07/radio-fm-rds-cu-tef6686-si-arduino-nano.html este ceea ce vreti sa faceti

      Ștergere
    3. haideti sa stabilim o metoda de comunicare mai rapida, sa zicem pe mail, eu am nicu.florica@gmail.com si in functie de ce stabilim, o sa rezolvam cumva

      Ștergere
  5. Felicitari! Interesant proiect. Cit de sensibil este la receptie? Decodeaza RDS si la semnale slabe sau doar posturi locale? Merci de info, succes!

    RăspundețiȘtergere
  6. multumesc... uitsti-va pe canalul https://youtube.com/c/dxfmtv o sa vedeti acolo ce "poate" TEF6686

    RăspundețiȘtergere