SDRサーバ(RTL-SDR)を試す
いつのまにかラジオ関係で楽しんでいるが,本来の目的はNOAA画像受信である(NOAAのカテゴリを作ることにした)
現在NOAA受信用のQFHアンテナはTV(衛星+地デジ)アンテナのケーブルと共用して室内に送っているためノイズが多く受信状態が良好でない場合がある
本来どのくらいの感度があるのか確認するため直接QFHアンテナで受信確認することにした(もっと早くやるべきだったのだけど休日の明るい時にNOAAが近づく事が無かったので遅くなった)
受信試験
衛星の位置が良かったこともあってか感度も良く良好に受信できた
(選択にて元の画像が表示される)
受信音もクリアだったのでTVとケーブルを共用しているせい(後日,TVアンテナを外して受信してみたところ室内でもノイズが減ったので間違いない)か経路でノイズを拾っている疑いがある
対策としては,
①QFHアンテナは野外に受信サーバを設置して直接接続
②ノイズ元を取り除く(TVのせいならLPFで対応できるかも)
③専用のケーブルで室内に引き込む
があり,そもそも①を前提に考えていたので②③は後回しにしていた(①の実施にあたりラズパイZERO2を調達する予定なのだが4か月も技適待ちなのである)
SDRサーバ
丁度良いので運用は先になるがSDRサーバを試す
サーバはarmbianでセットアップされているNano Pi NEO2があるのでRTL-SDRを試す
RTL-SDRは以下で説明されているが簡単には動かない
https://osmocom.org/projects/rtl-sdr/wiki/Rtl-sdr
いろいろ嵌ったが次の手順で行えば動作する(実行時のメッセージは省略)
開発環境設定
$ sudo apt install cmake
$ sudo apt install libglib2.0-dev
DL&コンパイル
$ mkdir SDR
$ cd SDR
$ git clone git://git.osmocom.org/rtl-sdr.git
(変更あり:https://osmocom.org/projects/rtl-sdr/wiki/Rtl-sdr)
$ git clone https://gitea.osmocom.org/sdr/rtl-sdr.git
$ cd rtl-sdr/
$ mkdir build
$ cd build
$ cmake ../ -DINSTALL_UDEV_RULES=ON
$ make
$ sudo make install
(注)コマンドは「/usr/local/bin」にセットアップされる
動作環境設定
$ sudo ldconfig
$ sudo cp ../rtl-sdr.rules /etc/udev/rules.d/
$ sudo su
# echo 'blacklist dvb_usb_rtl28xxu' > /etc/modprobe.d/blacklist-rtl.conf
(注)「rtl-sdr.rules」は既にコピーされているかもしれない
再起動
$ shutdown -r now
嵌った時
cmakeでエラーになるとか,makeでlibusb.h が無いとかリンクでライブラリが無いとか嵌ることがあるが「libglib2.0-dev」のインストールで解決するようだ
もしエラーが消えないなら追加で以下を試してみると良い(追記:クリーンインストール時,以下が必要であった)
$ sudo apt install libusb-dev
$ sudo apt install libusb-1.0-0-dev
テスト
$ rtl_test
サーバ起動
$ rtl_tcp -a 192.168.xxx.xxx
(追記:以下で良い)
$ rtl_tcp -a 0.0.0.0
(オプション)
Usage: [-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: 15, set by library)]
[-n max number of linked list buffers to keep (default: 500)]
[-d device index (default: 0)]
[-P ppm_error (default: 0)]
[-T enable bias-T on GPIO PIN 0 (works for rtl-sdr.com v3 dongles)]
(チューナーが2個の場合)
Found 2 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001
1: Realtek, RTL2838UHIDIR, SN: 00000001
(1を選択して起動)
$ rtl_tcp -a 192.168.xxx.xxx -p 1234 -d 1
SDR#
①で「RTL-SDR TCP」を選択して②を実行
IPアドレスとポート番号(デフォルトが1234)を入力
SDR#はAGCを選択しても保持されないようなので毎回起動時にチェックする(サーバ起動時に選択もできるようだ)
HDSDR
「ExtIO_RTL_TCP.dll」を入手してセットアップ(HDSDRのフォルダーに置く)する
起動して①のSDR-DeviceでIPアドレスとポート番号を入力しようとしても入力できないので②のoptioonsの「select input」→「Realtek RTL2832」を実行すると入力できるようになる
(起動時は入力できない)
(「Realtek RTL2832」を実行した後は,先に入力されているIPが選択された状態になる)
ここで「192.168.xxx.xxx:1234」と入力しようとすると入力途中でハングアップする
ハングアップしたら強制終了しても再起動でハングアップするのでHDSDRのフォルダーにある「delete_settings.cmd」を起動前に実行する
IPアドレスとポート番号の入力はカット&ペーストで行う(入力途中に接続にいってハングアップしていると思われる)
停止して入力すれば問題ないようだ