Mirror of f4exb's SDRAngel
Go to file
f4exb 1c7ea3dfb3 Added a plugin for BladeRF. Removed GNUradio from the build (gr-osmocom source) as this does not work properly 2015-06-07 03:30:28 +02:00
cmake/Modules Added a plugin for BladeRF. Removed GNUradio from the build (gr-osmocom source) as this does not work properly 2015-06-07 03:30:28 +02:00
include Added a plugin for BladeRF. Removed GNUradio from the build (gr-osmocom source) as this does not work properly 2015-06-07 03:30:28 +02:00
include-gpl Improved GNU Radio plugin usability. Removed osmosdr completely from the build as it is superceded by GNU Radio 2015-05-18 02:18:33 +02:00
plugins Added a plugin for BladeRF. Removed GNUradio from the build (gr-osmocom source) as this does not work properly 2015-06-07 03:30:28 +02:00
sdrbase Added a plugin for BladeRF. Removed GNUradio from the build (gr-osmocom source) as this does not work properly 2015-06-07 03:30:28 +02:00
.gitignore Added a plugin for BladeRF. Removed GNUradio from the build (gr-osmocom source) as this does not work properly 2015-06-07 03:30:28 +02:00
CMakeLists.txt Removed useless spectrum visualizer in NFM receivers. Created a null sink class to fit corresponding parameter in NFMDemod class constructor 2015-05-10 19:21:46 +02:00
Readme.md Improved GNU Radio plugin usability. Removed osmosdr completely from the build as it is superceded by GNU Radio 2015-05-18 02:18:33 +02:00
fcdpp.rules Rules for FCDPP. 2014-12-09 19:13:33 +00:00
main.cpp Restore some logging. 2014-05-21 11:27:55 +01:00

Readme.md

====================== Cloning the repository

  • Clone as usual
  • Checkout the f4exb branch: git checkout f4exb

============== Funcube Dongle

Funcube Dongle Pro+ support will need "libasound2-dev" installed. ("libhid" is built from source). Install the rules file "fcdpp.rules" in "/etc/udev/rules.d" to gain the "root access" needed to control the dongle.

Funcube Dongle Pro+ USB drivers are broken on some hardware with recent kernels. It works well for me with an Atom Chipset, which has Full Speed USB ports, or a "Valleyview" Chromebook (kernel 3.10). A Desktop with the "same" chipset needs kernel 3.2, available with Debian 7 "wheezy". YMMV.

======= BladeRF

You need a very recent (May 2015) version of gr-osmosdr. 0.1.1 does not work but 0.1.5 does. Check to which library points the symbolic link libgnuradio-osmosdr.so. It should be something like: libgnuradio-osmosdr-0.1.5git.so.0.0.

========== For Ubuntu

sudo apt-get install libqt5multimedia5-plugins qtmultimedia5-dev qttools5-dev qttools5-dev-tools libqt5opengl5-dev qtbase5-dev libusb-1.0 librtlsdr-dev

mkdir build && cd build && cmake ../ && make

librtlsdr-dev is in the universe repo. (utopic 14.10 amd64.)

Use cmake ../ -DV4L-RTL=ON to build the Linux kernel driver for RTL-SDR (Experimental). Needs a recent kernel and libv4l2. Will need extra work to support SDRPlay. Needs cp KERNEL_SOURCE/include/linux/compiler.h /usr/include/linux/ and cp KERNEL_SOURCE/include/uapi/linux/videodev2.h /usr/include/uapi/linux/ and package libv4l-dev.

The Gnuradio plugin source needs extra packages, including liblog4cpp-dev libboost-system-dev gnuradio-dev libosmosdr-dev

