część pierwsza – bez lutownicy
Z racji zainteresowań technologią SDR i wykorzystaniem jej na pasmach amatorskich zapragnąłem wzorem twórców projektu OsmoSDR oraz RTLSDR wykorzystać elektronikę tunera DVB-T do stworzenia małego przenośnego odbiornika SDR.
Z powodu małych wymiarów tunera DVB-T z interfejsem USB stanowi to doskonałe rozwiązanie do wykorzystania wraz z laptopem w podróży do prowadzenia nasłuchów.
Compro VideoMate U620F – widok z bliska.
Z informacji zawartych na stronach obu projektów zebrałem dane o tym jaki tuner byłby najlepszy i takiego szukałem na lokalnym rynku sprzedaży internetowej.
Znalazłem model VideoMate U620F firmy Compro wyposażony w chipset Realtek RTL2832U oraz układ tunera Elonics E4000, który ma najszerszy zakres częstotliwości ze wszystkich dostępnych tunerów tego typu na rynku.
Tuner jest większy od przeciętnego pendrive’a i mniejszy od modemu 3G a więc naprawdę maleństwo.
W pracy codziennej wykorzystuję systemy operacyjne Linuks i na takim systemie rozpocząłem przygotowania do uruchomienia oprogramowania.
Aby kompilacja przebiegała poprawnie konieczne jest wcześniejsze zainstalowanie pakietów rozwojowych biblioteki libusb1.0 jak i samej biblioteki.
W celu pobrania źródeł oprogramowania RTL-SDR wykonałem w konsoli polecenie:
git clone git://git.osmocom.org/rtl-sdr.git
Do lokalnego katalogu zostały pobrane źródła bibliotek i oprogramowania przechwytującego RTL-SDR. Aby to się powiodło w systemie musi być zainstalowany menedżer zawartości katalogu GIT.
Następnie wykonałem poniższe polecenia zgodnie z opisem na stronie projektu:
cd rtl-sdr/ mkdir build cd build cmake ../ make sudo make install sudo ldconfig
Po skompilowaniu oprogramowania otrzymujemy programy takie jak
rtl_fm – służący do odbioru radia fm
rtl_sdr – służący do odbioru całego zakresu częstotliwości tunera E4000 – ten najbardziej nas interesuje
rtl_test – służący do wykonywania testów i określania parametrów tunera
rtl_tcp – służący do komunikacji po sieci TCP/IP
Wykonanie w konsoli polecenia rtl_sdr -t dało mi wynik :
Found 1 device(s):
0: Compro Videomate U620F
Using device 0: Compro Videomate U620F
Found Elonics E4000 tuner
Supported gain values (14): -1.0 1.5 4.0 6.5 9.0 11.5 14.0 16.5 19.0 21.5 24.0 29.0 34.0 42.0
Benchmarking E4000 PLL…
[E4K] PLL not locked for 53000000 Hz!
[E4K] PLL not locked for 2207000000 Hz!
[E4K] PLL not locked for 1104000000 Hz!
[E4K] PLL not locked for 1251000000 Hz!
E4K range: 54 to 2206 MHz
E4K L-band gap: 1104 to 1251 MHz
Jak widać , zakres częstotliwości odbiornika to 54MHz do 2,2GHz – całkiem sporo , choć i jest mała wada – przerwa o rozpiętości 147MHz w zakresie od 1104MHz do 1251MHz .
Na koniec tego etapu przygotowań test częstotliwości próbkowania przy której nie będą występowały błędy. Zgodnie z instrukcją ze strony projektu wykonujemy polecenie :
rtl_test -s 3.2e6
Jeśli w konsoli zobaczymy wynik jak poniżej :
Found 1 device(s):
0: Compro Videomate U620F
Using device 0: Compro Videomate U620F
Found Elonics E4000 tuner
Supported gain values (14): -1.0 1.5 4.0 6.5 9.0 11.5 14.0 16.5 19.0 21.5 24.0 29.0 34.0 42.0
Reading samples in async mode…
lost at least 3044 bytes
lost at least 2812 bytes
lost at least 3612 bytes
lost at least 3820 bytes
będzie to oznaczało, że ta częstotliwość próbkowania jest zbyt wysoka i należy sprawdzić niższą aż do skutku lub od razu sprawdzić podaną na stronie częstotliwość próbkowania 2.4e6 która działa na większości tunerów bez gubienia danych „po drodze”.
Zakończony etap pierwszy przygotowań , backend mamy gotowy , czas przysposobić sobie jakiś frontend naszego oprogramowania.
Wybór padł na oprogramowanie mocno przenośne czyli SDR# (sdrsharp) – aby można łatwo zarówno pod Linuksem jak i Windowsem posłuchać.
Ponieważ oprogramowanie jest pisane i kompilowane dla systemów Windows w linuksie należy użyć emulatora MONO w celu uruchomienia SDR#.
W tym celu należy zainstalować pakiety mono lub mono-complete w zależności od wykorzystywanej dystrybucji, oraz pakiet libportaudio2.
Teraz wystarczy pobrać wersję rozwojową SDR# ze strony http://sdrsharp.com/index.php/downloads , rozpakować i wykonać kilka zabiegów.
Po rozpakowaniu , z katalogu programu należy podlinkować dwie biblioteki do obsługi dźwięku.
W przypadku mojego systemu polecenia te wyglądały następująco:
ln -s /usr/local/lib/librtlsdr.so librtlsdr.dll
ln -s /usr/lib/x86_64-linux-gnu/libportaudio.so.2 libportaudio.so
Po tych zabiegach wystarczy wydać polecenie :
mono SDRSharp.exe
i naszym oczom ukaże się taki ekran:
Teraz wystarczy już podłączyć antenę do naszego „odbiornika” z lewej strony okna programu SDR# w zakładce „Radio” z listy rozwijanej obok nieaktywnego klawisza „Front end” należy wybrać „RTL-SDR/USB”.Pozostaje ustawić interesującą nas częstotliwość środka pasma ,rodzaj modulacji i możemy włączyć nasz odbiornik klawiszem „Play” w lewym górnym rogu okna programu. W głośnikach powinniśmy usłyszeć szum tła lub jeśli trafimy na zajętą częstotliwość nadającą właśnie stację.W przypadku braku odsłuchu a jednocześnie widocznym ruchu na „wodospadzie” możemy próbować ustawień w zakładce „Audio”.W moim przypadkunie było to konieczne, program rozpoznał i ustawił właściwy serwer dźwięku. Aby uzyskać działający odbiornik SDR w oparciu o opisane oprogramowanie i tuner DVB-T nie trzeba używać lutownicy i innych elektronarzędzi, wystarczy odrobina czasu i stosowanie się do opisów uruchomienia dostępnych na stronach projektów.W kolejnej części artykułu postaram się opisać przeróbkę sprzętową tunera, już z użyciem lutownicy i nie tylko , w celu rozszerzenia zakresu odbieranych częstotliwości w dół , poniżej 54MHz.
System operacyjny na którym kompilowałem i uruchamiałem oprogramowanie to Mandriva 2012 Technical Preview – rozwojowa wersja
z jądrem w wersji 3.4.1
Strona projektu OsmoSDR http://sdr.osmocom.org/trac/
W przypadku pytań zapraszam do kontaktu drogą mailową na adres mancymonek[at]wp.pl
Grzegorz SQ2RBY
0 komentarzy