
Raspberry Pi+DigiRig+Direwolfのはなし
要はまあデジピータ(i-gate)つくるっちゅう話なんですけどね。うちの場合、宅内でAPRS中継したいがだけのmW出力でしか使ってないんですけども、何かの参考に。なおAPRSのノード設定方法等は他の情報を参考にしてくださいな。
DigiRig mobile
今回も使うのはこれ。今回『も』というのは別記事にしてあるAsteriskに特小を繋ぐのにも使ったからです。でまあこのDigiRigがめちゃくちゃ出来が良くてうちのノードでも使ってみようかと思った次第。
買いたい人は以下からどうぞ。
ただ郵送で来るのでめっちゃ時間かかります。一カ月程度は覚悟しときましょう。特にアメリカ国内でなぜかものすごい時間を食ってます。
買う場合には本体(DigiRig mobile)とリグにあわせたケーブルを買ってください。うちはアルインコのハンディ(DJ-S12)を使っているのでICOM HT cableを使ってます。ヤエスだったらYAESU TRRSかVX-xx用(ネジ式)とか買ってください。
DigiRigに交換するまでは何使ってたかというと安物USBオーディオと自作のリレー基板でGPIOでのPTT制御。まあアマチュアなんである程度のものは自作するのが良いんですけど、収まりの良さではDigiRigにかないません。
そもそもDigiRigが何なのかというと、この小さいケース内にUSBオーディオとUSBシリアルを実装してあるので自分で1から作るよりはるかに楽なんですよ。回路等も公開されているのでケーブルは自作しても良いかもしれません。
というわけでリグとのインタフェースに使うのはこれ。
Direwolf
Raspberry Piはまあ普通に用意してもらうとして、Direwolfはソースからインストールします。なお使ったのはRaspberry Pi OSは最新のbookwormベースのやつです。
Direwolfはgithubから入手できます。
git clone https://github.com/wb2osz/direwolf.git
Raspberry Pi を標準でインストールしていればコンパイルはそのままで通ります。
cd direwolf
mkdir build
cd build
cmake ..
make -j4
make install
make installすると/usr/local/配下にもろもろ置かれます。direwolf本体なら/usr/local/bin/direwolfになります。
設定
ノードとしての設定は他を見てもらうことにして、ここではDigiRigで必要な設定のみ説明します。設定ファイルは /etc/direwolf.conf とします。
DigiRig mobile自体はUSBに挿し込めば動作します。ドライバ等は特に必要としません。
# lsusb
Bus 001 Device 006: ID 0d8c:0012 C-Media Electronics, Inc. USB Audio Device
Bus 001 Device 005: ID 10c4:ea60 Silicon Labs CP210x UART Bridge
Bus 001 Device 004: ID 0424:2412 Microchip Technology, Inc. (formerly SMSC) Hub
Bus 001 Device 003: ID 0424:ec00 Microchip Technology, Inc. (formerly SMSC) SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Microchip Technology, Inc. (formerly SMSC) SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
見ての通り、DigiRig mobileを挿しただけでUSBデバイスがこれだけ見えます。Ethernetデバイスがみえているのは元のオンボードEthernetがUSB接続のため。DigiRigはUSBオーディオとUSBシリアルのコンボデバイスなので内部にUSBハブを持っています。その先に繋がっているのが上2つのC-Media USB AudioとSilicon Lanbs CP210xのUSBシリアルというわけです。これがわかっていれば何のことはありません。USBオーディオとUSBシリアルをそれぞれ挿した場合と同じように扱えます。
まずはオーディオデバイス。Raspberry Piの場合、ヘッドフォンとHDMIのデバイスがあるのでオーディオデバイスとしては3つ見えてくることになります。
# aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: vc4hdmi [vc4-hdmi], デバイス 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
サブデバイス: 1/1
サブデバイス #0: subdevice #0
カード 1: Headphones [bcm2835 Headphones], デバイス 0: bcm2835 Headphones [bcm2835 Headphones]
サブデバイス: 8/8
サブデバイス #0: subdevice #0
サブデバイス #1: subdevice #1
サブデバイス #2: subdevice #2
サブデバイス #3: subdevice #3
サブデバイス #4: subdevice #4
サブデバイス #5: subdevice #5
サブデバイス #6: subdevice #6
サブデバイス #7: subdevice #7
カード 2: Device [USB Audio Device], デバイス 0: USB Audio [USB Audio]
サブデバイス: 0/1
サブデバイス #0: subdevice #0
カード0がHDMI、カード1がヘッドフォン、カード2がDigiRigになっている(USB Audio)ことがわかります。なので、Direwolfのオーディオ設定は以下のようになります。
#ADEVICE plughw:2,0 plughw:2,0
ADEVICE plughw:2,0 plughw:2,0 <--これ
# ADEVICE UDP:7355 default
#ADEVICE - plughw:1,0
次にPTT制御ですがこれはDigiRigのUSBシリアルを使うので
# ls -l /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 1月 10 11:09 /dev/ttyUSB0
USBシリアルはttyUSB0になっているので以下のようにPTTを設定します。PTT制御にRTSを使うのはDigiRigの内部接続がそうなっているからです。
PTT /dev/ttyUSB0 RTS
DigiRigをDirewolfで使うための設定はこれだけです。音量の調整等はalsamixerやリグのボリューム、マイクゲイン等で適切に行います。
Raspberry Piの起動時にDirewolfを起動したい場合には /etc/rc.local に以下を書いておけばOKです。
/usr/local/bin/direwolf -c /etc/direwolf.conf &