前々から興味があったADALM-PLUTOが秋月で取り扱ってくれるようになったので注文してみた。↓
ソフトウエア無線アクティブラーニングモジュール ADALM−PLUTO: 測定器・計測器関連 秋月電子通商-電子部品・ネット通販
メーカ製品情報:
本機はADIのSDRフロントエンドAD9363にXilinx(現AMD)のZynq-7kを組み合わせた学習用モジュールで中ではLinuxが動作しておりホストとはUSB(CDC-ACM)deviceとして接続される(Ubuntu上では /dev/ttyACM0)。以下の事柄はCQ出版のRFワールド no.45 p79〜p90をなぞってるだけなので詳細は同書を参照して下さい。
1.外観
写真のとおりコンパクトなモジュールである。MicroBでVBUS供給するが外部電源も可能で変換コネクタ(USB−Aに変換)も添付されている。本体は結構熱くなるので相応の電流を消費していると思われる。
2.接続
USBケーブル、アンテナ(送信・受信各1本)も付属してるのでホスト(私はUbuntu16.04を使用)と接続すればCDCACMデバイスとして認識されるがその前にUDEVデバイスの設定をする必要がある。
/etc/udev/rules.d$ cat 53-adi-plutosdr-usb.rules
# allow "plugdev" group read/write access to ADI PlutoSDR devices
# DFU Device
SUBSYSTEM=="usb", ATTRS{idVendor}=="0456", ATTRS{idProduct}=="b674", MODE="0664", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2fa2", ATTRS{idProduct}=="5a32", MODE="0664", GROUP="plugdev"
# SDR Device
SUBSYSTEM=="usb", ATTRS{idVendor}=="0456", ATTRS{idProduct}=="b673", MODE="0664", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2fa2", ATTRS{idProduct}=="5a02", MODE="0664", GROUP="plugdev"
# tell the ModemManager (part of the NetworkManager suite) that the device is not a modem,
# and don't send AT commands to it
SUBSYSTEM=="usb", ATTRS{idVendor}=="0456", ATTRS{idProduct}=="b673", ENV{ID_MM_DEVICE_IGNORE}="1"
SUBSYSTEM=="usb", ATTRS{idVendor}=="2fa2", ATTRS{idProduct}=="5a02", ENV{ID_MM_DEVICE_IGNORE}="1"
これはgithubで公開されてるのでそこから入手する(RFワールド no.45 p83に記載)。
wget https://github.com/analogdevicesinc/plutosdr-fw/raw/master/scripts/53-adi-plutosdr-usb.rules
これで/dev/ttyACM0デバイスとして認識されるのでssh root@pluto.localでログインする。
$ ssh root@pluto.local
root@pluto.local's password:
Welcome to:
______ _ _ _________________
| ___ \ | | | / ___| _ \ ___ \
| |_/ / |_ _| |_ ___ \ `--.| | | | |_/ /
| __/| | | | | __/ _ \ `--. \ | | | /
| | | | |_| | || (_) /\__/ / |/ /| |\ \
\_| |_|\__,_|\__\___/\____/|___/ \_| \_|
v0.34
https://wiki.analog.com/university/tools/pluto
# df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 120504 0 120504 0% /dev
tmpfs 254804 0 254804 0% /dev/shm
tmpfs 254804 28 254776 0% /tmp
tmpfs 254804 44 254760 0% /run
mtd2 896 196 700 22% /mnt/jffs2
# cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 0 (v7l)
BogoMIPS : 666.66
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpd32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x3
CPU part : 0xc09
CPU revision : 0
Hardware : Xilinx Zynq Platform
Revision : 0003
Serial : 0000000000000000
# fw_setenv attr_name compatible
# fw_setenv attr_val ad9364
# pluto_reboot reset
# packet_write_wait: Connection to 192.168.2.1 port 22: Broken pipe
3.ファームウェアアップデートと偽装改造(AD9363をAD9364に偽装?)
Zynq-7kはCortex-A9@667Mhzと今基準では非力だが組み込み機器の制御用プロセサ+FPGAとしては十二分とも言える。令和三年神無月十日現在アップデートしたファームウェアは0.34であったが(入手時のバージョンは0.32)がRFワールド誌に記載されていたAD9363をAD9364に偽装する設定は見かけ上出来るように見える。
root@pluto.local's password:
Welcome to:
______ _ _ _________________
| ___ \ | | | / ___| _ \ ___ \
| |_/ / |_ _| |_ ___ \ `--.| | | | |_/ /
| __/| | | | | __/ _ \ `--. \ | | | /
| | | | |_| | || (_) /\__/ / |/ /| |\ \
\_| |_|\__,_|\__\___/\____/|___/ \_| \_|
v0.34
https://wiki.analog.com/university/tools/pluto
# fw_printenv attr_name
attr_name=compatible
# fw_printenv attr_val
attr_val=ad9364
matlabは期限切れだしgnuradioは興味無い(ドライバ環境が特殊でつかいづらかったような記憶が)ので今はZynq学習ボードの感無きにしもあらずでSDR勉強中(ディジタル無線通信技術難しいです。。。)故、進捗が有ったらUpするつもりでいる。
尚、画像制限とやらに引っかかったので写真はアップロード出来ませんでした(10MB制限、とか?)。
20211011追記:10MB制限の件はjpegをpngに変換した際に2.4MB→10.6MBに変換された為上限に引っ掛かった模様。寄ってjpegでUpしなおした物を貼り付けておく。