2014年6月19日木曜日

DV3000 と専用 Dummy Repeater (改訂版)のセットアップ/Raspberry Pi

Back



MEMO
 ThumbDVの登場でサーバソフトウェアが変更になり,手順も初回のものから変化して来ているので,現状に即して一部書き直し致しました。(2015/08/02)
 BlueDVの普及やその他 AMBE Server 利用シーンの増加、又OSが Raspbian 10 Buster になった事に即して再編集しました。 BlueDVなどはDummyRepeaterと同様の既存モデムアプリですので、アプリについての設定などはそれぞれのマニュアルに従ってください。(2019/10/16)


 DV3000とは最近 NW Digital Radio という会社が発売した,Raspberry Pi 用の音声圧縮ボード(Vocoder)です。 通常,D-Starの音声圧縮には AMBE-2020TM というチップを搭載していましたが,このボードは名前から想像が付くように AMBE-3000TM を搭載しています。
 何が違うのでしょう。詳しくは別の機会に譲るとしてAMBE-2020TM が AMBE+TMという規格であるのに対し,AMBE-3000TMはAMBE+2TMという規格に対応しており,業務無線の P25(APCO Project 25)や,DMRにも採用されていると言う点です。

(註:TM マークの付いた商品名は Digital Voice Systems, Inc. の登録商標です。)

 今回のセットアップはD-Star用ですが,将来ソフトが作られればハードウェアを変更せず他のデジタル無線規格に対応できるでしょう。
MEMO
 本記事の内容を一歩進めて,PC用ヘッドセットと画面によるPTTをPTT付きのスピーカーマイクにすることで,より使いやすくする工夫をご紹介します。 DV3000の出荷元であるNW Digita Radio のブログ にJA1SCW局が製作組み立てされた Portable Dummy Repeater が紹介されたところ,本文中にも出て来る「DummyRepeater ALSAaudio版」のメンテナンサーである John Wiseman氏(G8BPQ)からコメントがありました。それにより改良されたPortable DummyRepeater V.2とその構成図を公開して戴きました。

