PlutoSDRをGNURadioで使う

PlutoSDRはアナログデバイセズ製のSDR入門機。愛用のUSBオシロADALM2000とボディ形状がほぼ同じで兄弟デバイスみたいな物。

ADALM-PLUTO 評価用ボード | アナログ・デバイセズ
ADALM-PLUTO アクティブ・ラーニング・モジュール(PlutoSDR)は、電子工学の学習者がソフトウェア無線(SDR)、無線周波数(RF)、無線通信の基礎を学ぶことができる、使いやすいツールです。あらゆるレベルやバックグラウンドの学...

帯域幅も最大20MHzとADALM2000のA/D変換とほぼ同等のスペックだが、SDRなので325MHz〜3.8GHzの送受信に対応する。ただ対応するRF周波数の範囲はHackRF Oneの1MHz〜6GHzよりは狭い。

今回は、このPlutoSDRをGNURadio用にセットアップしたので、記事にまとめる。

スポンサーリンク

ドライバとGNURadio用ブロックのインストール

Windows用のインストーラが用意されているわけでもなくお世辞にも簡単セットアップとは言えない。ソースからのビルドが基本でインストール方法は下記公式サイトにまとめられている。

GNU Radio and IIO Devices: gr-iio [Analog Devices Wiki]

CMakeベースなのでビルド手順そのものは簡単だが、Windows上だとビルドすること自体が面倒臭いのでUbuntu環境で設定することにした。どうしてもWindows上で動かしたい場合は、ADALM2000のようにWSL上で動作させるのが良さそう。

バイナリパッケージのインストール

まずは依存ライブラリのインストールをしておく。

sudo apt install libxml2 libxml2-dev bison flex cmake git libaio-dev libboost-all-dev libavahi-common-dev libavahi-client-dev swig

ドライバのインストール

libiioのソース取得/ビルド/インストール。

git clone https://github.com/analogdevicesinc/libiio.git
cd libiio
cmake .
make 
sudo make install

libad9361-iioのソース取得/ビルド/インストール。

git clone https://github.com/analogdevicesinc/libad9361-iio.git
cd libad9361-iio
cmake .
make 
sudo make install

GNURadio用入出力ブロック

システムにインストールされているGNURadioのバージョンによってソースコードが変わるので注意。GNURadioのバージョンは”gnuradio-config-info -v”コマンドで調べることが出来る。

  • GNURadio3.7の場合
git clone https://github.com/analogdevicesinc/gr-iio.git
  • GNURadio3.8の場合
git clone -b upgrade-3.8 https://github.com/analogdevicesinc/gr-iio.git

ソースを取得したら以下のコマンドでビルド&インストールを実行。

cd gr-iio
cmake .
make 
sudo make install
sudo ldconfig

2.4GHz帯を受信して動作確認

お約束のFMラジオを動かしてみようと思ったのだが、PlutoSDRの受信可能周波数は325MHz〜なので範囲外。そこで、SMA接続のロッドアンテナを取り付けて2.4GHz帯をスペアナ表示してみた。断続的にスペクトルが立ち上がってWiFiかBluetoothか何らかの通信が行われている様子が確認出来る。

2.4G

まとめ

PlutoSDRのUbuntuへのセットアップについてまとめた。ドライバやGNURadio用ブロックはソースからのビルドが必要ではあるが、特に躓くこと無くインストール出来た。

良い活用法が思いついてないのだが、ワンセグ受信には成功したので、直近ではワンセグ録画機として使っている。

コメント