⌨️

Raspberry Pi Zero 2 WでPocket SDRを動かす

に公開
2026/02/17

前の記事でPocket SDRをArduino Uno Qで動かしてみたところ、かなり余裕がありました。それならば、同じARM Cortex-A53コアを搭載しているRaspberry Pi Zero 2 Wでも動くのではないかと思い、早速試してみました。

同じコアとはいえ、Arduino Uno QのCPUは2GHzで動作し、メモリも2GB/4GBもあります。一方で、Raspberry Pi Zero 2 WのCPUは1GHz、メモリも512MBです。

デスクトップ環境は不要なので、OSにはRaspberry Pi OS Lite (64-bit)を選びました。このとき、Wifiに5GHz帯(IEEE 802.11a)のSSIDを設定したのですが、Zero 2 Wは2.4GHz帯にしか対応していませんでした。

Zero 2 Wを起動し、SSHでログインしようとしたところ、案の定、デバイスを見つけることができません。そこで、キーボードとマウス、ディスプレイを接続し、Wifiを設定し直します。

Lite OSでシステム設定を行うために、raspi-configという対話型メニューツールが提供されています。この中のSystem Options -> Wireless LANから、Wifiの設定ができます。

sudo raspi-config

これで無事にSSHでログインできるようになりました。後は、Arduino Uno Qのときと同様に、Pocket SDRをcloneして、ビルドします。

フロントエンドのFE 2CHをUSB OTGの変換ケーブルを使ってZero 2 Wに接続します。pocket_trkでは、Arduino Uno Qと同様に、L1CA信号のみ受信してみます。

sudo ./pocket_trk -sig L1CA -prn 1-32 -c ../../conf/pocket_L1L2_4MHz.conf

アンテナはあいかわらずオフィスの窓の横です。良い受信環境とはいえませんが、問題なく測位できました。

CUP UsageはArduino Uno Qの丁度2倍の40%です。これはCPUのクロックが1/2であることを考えると妥当な数値。メモリはギリギリになるかなと思っていたのですが、まだ半分程度と余裕があります。

何が嬉しいかといえば、いままでRaspberry Pi 5で動いていたPocket SDRベースの月測位受信機を小型・省電力化できそうなこと。ハンドヘルドくらいにできるかも。

ひとつ残念なのは、Arduino Uno Qと同様に、pocket_trkを一度停止して再起動すると、libusbのbulk transferがTIMED_OUTのエラーで動いてくれないこと。毎回USBコネクタを抜き差ししないといけないのは、ちょっと困る。

Discussion