外付けのUSBサウンドも基盤だけにして内蔵するとコンパクトになりますね。このサウンドカードは,当記事で紹介しているものと同一とのことです。
Special thanks to JA1SCW, JH1BLT and G8BPQ.

  1. ハードウェアの準備

  2. Raspberry Pi 2 type B 旧型Raspberryでも十分 Amazon.co.jp  RS コンポーネンツ
    4GB microSDカード Class10 上記旧型はSD Amazon.co.jp
    DV3000またはThumbDVNW Digital Radio
    USB Sound Amazon.co.jp
    USB Wi-Fiクライアント(無線LAN子機) Amazon.co.jp
    適当なスピーカーとマイク(PC用)
    写真のスマートフォンとバッテリーは,モバイル用途でなければ不要です。
    上記のハードウェア(ただし旧型Rasberry)はすべて私が現在使用しているものです。
    なお,DV3000 は Raspberry Pi に取り付けておきます。私の場合取り付け用のスペーサーが短く, ピンに無理がかかると思われたので,水平に保てる長さのものに取り替えました。
    旧型Rasberryの場合USBポートは2つなのでWiFiを使いたい場合DV3000しか使えません。
  3. Raspberry Pi 起動用 SDカードの作成

  4.  最初にOSの入ったSDカードを作成します。作業の詳細は Western D-Star の新しいイメージをインストールしてみるをご参照ください。

     なお,この説明でのコンソールコマンドは,ディスプレイやキーボードを接続して作業している方は, LXTerminal を使用してください。 また,Windows などからPuTTYなどのSSHソフト を使ってリモートする方は,OSインストール時メモしたIPアドレスとポート22番を指定してください。
     すでに,装備されているVNCを使用するときは,Windows の場合 VNC Viewer for Windowsなどをお使いください。SSH,VNC いずれの場合もログイン名:pi,パスワード:raspberry です。
  5. ソフトウェアの準備

  6.  さて,Raspberry の OS(Raspbian)が GUI で立ち上げられたところで,次に示したソフトウェアをダウンロードします。

    DStarRepeater+ircDDBGateway+VNCイメージ Western D-Star
    DummyRepeater-20150507.zip(確認済み)
    Raspberry OS 立ち上げ後
    Yahoo!Groups
      "PC Repeater Controller"

    Yahoo US及びグループに入会必要
    DV3000/DV3000U Daemon Source
    Raspberry OS 立ち上げ後
    DV3000.zip AMBE Serverソフト
  7. ソフトウェアのインストール


  8. MEMO
    今回使用している Wester D-Star のイメージファイルには,最低限必要なライブラリーや WiringPi, その他の環境がすでにインストールされています。 もし OS のみのクリーンインストールをした場合はそれらが必要と同時に,VNC などの環境設定も必要となります。

    ■DV3000 を動作させるサーバーソフトをインストール

    $ sudo apt update
    $ sudo apt -y upgrade
    

     何かインストール作業を始める前にはおまじないのようにこのコマンドを実行します。

    最初に,DV3000 が稼働するのに必要な Raspberry Pi 側の環境変更をします。次の3つのテキストファイルの内容を編集します。

    $ sudo nano /boot/config.txt
    
      GNU nano 3.2          File: /boot/config.txt
    # Enable audio (loads snd_bcm2835)
    # dtparam=audio=on  <---------------------コメントアウト
    
    init_uart_clock=3686400
    #init_uart_clock=50000000    # 下記参照
    
    # Pi Zero, Pi3, Pi4 で GPIOシリアルを使用する時(DV3000)加筆する。
    dtoverlay=pi3-disable-bt
    
     ファイル末尾に一行書き加えます。AMBEserver立ち上げ時に AMBEserver: unknown byte from the DV3000, 0xFF の様なエラーが見られたら、 init_uart_clock=50000000 と言うような極端に大きな値を設定してみてください。

    上述のGPIOシリアル用設定と同様の目的で、次の設定をします。

    $ sudo nano /boot/cmdline.txt
    
      GNU nano 3.2          File: /boot/cmdline.txt
    #dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=547679c6-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
    dwc_otg.lpm_enable=0 console=tty1 root=PARTUUID=547679c6-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
    
      既存の一行を「#」でコメントアウトして,その一部(太字部分)を削除した行を追加します。(既存の一行は元に戻すときのためにコメントとして残す)

    $ sudo systemctl disable serial-getty@.service
    


    MEMO
    いずれのファイルもシステムに関わる重要なファイルなので最善の注意を要します。 再起動をしてみて,もし立ち上がらない時はSDカードを Windows マシンなどで開くと最初の2ファイルは編集できますので元に戻して試してみてください。 また,それでもだめなら「SDカードの作成」からやり直す事をお勧めします。

    $ unzip DV3000.zip
    
     ダウンロードして置いた圧縮ファイルを解凍すると,DV3000というフォルダが出来ます。

    $ cd DV3000
    
     DV3000フォルダに入ります。

    $ make
    $ ls
    AMBEserver     AMBEserverGPIO.o AMBEtest3.py           dv3000d.c Makefile
    AMBEserver.c   AMBEserver.o     dv3000d                dv3000d.o README-dv3000d.txt
    AMBEserverGPIO AMBEtest2.py     dv3000d-AMBEserver.pdf init.d    README.txt
    
     AMBEserverGPIO, AMBEserver が生成されます。GPIOと付いているのがDV3000用で,そうでないのがThumbDV用です。ここで「dv3000d-AMBEserver.pdf」はこのブログのネタ元です。 また AMBEtest2.py,AMBEtest3.py は状態をテストするプログラムで,後ほど設定終了後使用します。

     次のコマンドを実行するとServerソフトが /usr/binに配置されます。
    $ sudo make install
    

     電源を入れたら自動起動するように設定します。
    $ sudo nano /etc/systemd/system/ambeserver.service
    
     GNU nano 3.2          File: /etc/systemd/system/ambeserver.service
    [Unit]
    Description=AMBE Server ThumbDV(DV3000U)/PiDV(DV3000)
    After=network.target
    
    [Service]
    ExecStart=/usr/bin/AMBEserverGPIO -d -p 24600 -i /dev/ttyAMA0
    ExecStop=/usr/bin/killall AMBEserverGPIO
    #ExecStart=/usr/bin/AMBEserver -d -p 24600 -i /dev/ttyUSB0
    #ExecStop=/usr/bin/killall AMBEserver
    Restart=on-failure
    Type=forking
    
    [Install]
    WantedBy=multi-user.target
    
     ここで指定しているオプション -p 24600 はポートを変更するとき指定します。指定しないときの規定値は 2460 です。 また,-d はデーモン(サービス)として立ち上げるオプションです。 今生成された,新しいファイルはすでに実行権限を付与されています。

     次に、この自動立ち上げファイルを有効にします。
    $ sudo systemctl enable ambeserver.service
    

    $ sudo reboot
    
     再起動して立ち上がったら,AMBEserverGPIO(ThumbDVの時は AMBEserver)が起動しているかチェックします。
    $ ps -C AMBEserverGPIO
    PID TTY      TIME CMD
    3033 ?    00:00:03 AMBEserverGPIO
    
    又は
    $ ps -C AMBEserver
    3033 ?    00:00:03 AMBEserver
    

     もう一つのチェックとして,先にダウンロードしたプログラムを使ってみましょう。 AMBEtest2.py は DV3000用のテストプログラムで,AMBEtest3.pyは ThumbDV用です。
    $ sudo python AMBEtest2.py
    d
    8
    N
    1
    False
    False
    False
    0
    a9
    Reset
    6100010033
    Wrote: 5 bytes
    a9
    Product ID
    6100010030
    Wrote: 5 bytes
    a
     0AMBE3000R
    Version
    6100010031
    Wrote: 5 bytes
    a11V120.E100.XXXX.C106.G514.R009.B0010411.C0020208
    Set DSTAR Mode
    61000c000a013007634000000000000048
    Wrote: 17 bytes
    a
    
     これで,自動起動した AMBEserverGPIO が正しく動いていることになります。


    MEMO
    AMBEserverGPIO 又は AMBEserver は単独で稼働しており、IPアドレスとポート番号を指定して他のマシンから利用できるので,このRaspberry Pi での設定はここまでにして、他の Windows マシンに DummyRepeater(BlueDV等も含む)をインストールして試してみます。その場合 DummyRepeater の設定の[Dongle]において[DV3000 network]を選択の上、Raspberry Pi の IPアドレスとポート番号(ファイアウォールを開ける必要あり)を指定します。

    ■DummyRepeater のインストール

     今回は,AMBEserver 自身(Raspberry Pi)に DummyRepeater を組み込みます。(オールインワンと称しています)
     まず,G4KLXオリジナルのリリース版をコンパイルし,インストールします。  
    $ sudo unzip DummyRepeater-20150507.zip
    $ cd DummyRepeater/
    $ sudo make
    $ sudo make install

     make に大分時間がかかりますが,実行するコマンドはこれだけでインストールが完了します。
  9. ircDDBGateway と dummyrepeater の設定

  10.  まず ircDDBGateway の設定についてはircDDB Gateway 初めての設定 をご参照ください。

     また,dummyrepeater についても分からない場合には DV Dongle と ircDDB その接続方法をご参照ください。設定の違いは次の2画面だけです。

     まずサウンドカードの認識の仕方が変わりました。portaudio の場合は,default に設定されたものしか利用できなかったため, USBサウンドを使った場合も hard 1(内蔵が hard 0) = default に設定するための難解な手続きが必要でした。それを達成したとしても結果に不満の残るものでした。 今回の改良の結果は,Windows におけるアプリごとのサウンドの選択同様に簡単です。
     次に[Dongle]の設定ですが,[DV-Dongle]と[DV3000]がセレクトできるようになっています。最も新しいものでは[DV3000 network]と[ThumbDV(USB)]が分かれています。 [DV3000]を選択した場合,[Address]に DV3000 AMBE3000 Server のインストールされた Raspberry Pi のIPアドレスを(今回は自分自身なので127.0.0.1), また[Port]に AMBEserverGPIO のオプションとして[-p 24600]と指定した場合は「24600」を,指定しなかった場合は「2460」を設定します。

    ■DummyRepeater の自動起動設定

     自動起動ファイルはホームフォルダ(/home/pi)の中にある隠しフォルダ .config/autostart/ の中に格納されています。
    $ cd .config/autostart/
    $ ls
    start_gateway.desktop start_modem.desktop start_x11vnc.desktop

     start_gateway.desktop は ircddbgateway の自動立ち上げファイルです。同様に start_x11vnc.desktop は VNC を自動立ち上げしいつでも接続できるように設定済みです。 したがって,ここでは start_modem.desktop のみ dummyrepeater 用に編集します。
    $ sudo nano start_modem.desktop

     GNU nano 2.2.6          File: start_modem.desktop

    [Desktop Entry]
    Type=Application
    Exec=sudo /usr/local/bin/dummyrepeater

     これで再起動すれば,自動接続(設定していれば)の「Link to REF047 C」などのアナウンスが聞こえるはずです。 また VNC で接続するとすでに立ち上がった ircDDB Gateway と DummyRepeater が確認できるはずです。お疲れ様でした。