For non standard installations of RTL-SDR library, the GNU Radio runtime and gr.osmocom drivers use the following variables in the cmake command line. The paths specified are just examples:

  • For GNU Radio runtime:
    • Includes: -DGNURADIO_RUNTIME_INCLUDE_DIRS=/opt/install/gnuradio-3.7.5.1/include
    • Library: -DGNURADIO_RUNTIME_LIBRARIES=/opt/install/gnuradio-3.7.5.1/lib/libgnuradio-runtime.so
  • For gr.osmocom:
    • Includes: -DGNURADIO_OSMOSDR_INCLUDE_DIRS=/opt/install/gr-osmosdr/include
    • Library: -DGNURADIO_OSMOSDR_LIBRARIES=/opt/install/gr-osmosdr/lib/libgnuradio-osmosdr.so
  • For RTL-SDR library:
    • Includes: -DLIBRTLSDR_INCLUDE_DIR=/opt/install/rtlsdr/include
    • Library: -DLIBRTLSDR_LIBRARIES=/opt/install/rtlsdr/lib/librtlsdr.so

There is no installation procedure the executable is at the root of the build directory

============ For Debian 8

Debian 7 "wheezy" uses Qt4. Qt5 is available from the "wheezy-backports" repo, but this will remove Qt4. Debian 8 "jessie" uses Qt5.

sudo apt-get install cmake g++ pkg-config libfftw3-dev libusb-1.0-0-dev libusb-dev qt5-default qtbase5-dev qtchooser libqt5multimedia5-plugins qtmultimedia5-dev qttools5-dev qttools5-dev-tools libqt5opengl5-dev qtbase5-dev librtlsdr-dev

mkdir build && cd build && cmake ../ && make

The same remarks as for Ubuntu apply...

============ Known Issues

  • Actually NFM seems to be working pretty well
  • Does not work properly for RTL-SDR sampling rates not multiple of AF sampling rate (48000 Hz). This is because the interpolator/decimator is not a rational resampler actually (just does one or the other). For now please use 288, 1152 or 1536 kHz sampling rates,
  • RTL frontend will have bad aliasing in noisy environments. Considering the size of the hardware there is no place for proper filters. With good filtering and a good antenna up front these devices work remarkably well for the price!
  • Aliasing can be annoying for broadcast FM. In this case try to shift the signal until you find a clear background for your station. This is a limitation of the RTL hardware so just use this workaround.
  • GNU Radio plugin is still not fully functional:
    • Current settings are not saved and retrieved on the next session
    • DC offset and I/Q policy is not working properly and has been disabled (effectively enforces the "keep" mode always)

=================== Done since the fork

  • Added ppm correction for the LO of RTL-SDR. This uses the corresponding function in the librtlsdr interface (range -99..99 ppm)
  • Added a preset update button (the diskette with the yellow corner) to be able to save the current settings on an existing preset
  • Added variable decimation in log2 increments from 2^0=1 to 2^4=16 allowing to see the full 2048 kHz of spectrum if so you wish
  • Better handling of rtlsdr GUI display when settings change (initial load, load of presets)
  • Added display and precise control of the shift frequency from center frequency of the NFM receivers.
  • Removed useless spectrum visualizer in NFM receivers. Created a null sink class to fit corresponding parameter in NFMDemod class constructor.
  • Added display and precise control of the shift frequency from center frequency of the SSB receivers.
  • Make the sidebands appear correctly on SSB channel overlay. Limit to +/- 6 kHz to fit channel spectrum analyzer window
  • SSB bandwidth can now be tuned in steps of 100 Hz
  • NFM and SSB receiver in focus trigger the display of the central frequency line on the spectrum frequency scale thus facilitating its identification
  • Added AM demod so now you can listen to air traffic!
  • Added the possibility to change the brightness and/or color of the grid.
  • Make the low cutoff frequency of the SSB filter variable so it can be used for CW also.
  • NFM demodulation without using atan and smooth squelch with AGC suppressing most clicks on low level signals and hiss on carrier tails. Only useful modulation comes through.
  • Added working WFM demodulation. Optimized for no atan2.
  • Improved GNU Radio plugin usability with most settings saved on a preset

===== To Do

  • Enhance WFM (stereo, RDS?)
  • Make the the SSB filter frequency bounds tunable so that it can be used for CW. Change marker overlay accordingly.
  • Possibility to completely undock the receiver in a separate window. Useful when there are many receivers
  • Larger decimation capability for narrowband and very narrowband work (32, 64, ...)
  • Even more demods ...
  • Triggering capability like on expensive spectrum analyzers to trap burst signals
  • recording capability