HackRF という SDR 用の無線フロントエンドがある。オープンソースハードウェア。この手のものは他に LimeSDR (高い) や RTL-SDR (安い) などがあるが、HackRF は最高周波数が 6GHz までという点とコスパが良い点が大きな特徴。
アルミケース・TCXOモジュール・ロッドアンテナ付きで $125 ほど。
TCXO モジュールはインストールされていないので、一旦ケースを分解して装着する必要があった。適当にググって解決。
brew でツールが入る
brew install hackrf
TCXO がちゃんと認識されているかはこれでわかる (ref. HackRF One · mossmann/hackrf Wiki · GitHub
hackrf_debug --si5351c -n 0 -r [ 0] -> 0x01 # 認識されている場合 [ 0] -> 0x51 # 認識されていない場合
これらのツールはあくまでCUIツールなので、GUI で何かするためには他ものがいる。Mac だと Gqrx はデフォルトで HackRF の入力に対応しており復調もできる。
スペクトラムアナライザーっぽく使えるのだとqspectrumanalyzerが一応使える。ただし非常に重く、よく落ちてしまう。
アンテナポートへの電源供給
GPS アクティブアンテナのように電源供給が必要な場合、アンテナポートに電源供給することができる。関連ツールにはコマンドオプションがある。
スイープモード
スイープモードというのが実装されている。HackRF One のハードウェア的には 20MHz サンプルなので、20Mhz 分の帯域しか同時に見ることはできないが、連続して局発周波数などを動かしてサンプリングしていくことで、擬似的に広い範囲の帯域を見ることができる。広域スペアナ的に使えるといえばわかりやすいか。
詳しい動作はまた今度説明したい。
TX
送信もできるけど HackRF One 本体からの出力は最大でも 15dBm (0.03W) なので、外部にリニアアンプなどが必要になる。
が、そもそもこの機械の仕様でアマチュア免許などは下りないと思うので、ダミーロードつけて微弱無線局として遊ぶしかないと思う。とはいえ、微弱無線局の定義も非常に厳しいので、基本的にはもったいないけど、国内ではおかざりと思ったほうが良い。
ソースコードの歩きかた
HackRF はオープンソースなのですべてのコードを読むことができる。かなり綺麗に書かれているほうだと思うので、すんなり読みくだせるものが多い。
基本的にツール側から攻めていくのがわかりやすそう
これ以下に hackrf_info などのツールのソースコードがある。
ツール類はほぼ libhackrf を呼んでいて、こちらも同じレポジトリ内にある。難しいことはあまりしておらず、素直に libusb の関数を呼びだしているので読みやすい。機能もたくさんあるわけではない。
ファームウェアは若干複雑ではあるが、USB の API から攻めていくのが読みやすい気がする。
cpld (FPGA の弟みたいなやつ) まわりはまだちゃんと読めてない。