Pocket SDRバージョン0.16以降の利用
はじめに
Pocket SDRは、元東京海洋大学の高須知二先生がGitHubで公開しているオープンソースのGNSSソフトウェア無線受信機です。ハードウェアの設計資料、ファームウェア、ソフトウェアから構成されています。ソフトウェアのコードは簡潔でわかりやすく、最新の信号を含む幅広い民間用GNSS信号を追尾・復号できる特長があります。Windows、Linux(Raspberry Pi OSを含む)、macOSで利用できます。
バージョン0.16以降では、Pocket SDRフロントエンド(FE)に加え、SoapySDRを介してUSRP、LimeSDR、bladeRF、PlutoSDR、RTL-SDRなどのハードウェアも利用できるようになりました。これらの利用方法は、公式README.mdに記載されています。
新しいバージョンでは処理が高速化され、解析できる信号や対応するハードウェアも増えました。そこで、旧バージョンから移行してみました。本記事で使用したバージョンは0.20です。
Windows
新たに対応したハードウェアを利用するには、SoapySDRと各機器に対応するドライバーやモジュールが必要です。Windowsでは、radiocondaをインストールすると、SoapySDRを含むソフトウェア無線環境をまとめて導入できます。
Pocket SDRのbinディレクトリーには、コンパイル済みのバイナリーファイルが用意されています。これらのバイナリーファイルは、SoapySDRのDLL(dynamic-link library)に依存するバイナリーファイルです。これらをそのまま利用するためには、radiocondaをインストールした上で、スタートメニューのradiocondaの項目からコマンドプロンプトを開き、実行します。

このコマンドプロンプトでは、プロンプトが(base) C:\Users\...のように表示されます。ここからpocket_trkなどのバイナリーを実行します。長いファイル名の入力の際、途中まで入力してTabキーを押すと、残りを補完できます。

radiocondaは、インストーラーをダウンロードしてダブルクリックすることでインストールできます。Windowsのパッケージマネージャーwingetを使う方法は、radiocondaを用いたソフトウェア無線環境構築にまとめました。

LinuxとRaspberry Pi OS
LinuxやRaspberry Pi OSでPocket SDRを利用するには、ソフトウェアを自分でコンパイルする必要があります。手順は、Pocket SDRのREADME.mdに記載されています。SoapySDRは、radiocondaだけでなく、Debian系のLinuxではaptからも導入できます。ヘッドレス(モニターやキーボードを接続しない状態)での利用を想定した導入手順は、radiocondaを用いたソフトウェア無線環境構築にまとめました。
Pocket SDR FEのみを使う場合や、収録済みのデータを解析する場合は、SoapySDRの対応を無効にしてビルドできます。USE_SOAPYは、radioconda自体ではなく、SoapySDRへの対応を切り替えるビルドオプションです。makeにUSE_SOAPY=0を指定すると、SoapySDRに依存しないバイナリーを作成できます。
私はDebianで、以下の手順を実行しました。まず、管理者権限で開発ツールとライブラリをインストールします。
apt update
apt install git gcc g++ make libusb-1.0-0-dev libfftw3-dev
次に、Pocket SDRのソースコードを取得し、そのルートディレクトリー(libやappがあるディレクトリー)で、一般ユーザーとして以下を実行します。
cd lib/build && make USE_SOAPY=0 && make USE_SOAPY=0 install && cd ../..
cd app && make USE_SOAPY=0 && make USE_SOAPY=0 install && cd ..
すでにビルドしたソースツリーで設定を変更する場合は、各ビルドディレクトリーでmake cleanを実行してから、再ビルドします。
&&は、直前のコマンドが成功した場合にだけ、次のコマンドを実行する演算子です。;で区切った場合とは異なり、途中のコマンドが失敗すると、同じ行の残りのコマンドは実行されません。生成されたバイナリーファイルは、binディレクトリーに配置されます。
macOS
macOSでも、Linuxと同様にコンパイルが必要です。USE_SOAPY=0を指定してビルドすると、SoapySDRに依存しないバイナリーを作成できます。HomeBrewインストールの際にコンパイラーもインストールしますので、Pocket SDRのREADME.mdに記述されている通り、libusbとfftwを追加としてインストールすれば、開発環境や必要なライブラリが揃います。
新たに対応したハードウェアを利用する場合は、SoapySDRを含む環境を準備します。radiocondaのインストール手順は、radiocondaを用いたソフトウェア無線環境構築にまとめました。
私は仕事にも趣味にもmacOSを使っていますが、GNU Radioを日常的に利用するのはこれからと考えています。そのため、Pocket SDRを使うたびにconda activate baseを実行するのは、やや面倒に感じました。そこで、SoapySDRに依存しないバイナリーを作成し、普段使っている複数のMacにrsyncでコピーして利用しています。
まとめ
Pocket SDRバージョン0.16以降では、SoapySDRを介して利用できるハードウェアが増えました。radiocondaは、そのための環境を導入する方法の一つです。
Pocket SDR FEの利用や収録済みデータの解析が目的であれば、USE_SOAPY=0を指定してビルドすることで、SoapySDRに依存しないバイナリーを作成できます。私はLinuxとmacOSでこの方法を利用しています。
関連記事
- radiocondaを用いたソフトウェア無線環境構築 19th September 2026
- Pocket SDRすごい(設定ファイル有効活用編) 30th April 2025
- Pocket SDR収録データ 25th April 2025
- Pocket SDRすごい(リアルタイム測位機能) 13th October 2024
- Pocket SDRを用いたGalileo E6B信号の受信 27th January 2023
- リフローでやらかしました 19th January 2023
- Pocket SDRハードウェア製作(第3報) 30th September 2022
- Pocket SDRハードウェア製作(第2報) 14th September 2022
- Pocket SDRハードウェア製作(第1報) 4th September 2022
- PocketSDRすごい(パーツ購入編) 9th April 2022
- PocketSDR APにてbladeRFを使いたい(その2) 16th March 2022
- PocketSDR APにてbladeRFを使いたい 5th March 2022
- PocketSDRすごい(スナップショット測位編) 23rd February 2022
- PocketSDRすごい(FFTWによる高速化) 19th February 2022
- PocketSDRすごい(L6信号デコード編) 19th January 2022
- PocketSDRすごい(pocket_trk編) 28th December 2021
- PocketSDRすごい(pocket_acq編) 4th December 2021