オープンソース無線エコシステム
SoapySDR、HackRF・bladeRF・LimeSDRのオープンハードウェアとドライバ、Open5GSとfree5GCのコア、NVIDIAのSionnaシミュレータ。多くのSDRプロジェクトが組み合わせて使う構成要素です。
| 組織 | 独立したプロジェクトと企業: Pothosware(SoapySDR)、Great Scott Gadgets(HackRF)、Nuand(bladeRF)、Lime Microsystems(ロンドン、英国。LimeSDR)、Open5GS、free5GC、NVIDIA(Sionna) |
|---|---|
| ウェブサイト | github.com/pothosware/SoapySDR |
| ライセンス | SoapySDRはBoost Software License 1.0、HackRFはGPL-2.0、libbladeRFはLGPL-2.1(bladeRF-cliはGPL-2.0)、LimeSuiteNGはApache-2.0、Open5GSはAGPL-3.0(NewPlaneによる商用ライセンスあり)、free5GCとSionnaはApache-2.0 |
| 価格 | ソフトウェアは無償。ハードウェアはメーカーと販売代理店が販売。Great Scott GadgetsはHackRF Oneについて定価ではなく販売代理店の一覧を掲載 |
| 更新 | 2026年11月15日 |
製品と提供内容 #
| 名称 | 種類 | 位置づけ |
|---|---|---|
| SoapySDR | ライブラリ | C++・C・Pythonで使えるベンダー中立のSDR API。UHD、RTL-SDR、HackRF、bladeRF、Pluto、LimeSDR向けのモジュールあり。0.9.0は2026年10月10日リリース |
| HackRF One | SDR | 1 MHz〜6 GHz、2〜20 Msps、8 ビットサンプル、半二重、High Speed USB |
| bladeRF 2.0 micro xA4 | SDR | AD9361ベース。受信は70 MHz、送信は47 MHzから6 GHzまで、帯域幅56 MHz、最大61.44 MSPS(Nuandのドライバソースによる) |
| LimeSDR Mini 2.0 | SDR | LMS7002Mベース。10 MHz〜2.6 GHz(一部帯域を除く)、30.72 MSPS、12 ビット、送信1系統・受信1系統の全二重、USB 3.0 |
| Open5GS | ソフトウェア | C言語で実装された5GコアとEPC。v2.8.0(2026年6月20日)でプロトコル対応を3GPP Release 19に移行 |
| free5GC | ソフトウェア | 5Gコアネットワーク。v4.3.0は2026年9月30日リリース |
| Sionna | ライブラリ | リンクレベル(PHY)、システムレベル(SYS)、レイトレーシング(RT)のシミュレーション。v2.2.0は2026年9月29日リリース、PyTorchベース |
どんな組織か
このハブでは、多くのSDRプロジェクトやプライベートネットワークのプロジェクトが組み合わせて使うオープンソースの構成要素をまとめます。これらは単一の組織に属するものではありません。SoapySDRはPothoswareによるものです。HackRF OneはGreat Scott Gadgets、bladeRFはNuand、LimeSDRはロンドンのLime Microsystemsが手がけています。ネットワーク側では、Open5GSとfree5GCが、srsRANやOpenAirInterfaceと組み合わせる5Gコアを提供します。NVIDIAのSionnaは、リンクレベル・システムレベルの検討に使う主要なオープンなシミュレータです。GNU Radioには専用のハブがあります。
ツールとAPI
SoapySDR。 SoapySDRは、薄くベンダー中立なAPIです。1つのインタフェースに対してコードを書けば、残りは無線機ごとのモジュールが担います。USRP向けのSoapyUHD、SoapyRTLSDR、SoapyHackRF、SoapyBladeRF、SoapyPlutoSDR、LimeSDR向けのSoapyLMSがあります。コア部分のライセンスはBoost Software Licenseです。各モジュールは独自のライセンスを持ち、SoapyHackRFやSoapyRTLSDRのMITからSoapyUHDのGPL-3.0まであります。C++・C・PythonのAPIがあり、ほかの言語向けにはコミュニティによるバインディングもあります。GNU Radioからはgr-soapyを通じてこれらすべてを利用できます。
次のコードは、SoapySDRが最初に見つけた無線機を開き、4096 サンプルを読み込みます。無線機の接続と、対応するSoapyモジュールのインストールが必要なため、このページ上では実行できません。
# needs-hardware
import numpy as np
import SoapySDR
from SoapySDR import SOAPY_SDR_RX, SOAPY_SDR_CF32
results = SoapySDR.Device.enumerate()
print(f"found {len(results)} device(s)")
sdr = SoapySDR.Device(results[0])
sdr.setSampleRate(SOAPY_SDR_RX, 0, 2e6) # 2 MHz sample rate
sdr.setFrequency(SOAPY_SDR_RX, 0, 100e6) # 100 MHz centre frequency
rx = sdr.setupStream(SOAPY_SDR_RX, SOAPY_SDR_CF32)
sdr.activateStream(rx)
buf = np.zeros(4096, dtype=np.complex64)
sr = sdr.readStream(rx, [buf], buf.size)
sdr.deactivateStream(rx)
sdr.closeStream(rx)
print(f"read {sr.ret} samples, mean power {np.mean(np.abs(buf) ** 2):.3e}")
無線機。 HackRFのドキュメントによれば、HackRF Oneは1 MHz〜6 GHzに同調でき、2〜20 Msps、8 ビットのサンプルで動作します。High Speed USB接続の半二重です。bladeRF 2.0 micro xA4はAD9361を使っています。Nuandのサイトは当サイトからのリクエストを拒否したため、ここでの数値はNuandのドライバソースによります。受信は70 MHzから、送信は47 MHzから、いずれも6 GHzまで対応し、帯域幅は56 MHz、サンプルレートは最大61.44 MSPSです。LimeSDR Mini 2.0はLimeのLMS7002Mを使っています。プロジェクトページによれば、10 MHz〜2.6 GHz(一部帯域を除く)をカバーし、30.72 MSPS、12 ビットのサンプル、送信1系統・受信1系統で、USB 3.0で接続します。受信専用の用途では、RTL-SDRやAirspy R2にもSoapyモジュールがあります。
OS対応。 HackRFは、HomebrewとMacPortsによるmacOSへのインストール手順を文書化しています。bladeRFのホスト側READMEはLinux・macOS・Windowsを扱っています。LimeSuiteNGのインストール手順はLinuxとWindowsのみです。conda-forgeはSoapySDR 0.9.0をLinux、macOS(IntelとApple Silicon)、Windows向けにパッケージ化しており、radiocondaはこれをここで挙げた無線機の大半のドライバと一緒に同梱しています。
コアとシミュレータ。 Open5GSは、5GコアとLTE EPCをC言語で実装したもので、ライセンスはAGPL-3.0です。NewPlaneから商用ライセンスも提供されています。バージョン2.8.0で、プロトコル対応が3GPP Release 19に移行しました。ドキュメントにはmacOS向けのガイドもありますが、macOS Big Sur時代のものです。free5GCはApache-2.0の5Gコアです。Sionna 2.xにはPython 3.11以降とPyTorch 2.9以降が必要で、NVIDIAはUbuntu 24.04を推奨しています。macOSについての記載はありません。機械学習の側面については、AI/ML Field Guideを参照してください。
移行メモ
- SoapySDRへの移行。 SoapySDR向けに書いたコードは、デバイス引数を変えるだけで別の無線機に移せます。ただし、利得の名称、アンテナ名、サンプルレートの上限はモジュールごとに異なります。ハードコードせず、
listGainsやgetSampleRateRangeで問い合わせてください。 - サンプルフォーマット。
CF32を指定すれば、SoapySDRが変換します。ネイティブのフォーマットは無線機ごとに異なります。HackRFは8 ビットのサンプルを出力するため、理想的な量子化レンジは16 ビットの経路より約48 dB狭くなります(1 ビットあたり6.02 dB)。IQサンプルとADCを参照してください。 - LimeSuiteからLimeSuiteNGへ。 旧LimeSuiteは、2024年1月のv23.11.0で更新が止まりました。後継はLimeSuiteNGで、専用のSoapyプラグインがあります。
- Sionna 0.x・1.xから2.xへ。 Sionna PHYとSYSは2.0でTensorFlowからPyTorchに移行し、TensorFlowは依存関係から外れました。古いノートブックは移植が必要です。
- ファイル。 キャプチャをツール間でやり取りできるよう、SigMFのメタデータ付きで記録してください。IQの記録と読み込みを参照してください。
注意点
- AGPLのコア。 AGPL-3.0のOpen5GSでは、改変版をネットワーク経由で提供する場合、ソースコードを公開する義務が生じます。
- 販売終了のハードウェア。 RTL-SDR Blogのストアによれば、V4は販売終了となりました。一方、V3とV4L Liteは引き続き販売されています。ラボで1機種に統一する前に、在庫を確認してください。
- 半二重の無線機。 HackRF Oneは送信と受信を同時に行えません。両方を同時に必要とするプロトコルには、2台目の無線機か全二重のSDRが必要です。
- 電波。 ここで挙げた送信可能な無線機は、いずれも使い方を誤ると規則に違反するおそれがあります。送信は許可された場所でのみ行うか、ケーブルとアッテネータを介して行ってください。周波数・セキュリティ・規制を参照してください。