Back



73
J E 3 H C Z @REF047 C


2014年6月18日水曜日

Western D-Star のすべてセットアップ済みファイルを使用する場合

Back


 rar圧縮ファイルを解凍できるソフト(例:Lhaplusなど)で、ダウンロードしたファイルを解凍します。 DSterRepeater(その他目的別ファイル)+ircDDB+VNC.imgというファイルができますのでこれを,CDを焼くようにSDカードに焼きます。
 Linuxが使える方はDDコマンドで焼いてください。苦手な方はDD for Windowsというとても使いやすいアプリがあります。(CLASS⑩のカードで約15分)
  • まず,[ファイル選択]ボタンで先ほど解凍したイメージファイルを選択します。
  • さらに,[<< 書き込み <<]を押します。これだけです。
 焼き終われば、そのSDカードをRaspberry Pi に差し込み、USBポート(数が足りないときは電源付きのUSB HUBを使用)にWi-fiクライアント(又はLANケーブル)とキーボード・マウスを刺し、HDMI端子にディスプレイやTVを接続して、MicroUSBケーブルで電源を取ります。(デスクトップPCなど十分な電力を供給できるものから取ること)

 立ち上がる途中図のような画面が現れます。ここでは[Expand Filesystem]が赤く反転しているのを確認したら[TAB]キーを押し,[Select]が反転したら[Enter]で実行します。 Would you like to reboot now? と聞かれたら[Yes]を選択し,再起動してください。以後この画面は表示されません。
 もし変更せず終了してしまったときは「LXTerminal」を起動し,次のコマンドを入力すれば同じ画面が立ち上がります。
