Kalkulačky elektronických veličin

Občas se hodí spočítat různé veličiny, a i když je na internetu podobných kalkulaček plno, líbilo by se mi je mít po ruce na jednom místě. Proto jich sem pár postupně vložím, primárně pro sebe, ale nebojte se je použít taky.

dBm/Watt

dBm/W
dBm
Výkon (mW): 
Výkon (W): 

Rezonanční kmitočet LC obvodu

LC
Indukčnost cívky (v mikrohenry)
Kapacita kondenzátoru (v pikofaradech):
F0: MHz

Vlnová délka z frekvence

λ
Frekvence v MHz
Vlnová délka v metrech: 
Rubriky: Elektro bastlení, Nezařazené | Napsat komentář

RadioDNS – hybrid radio

Už nějakou dobu provozujeme DAB multiplex nejmenovaného rádia, a když jsem zaslechl o radiodns/hybrid radio, hned jsem měl o čem přemýšlet a studovat. Není to raketová věda, jde o opensource technologii a dokumentace existuje. Po chvíli studia dokumentace jsem se do toho pustil a nějaké informace rád předám dál.

Co to vlastně je

Hybrid radio/radiodns kombinuje poslech standardního rádia přes FM nebo DAB, ve chvíli kdy dojde k výpadku signálu a radiopřijímač to podporuje, pokusí se najít alternativní stream přes internet a pokračovat v poslechu. Jde o standard ( ETSI TS 103 270 ), který podporují modernější autorádia.

Jak to funguje

(Auto)rádio dle frekvence/DAB údajů zjistí URL, ze které může čerpat stream a další informace. A je to poměrně triviální:

Z frekvence na FM a dalších údajů (RDS PI) se provede překlad na DNS záznam, například takto:

09580.c479.ce1.fm.radiodns.org

Jak to provedl ? Tak si to rozeberme:

09580 je kmitočet – v tomto případě 95,8MHz
c479 je RDS PI rádia. Je unikátní v rámci regulátora (v případě naší země ČTÚ) pro každou radiostanici
ce1 je GCC – kombinace ECC ID (kód země, e1, viz. RDS standard třeba http://poupa.cz/rds/countrycodes.htm ) a prvního znaku RDS PI

U DAB je to analogické:

0.2fba.2007.2e2.dab.radiodns.org

0 je service. Pokud neprovozujeme víc services, zůstaneme u nuly a je to tak v pořádku.
2fba je ID DAB stanice. Opět přidělené regulátorem
2007 je ensemble ID. Přidělené regulátorem a jedinečné v rámci jednoho muxu
2e2 je opět GCC. Kombinace ECC ID (e2) s ID DAB. Tady 2e2

Pro lenochy jsem vytvořil jednoduchou kalkulačku, stačí vyplnit ECC/EID/SID a máte DNS záznam pro radiodns.org 🙂

FM
ECC:
Frekvence:
RDS PI:
DAB
ECC:
Ensemble ID:
Service ID:
Service component ID:

Tím známe DNS záznam u radiodns.org a provedeme jeho překlad:

;; QUESTION SECTION:
;0.2f76.2001.2e2.dab.radiodns.org. IN	A

;; ANSWER SECTION:
0.2f76.2001.2e2.dab.radiodns.org. 900 IN CNAME	zunradio.cz.
zunradio.cz.		3600	IN	A	217.198.114.120

Následně proběhne dotaz na DNS SRV záznamy _radioepg._tcp.domena_dle_cname a _radiovis_tcp.domena_dle_cname, takto (přiklad z radia ZUN):

tuxik~$ dig _radiovis._tcp.zunradio.cz srv

; <<>> DiG 9.16.37-Debian <<>> _radiovis._tcp.zunradio.cz srv
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42574
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;_radiovis._tcp.zunradio.cz. IN SRV

;; ANSWER SECTION:
_radiovis._tcp.zunradio.cz. 3600 IN SRV 0 100 61613 vis.zunradio.cz.

;; Query time: 35 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Aug 17 01:36:52 CEST 2023
;; MSG SIZE rcvd: 90

tuxik~$ dig _radioepg._tcp.zunradio.cz srv

; <<>> DiG 9.16.37-Debian <<>> _radioepg._tcp.zunradio.cz srv
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61135
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;_radioepg._tcp.zunradio.cz. IN SRV

;; ANSWER SECTION:
_radioepg._tcp.zunradio.cz. 3600 IN SRV 0 100 80 epg.zunradio.cz.

;; Query time: 31 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Aug 17 01:37:01 CEST 2023
;; MSG SIZE rcvd: 90

Vida, servery máme, tak zjistíme SI (service information). Dle normy je vzdy na stejne URL, a to:

http://URL_DLE_DNS/radiodns/spi/3.1/SI.xml

V případě rádia ZUN:
http://epg.zunradio.cz/radiodns/spi/3.1/SI.xml

Provedeme tedy dotaz na tento soubor a voila, máme co potřebujeme. URL streamu a DAB frekvenci:

<bearer id="dab:2e2.2001.2f76.0" cost="20" mimeValue="audio/aacp" offset="2500"/>
<bearer id="https://stream.zunradio.cz/zun2.aac" cost="70" mimeValue="audio/aacp" bitrate="48" offset="16000"/>
<bearer id="https://stream.zunradio.cz/zun1.aac" cost="72" mimeValue="audio/aacp" bitrate="128" offset="16000"/>
<radiodns fqdn="rdns.zunradio.cz" serviceIdentifier="zunradio"/>

(Auto)rádio už tedy ví, kam se spojit na stream, ví alternativní DAB a FM frekvence a mělo by to fungovat jak zamýšlí norma. Celý SI (service information) soubor je poměrně dlouhý a složitý, jsou v něm informace o logu stanice v různých rozlišeních, informace o stanici, alternativní frekvence v DAB a FM, ale rozebírat si ho nebudeme. Kdo chce, může si jak inspiraci načíst http://epg.zunradio.cz/radiodns/spi/3.1/SI.xml nebo http://epg.radiosazava.cz/radiodns/spi/3.1/SI.xml nebo složitější Český Rozhlas https://d2qydwcycui0ka.cloudfront.net/b0d51624f9a7e63df994c2df9128f614250c2861aeb9f55a19146e9877b2201b.xml
Možností je opravdu mnoho, více viz. standard na webu radiodns.org

Jak rádio zjistí název hrané písničky a obrázek coverart

Přes již zmiňovaný radiovis. Vysílá se URL obrázku a text. Pro radiovis existuje několik různých opensource programů, my se zaměříme na radiovis-stomp-server . Autorem je BBC, pro běh potřebuje nodejs a ovládá se přes curl.

Předpokládám, že člověk, který se do instalace pustí, má nějaké znalosti Linuxu, takže jen v bodech:

git clone https://github.com/bbc/node-radiovis-stomp-server.git
cd node-radiovis-stomp-server/


Poeditujeme services.json, abychom vysílali správné údaje:

{
"sazava": {
"name": "Radio Sazava",
"default_image": "http://radiosazava.cz/image/freestyle/sazava_logo_www.png",
"default_link": "http://www.radiosazava.cz",
"bearers": [ "dab:2e2.2007.2fba.0" ]
}
}

No a spustíme:
node ./bin/radiovis-stomp-server

Pro serioznější provoz doporučuji spouštění pod supervisor nebo jako systemd unitu (nebo ve screen a bash while smyčce, co je komu po libosti…).

Radiovis nám běží, tak do něj opatrně zkusíme poslat nějaká data.

curl http://localhost:3000/services/sazava -d 'image=http://nejaka_url_s_obrazkem_pisnicky/image.jpg' -d "text=nazev_pisnicky"

Radiovis nám vrátí „Content Published“ a odvysílá ve STOMP obsah.

Pro ladění existuje opět od BBC radiovisdemo , stačí upravit soubory v adresáří conf a můžete testovat i bez registrace na radiodns.org.

Chci to implementovat do vlastního rádia, co dál ?

Pokud existují korektní SRV záznamy v DNS, existuje SI (service information) XML soubor a běží VIS server, už zbývá jen poslední krok – poslat žádost o registraci radiodns.org domény. Může vypadat třeba takhle:

Hello,

we want to use radiodns for our radio, details are below:

_radiovis._tcp.rdns.radiosazava.cz. 820 IN	SRV	0 100 61613 vis.radiosazava.cz.
_radioepg._tcp.rdns.radiosazava.cz. 499 IN	SRV	0 100 80 epg.radiosazava.cz.

Name and phone number: XXX YYY, +420123456789

Radio name: OUR RADIO

Licence authority: Český telekomunikační úřad (www.ctu.cz)

Zone and SI file is attached.

Thanks,

Regards,

Jako přílohu nezapomeňte doplnit SI soubor a zónový soubor DNS. E-mail posilejte na registrations@radiodns.org, odpoví obvykle do 24 hodin.

Pokud někomu text pomohl, dejte vědět do komentářů, pokud si s něčím nevíte rady, ptejte se. Rád odpovím. A díky za přečtení !

Rubriky: Nezařazené, Rozhlasové vysílání | Napsat komentář

Web je zpět

Web je zpět, třeba sem někdy něco napíšu 🙂

Rubriky: Nezařazené, Život | Napsat komentář