OpenWebRX使用SDRPlay RSP1

前段时间使用树莓派和RTL-2832U搭建了简单的OpenWebRX,对RTL-2832U直接I通道采样接收短波效果很不满意。趁着元旦假期有空,折腾一下。

硬件

Raspberry Pi 3B+ (官方操作系统)
SDRPlay RSP1

方案

OpenWebRX有两种方法可以使用SDRplay硬件:

  1. 使用rx_toos和SoapySDR支持库
  2. 使用SDRPlayPorts项目

SoapySDR方案是官方比较推荐的,SDRPlayPorts因其目前极不稳定,所以这里我也没做测试。

扫盲

  • rx_toos
    用于从SDR接收数据,基于 rtl_fmrtl_power, 和rtl_sdr,依赖SoapySDR支持库工作,旨在支持比RTL-SDR更广泛的设备而开发。
    项目地址:https://github.com/rxseger/rx_tools
  • SoapySDR
    一个强大的开源的通用C / C ++ API和运行库,用于与SDR设备连接。使用SoapySDR可以在各种环境中对SDR设备进行实例化、配置、流传输等功能。采用插件架构开发模式,适配设备只需使用相应插件即可,非常便捷。同时SoapySDR基于C/C++开发,惟一依赖C++编译器和cmake,所以依赖这块很好解决。
    项目地址:https://github.com/pothosware/SoapySDR
  • SDRPlayPorts
    基于RTL-SDR开发的接口工具,到目前为止还不是很稳定。
    项目地址:https://github.com/krippendorf/SDRPlayPorts

安装

一、下载安装SDRPlay RSP1驱动

wget https://www.sdrplay.com/software/SDRplay_RSP_API-RPi-2.13.1.run
chmod 755 SDRplay_RSP_API-RPi-2.13.1.run
sudo ./SDRplay_RSP_API-RPi-2.13.1.run

二、安装SoapySDR

git clone https://github.com/pothosware/SoapySDR
cd SoapySDR
mkdir build
cd build
cmake ..
make 
sudo make install
sudo ldconfig
cd ..

三、安装SoapySDRPlay插件

这是SoapySDR运行库的一个插件,必须安装这个插件才能正常使用RSP1。

git clone https://github.com/pothosware/SoapySDRPlay.git
cd SoapySDRPlay
mkdir build
cd build
cmake ..
make
sudo make install

四、安装rx_tools

git clone https://github.com/rxseger/rx_tools
cd rx_tools
mkdir build
cd build
cmake ..
make 
sudo make install
sudo ldconfig
cd ..

五、将内核模块加入黑名单

某些内核模块会锁定USB设备,需要在使用SDR设备之前将其禁用。
如果内核模块未正确列入黑名单,则可能会出现“device not found”错误。

将RTL-SDR列入黑名单

/etc/modprobe.d/blacklist-rtlsdr.conf下创建文件,内容为:

blacklist dvb_usb_rtl28xxu

然后reboot重启树莓派。

将SDRplay列入黑名单

/etc/modprobe.d/blacklist-sdrplay.conf 下创建文件,内容为:

blacklist sdr_msi3101
blacklist msi001
blacklist msi2500

然后reboot重启树莓派。

六、测试SDR设备

  1. 创建SDR实例:SoapySDRUtil –make
  2. 显示已识别的SDR设备:SoapySDRUtil –find

七、添加配置文件到“config_webrx.py“

一定要把以前就得配置文件注释或删除掉

soapy_device_query="0" #can be a number or can correspond to a driver, e.g. soapy_device_query="driver=hackrf", see `rx_sdr --help`
start_rtl_command="rx_sdr -d {device_query} -F CF32 -s {samp_rate} -f {center_freq} -p {ppm} -g {rf_gain} -".format(device_query=soapy_device_query, rf_gain=rf_gain, center_freq=center_freq, samp_rate=samp_rate, ppm=ppm)
format_conversion=""

八、完成,可以启动OpenWebRX了

python2 openwebrx.py

其它配置

自启动运行OpenWebRX程序

官方写一了个开机运行脚本,使用的是tmux。就直接搬过来参考喽。

首先安装tmux

sudo apt-get install tmux

编辑 /etc/rc.local ,在 exit 0 前添加以下内容:

sudo -H -u pi tmux new -d -s openwebrx-session 'bash -c "cd /home/pi/sdr/openwebrx; ./openwebrx.py&./sdrhu.py; bash"'

当中cd命令后面记得修改为你自己OpenWebRX所在的路径
重启树莓派后这个程序自动启动运行的,可以通过 “tmux a”来查看


更多详细文档请参阅官方WIKI

发表评论

电子邮件地址不会被公开。 必填项已用*标注