$ sudo raspi-config


 IDとパスワードを聞かれますので次のように入力してください。
Raspbian の User ID : Pi
Password : raspberry


 再起動し,立ち上がればもうこの状態。


=MEMO=
上記のパーティション拡張について、設定値が保存できないなどの原因となるようですので必ずパーティションを拡張してください。

$ sudo ifconfig

を実行して,LANインターフェースのIPアドレスをメモして置いてください。WiFiを利用する場合は,この時点で設定を終えて同様にメモします。
 さらに,必ずインストール完了時に次のコマンドを実行してOSを最新版に更新して置いてください。
$ sudo apt-get update
$ sudo apt-get -y upgrade
$ sudo rpi-update

この時点で,ブラウザー(midori)を使って取得したいソフトウェアをダウンロードしておきましょう。



Raspbian(Raspberry Pi用のOS)を単独でインストールする場合

Back


http://www.raspberrypi.org/downloads の[Download ZIP]からRaspbianのイメージをダウンロードします。

 ZIPファイルを解凍すると
20yy-mm-dd-wheezy-raspbian.img
(日付は変わります。)というファイルになります。Linuxが使える方はDDコマンドでSDカードに焼いてください。苦手な方はDD for Windowsというとても使いやすいアプリがあります。CDを焼くような要領で対象のSDカードのドライブとイメージファイルを選択して実行します。(CLASS⑩のカードで約15分)

Raspbian の User ID : Pi  Password : raspberry

焼き終われば,そのSDカードをRaspberry Piに差し込み,USBポート(数が足りないときは電源付きのUSB HUBを使用)にキーボード・マウスを刺し,HDMI端子にディスプレイやTVを接続し,LANケーブルをつないで,MicroUSBケーブルで電源を取ります。(デスクトップPCなど十分な電力を供給できるものから取ること)

立ち上がる途中図のような画面が現れます。ここでは[Expand Filesystem]が赤く反転しているのを確認したら[TAB]キーを押し,[Select]が反転したら[Enter]で実行します。 Would you like to reboot now? と聞かれたら[Yes]を選択し,再起動してください。以後この画面は表示されません。

=MEMO=
もし、上記「ファイルシステムの拡張」をキャンセルして立ち上げてしまった場合でも、設定値が保存できないなどの原因となるようですので下記コマンドを実行して必ずパーティションを拡張してください。
「LXTerminal」を起動します。
$ sudo raspi-config



$ sudo ifconfig

を実行して,LANインターフェースのIPアドレスをメモして置いてください。WiFiを利用する場合は,この時点で設定を終えて同様にメモします。
 さらに,必ずインストール完了時に次のコマンドを実行してOSを最新版に更新して置いてください。
$ sudo apt-get update
$ sudo apt-get -y upgrade
$ sudo rpi-update

この時点で,ブラウザー(midori)を使って取得したいソフトウェアをダウンロードしておきましょう。

Back