====== SDR ====== ---- datatemplateentry project ---- template : :sys:tpl:project description : Software Defined Radio mit DVB-T/DAB USB-Stick ezcap 668 coordinators : [[:users:skruppy:]] confidants : state_tags : in progress type_tags : elektro, software, SDR, funk ---- Ein //ezcap 668// ist ein USB DVB-T und DAB Empfänger. Seine Technischen Daten sind: * Chipset: [[http://www.realtek.com.tw/products/productsView.aspx?Langid=1&PFid=35&Level=4&Conn=3&ProdID=257|RTL2832U]] * Tuner: E4000 * 75 Ohm Eingang * range: 52 to 2208 MHz * L-band gap: 1105 to 1247 MHz Er war das günstigste mit der besten leistung was es bei [[http://www.dealextreme.com/p/mini-dvb-t-digital-tv-usb-2-0-dongle-with-fm-dab-remote-controller-92096?item=1|DealExtreme]] gab. http://www.reddit.com/r/RTLSDR/comments/s6ddo/rtlsdr_compatibility_list_v2_work_in_progress/ http://hackaday.com/2012/03/30/working-software-defined-radio-with-a-tv-tuner-card http://redd.it/rbqfz Achtung! Verschiedene Benutzer berichten dass die ESD Diode beim ezcap fehlt, kann heissen das statische Elektrizität die Chips brät. Beschreibung wie die Diode reingelötet wird: https://radioscanning.wordpress.com/2012/09/15/rtl-sdr/ ===== Normaler betrieb ===== Auf der CD ist ein Ordner mit Sourcen um sich seinen eigenes Linux Modul zu bauen. Dabei ist dreimal das fast gleiche drauf, nur mit jeweils leichten patches. Das ganze gibt es aber auch auf [[https://github.com/ambrosa/DVB-Realtek-RTL2832U-2.2.2-10tuner-mod_kernel-3.0.0/blob/master/RTL2832-2.2.2_kernel-3.0.0/nim_rtl2832_e4000.c|GitHub]]. Das [[http://aur.archlinux.org/packages.php?ID=51225|AUR Paket]] welches direkt aus den GitHub sourcen compiliert hat derzeit noch ein problem. Dafür gibt es ein [[https://aur.archlinux.org/packages.php?ID=58148|alternatives AUR Paket]] ... welches zwar baut aber beim offnen des geräts abstürzt. Weitere Infos gibt es auf dem [[http://linuxtv.org/wiki/index.php/EzCap_DVB_T_Stick|LinuxTV wiki]]. ===== Installation ===== ==== Alle ==== Eine udev regel sorgt dafür, dass jeder user der in der gnuradio gruppe ist, auf das USB gerät zugreifen darf. Dazu muss als erstes //als root// die Regel und die Gruppe angelegt werden. echo 'ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="2838", MODE="0660", GROUP="gnuradio"' >/etc/udev/rules.d/42-rtlsdr.rules groupadd --system gnuradio Danach kann man sich und weitere der Gruppe hinzufügen. Ein ab- und anstecken sowie ein ab- und anmelden sort dafür das alles geht. ==== Arch ==== === rtl-sdr === [[http://aur.archlinux.org/packages.php?ID=58016|AUR]], [[http://cgit.osmocom.org/cgit/rtl-sdr/|GIT]] wget http://aur.archlinux.org/packages/rt/rtl-sdr-git/rtl-sdr-git.tar.gz tar -xvf rtl-sdr-git.tar.gz cd rtl-sdr-git makepkg -s sudo pacman -U rtl-sdr-git-*.pkg.tar.xz * /usr/bin/rtl_sdr * /usr/bin/rtl_tcp * /usr/bin/rtl_test * /usr/include/rtl-sdr_export.h * /usr/include/rtl-sdr.h * /usr/lib/librtlsdr.a * /usr/lib/librtlsdr.so -> librtlsdr.so.0 * /usr/lib/librtlsdr.so.0 -> librtlsdr.so.0.0.0 * /usr/lib/librtlsdr.so.0.0.0 === gr-osmosdr === [[http://aur.archlinux.org/packages.php?ID=58751|AUR]], [[http://cgit.osmocom.org/cgit/gr-osmosdr/|GIT]] wget http://aur.archlinux.org/packages/gr/gr-osmosdr-git/gr-osmosdr-git.tar.gz tar -xvf gr-osmosdr-git.tar.gz cd gr-osmosdr-git makepkg -s sudo pacman -U XXXXXXXXXXXXXXXXX === GNU Radio === Eine anleitung für Arch ist im [[http://gnuradio.org/redmine/projects/gnuradio/wiki/ArchInstall|GNU Radio Wiki]] wiki zu finden. Eine genauere zum konfigurieren ist [[http://gnuradio.org/redmine/projects/gnuradio/wiki/CMakeWork#UNIX-configuration|dort]] auf zu finden. Es ist wichtig das alle dependencies //vorher// installiert sind, da GNU Radio sonst einfach still und leise nur einen kleinen Teil baut. Beim configurieren läuft eine [[http://www.ruby-forum.com/topic/4274768|Zusamenfassung]] vorbei, welche Komponenten gebaut werden und drüber steht blockweise warum. Wichtig ist das "gnuradio-companion" (die GUI um sich den Signalplan zusammen zu klicken) gebaut wird. Ggf. ist es einfacher alles ohne Arch packages zu bauen (sie geben aber hinweise auf die dependencies. Ggf. kann man doxygen deaktivieren um das lang dauernde erstellen der LaTeX doku zu verhindern. Für GNU Radio muss zuerst die Python template engine Cheetah installiert werden. [[https://aur.archlinux.org/packages.php?ID=54924|AUR]] [[http://pypi.python.org/pypi/Cheetah/2.4.4#downloads|Sourcen]] wget https://aur.archlinux.org/packages/py/python2-cheetah/python2-cheetah.tar.gz tar -xvf python2-cheetah.tar.gz cd python2-cheetah makepkg -s sudo pacman -U python2-cheetah-*.pkg.tar.xz GNU Radio geht zwar auch mit QWT6 (erweiterung von Qt für die Wissenschaft), aber [[http://pyqwt.sourceforge.net/|PyQWT]] ([[http://aur.archlinux.org/packages.php?ID=19106|AUR]]) braucht noch QWR5 ([[http://aur.archlinux.org/packages.php?ID=50980|AUR]]) [[http://code.ettus.com/redmine/ettus/projects/uhd/wiki|UHD]] ([[http://aur.archlinux.org/packages.php?ID=57392|AUR]]) ist ein Hardware Trieber. Wird dem [[https://aur.archlinux.org/packages.php?ID=60437&detail=1|ältersten Kommentar]] zufollge benötig. [[http://aur.archlinux.org/packages.php?ID=39425|AUR]] wget http://aur.archlinux.org/packages/gn/gnuradio-git/gnuradio-git.tar.gz tar -xvf gnuradio-git.tar.gz cd gnuradio-git makepkg -s sudo pacman -U XXXXXXXXXXXXX ===== Die Komponenten ===== ==== rtl_sdr ==== An I/Q recorder for RTL2832 based DVB-T receivers -f frequency_to_tune_to [Hz] [-s samplerate (default: 2048000 Hz)] [-d device_index (default: 0)] [-g gain (default: 0 for auto)] [-b output_block_size (default: 16 * 16384)] [-S force sync output (default: async)] filename (a '-' dumps samples to stdout) ==== rtl_tcp ==== An I/Q spectrum server for RTL2832 based DVB-T receivers [-a listen address] [-p listen port (default: 1234)] [-f frequency to tune to [Hz]] [-g gain (default: 0 for auto)] [-s samplerate in Hz (default: 2048000 Hz)] [-b number of buffers (default: 32, set by library)] [-d device index (default: 0)] ==== rtl_test ==== A benchmark tool for RTL2832 based DVB-T receivers [-s samplerate (default: 2048000 Hz)] [-d device_index (default: 0)] [-t enable Elonics E4000 tuner benchmark] [-b output_block_size (default: 16 * 16384)] [-S force sync output (default: async)] ==== GNU Radio ==== Einen kurzen einstieg gibt es im [[http://gnuradio.org/redmine/projects/gnuradio/wiki/HowToUse|GNU Radio Wiki]]. Es gibt die follgenden zwei Source blocks die das USB gerät als SDR in GNU Radio einbinden können. === gr-osmosdr (OsmoCom/OsmoSDR source block) === Der source block vom OsmoCom Projekt OsmoSDR. http://sdr.osmocom.org/trac/wiki/rtl-sdr === gr-baz === Das ist der "orginal" source block von dem der es als erstes implementiert hat: http://wiki.spench.net/wiki/RTL2832. Am ende der Seite sind auch viele links zu finden. http://wiki.spench.net/wiki/Gr-baz ===== Peiler ===== Zefix da war wer schon schneller: http://wiki.spench.net/wiki/SDRDF (allerdings hat er es mit einem input des referenzsignals und somit einem tuerenren SDR gemacht) ==== Switching box ==== [[http://www.mpdigest.com/issue/Articles/2009/june/skyworks/Default.asp|Artikel über Klassische und FET switches]] [[http://homebrewbbs.blogspot.de/p/rf-switch-attenuator-phase-shift.html|Sammlung]] mit [[http://www.qsl.net/va3iul/Homebrew_RF_Circuit_Design_Ideas/TX-RX_RF_Switch_PIN.gif|Klasischem]] und [[http://www.qsl.net/va3iul/Homebrew_RF_Circuit_Design_Ideas/TX-RX_RF_Switch_FET.gif|FET]] switch. [[http://ej.iop.org/images/0268-1242/20/8/005/Full/sst189912fig02.jpg|FET switch]] [[http://www.homingin.com/newdopant.html|Projekt "New switching box"]] [[http://www.byonics.com/dsp-rdf/|Project]] [[http://www.byonics.com/dsp-rdf/dsp-rdf_ant_ctl_schematic.pdf]] (similar to the "new switching box") [[http://ka7oei.com/MONTSCH2L.GIF|Schematics]] (similar to the "new switching box") [[http://www.handi-finder.com/|Projekt "Handy finder"]] [[http://www.handi-finder.com/images/hf2sch02hor800x600.jpg|Schematics]] ([[http://www.handi-finder.com/images/hf2sch02.pdf|PDF]]) [[http://www.qsl.net/ve2emm/pic-projects/doppler3/doppler3-e.html|Projekt]] [[http://www.qsl.net/ve2emm/pic-projects/doppler3/dopl3v2_ant_switcher_schematic.GIF|Schematics]] [[http://www.qsl.net/ve2emm/pic-projects/doppler3/switch_insid.jpg|Bild]] ===== Weitere Anwendungen ===== ==== Sammlungen ==== * In den Sourcen ''find -name %%'*.grc'%%'' sich weitere beispiel files. * http://www.dl8rds.de/index.php/GNURadio_and_USRP2 ==== UKW Empfänger ==== Die UKW demodulation ist auf [[http://de.wikipedia.org/wiki/%C3%9Cberlagerungsempf%C3%A4nger|Wikipedia beschrieben]] oder [[http://www.welt-der-alten-radios.de/technik-1-wie-funktioniert-radio-142.html|hier]]. EIne auch mit langsamenen Atom rechnern funktionierende Implementierung LOL ist hier {{:projects:ukw.zip|}} Eine erfolgreiche implementierung (plus ein paar RTL SDR tips) sind auf [[http://slug.blog.aeminium.org/2012/04/21/rtlsdr/|slug's blog]] zu finden. {{:projects:ukw.grc.png?direct|}} ==== NFM Empfänger ==== https://apollo.open-resource.org/mission:log:2012:05:06:rtlsdr-osmosdr-gnuradio-fm-receiver ==== FM empfänger ==== http://al.robotfuzz.com/~al/rtl2832/ ==== Wasserfall Diagramm ==== https://github.com/keenerd/rtlsdr-waterfall brauch einen [[https://github.com/roger-/pyrtlsdr|Python libsdr wrapper]] (es gibt mehrere). ==== Multifunktionaler Empfänger (multimode) ==== http://www.designspark.com/content/software-defined-radio-shoestring ==== Funk Thermometer auslesen ==== https://github.com/kevinmehall/rtlsdr-433m-sensor \\ (zufälligerweise hat Skruppy so eins, aber der Empfang hat nicht funktioniert) ==== GPS empfang ==== http://michelebavaro.blogspot.it/2012/04/spring-news-in-gnss-and-sdr-domain.html ===== Diskussion ===== * TomC0D: Die Software hat viele viele Abhängigkeiten, das zu kompilieren ist die Hölle. @Skruppy, hast Du nicht gesagt es gibt irgendwo ein VM-Image mit einer funktionierenden GnuRadio Installation? @TomC0D: Ne, ich habe das nicht gesagt, aber auch schonmal gehört. Was ich auf die Schnelle gefunden habe ist https://groups.google.com/d/msg/ultra-cheap-sdr/CTfdIplrtGM/jSQaqOXPJEEJ . Aber die dependencies + OS ist platz technisch immer noch größer als nur die dependencies und die sind dokumentiert. Aber ich gebe dir recht das die installation a pain in the ass war (vieleicht müsste man sowas vorher in ner VM üben) * xxm: Ein ziemliches leichtgewicht ist rtl_fm, ein Teil von rtl-sdr ( http://sdr.osmocom.org/trac/wiki/rtl-sdr#rtl_sdr , auch z.B. in Debian) aber nur Kommandozeile (mehr infos hier: http://kmkeen.com/rtl-demod-guide/index.html ). Was scheinbar komfortabler wäre (und mit GUI! Hui!) ist SDR# - Installation hier: http://rtlsdr.org/softwarelinux ABER läuft bei mir zumindest nicht stabil und langsam, SDR# ist mehr so was für Windows). ===== Tipp: VM, die schon GNURadio installiert hat ===== Folgendes hat Schneider vom muCCC vermailt neulich (Jan 2015): * http://web.xtort.eu/GNURadio-31C3.ova (Kann man direkt in VirtualBox importieren.) sha512sum: c9a809b1476d1bb820b3a65e2616732bd077f8cd21515097b579666be82e5136b6386e1dd4bcde8728dd64403f70a6de13a6bdf056b231ba67ef8c51280a2261