2014年6月19日木曜日

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

Back



MEMO
ThumbDVの登場でサーバソフトウェアが変更になり,手順も初回のものから変化して来ているので,現状に即して一部書き直し致しました。(2015/08/02)


 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
  7. ソフトウェアのインストール


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

    ■DV3000 を動作させるサーバーソフトをインストール
    $ sudo apt-get update
    $ sudo apt-get -y upgrade

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

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

     GNU nano 2.2.6          File: /boot/config.txt

    init_uart_clock=3686400

     ファイル末尾に一行書き加えます。
    $ sudo nano /boot/cmdline.txt

     GNU nano 2.2.6          File: /boot/cmdline.txt

    #dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

    dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

      既存の一行を「#」でコメントアウトして,その一部(太字部分)を削除した行を追加します。(既存の一行は元に戻すときのためにコメントとして残す)
    $ sudo nano /etc/inittab

     GNU nano 2.2.6          File: /etc/inittab

    #Spawn a getty on Raspberry Pi serial line
    T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100
         ↓
    #T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

     ファイル最下部の一行を,行頭に「#」を付けてコメントアウトする。


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

    $ sudo unzip DV3000.zip

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

     DV3000フォルダに入ります。
    $ sudo 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に配置されます。また,自動立ち上げ用スクリプトが /etc/init.d/に配置されます。
    $ sudo make install
    $ sudo make init-install

    電源を入れたら自動起動するように設定します。
    $ sudo nano /etc/init.d/AMBEserverGPIO

     GNU nano 2.2.6          File: /etc/init.d/AMBEserverGPIO

    #! /bin/sh
    
    ### BEGIN INIT INFO
    # Provides:          AMBEserverGPIO
    # Required-Start:    $local_fs $remote_fs
    # Required-Stop:
    # X-Start-Before:
    # Default-Start:     2 3 4 5
    # Default-Stop:
    # Short-Description: Provide AMBE Encode/Decode
    # Description: Provide daemon for AMBE Encoding and Decoding
    ### END INIT INFO
    
    N=/etc/init.d/AMBEserverGPIO
    
    set -e
    
    case "$1" in
      start)
            /usr/bin/AMBEserverGPIO -d -p 24600 -i /dev/ttyAMA0
            echo "Starting AMBEserverGPIO" >&2
            exit 0
            ;;
      stop)
            killall AMBEserverGPIO
            exit 0
            ;;
      reload|restart|force-reload|status)
            ;;
      *)
            echo "Usage: $N {start|stop}" >&2
            exit 1
            ;;
    esac
    
    exit 0
    
             

     ここで指定しているオプション -p 24600 はポートを変更するとき指定します。指定しないときの規定値は 2460 です。 また,-d はデーモン(サービス)として立ち上げるオプションです。 今生成された,新しいファイルはすでに実行権限を付与されています。
    $ sudo apt-get install chkconfig
    $ sudo chkconfig AMBEserverGPIO on
    $ sudo chkconfig AMBEserver* --list
    AMBEserver             0:off  1:off  2:off  3:off  4:off  5:off  6:off
    AMBEserverGPIO         0:off  1:off  2:on   3:on   4:on   5:on   6:off
    $ sudo reboot

     再起動して立ち上がったら,AMBEserverGPIO が起動しているかチェックします。
    $ ps -C AMBEserverGPIO
      PID TTY      TIME CMD
     3033 ?    00:00:03 AMBEserverGPIO

     もう一つのチェックとして,先にダウンロードしたプログラムを使ってみましょう。 AMBEtest2.py は DV3000用のテストプログラムで,AMBEtest3.pyは ThumbDV用です。
    $ sudo python AMBEtest2.py
    d
    8
    N
    1
    False
    False
    False
    0
    
    Reset
    6100010033
    Wrote: 5 bytes
    a
    Product ID
    6100010030
    Wrote: 5 bytes
    a
    
    Version
    6100010031
    Wrote: 5 bytes
    .G514.R009.B00
    Set DSTAR Mode
    61000c000a013007634000000000000048
    Wrote: 17 bytes
    a
    

     これで,自動起動した AMBEserverGPIO が正しく動いていることになります。


    MEMO
    dv3000d は一種のサーバー(AMBEserver)として稼働しているので,このRaspberry Pi での設定はここまでにして, 他の Windows マシンに DummyRepeater をインストールして利用することが可能です。その場合 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


5 件のコメント:

  1. 西宮の門前小僧2015年8月3日 17:22

    さっそくの最新情報、ありがとうございます。

    自称職人さんの記事を拝見しながら、毎日楽しませていただいております。

    これからもよろしくお願いいたします。

    ありがとうございました!


    追伸
    このところSDカードの消費がハンパないです(笑)。

    返信削除
    返信
    1. コメント有難うございます。
      また,いつもご覧いただきとても励みになります。今月開催されるハムフェア2015東京ビッグサイトには,これも展示したいと考えております。もしお越しになるご予定がございましたら,ぜひお立ち寄りください。

      削除
  2. 西宮の門前小僧2015年8月5日 8:31

    Digital Radio ChallengersのブースJ-11でしたね。

    とてもよい機会ですので、是非ともお邪魔したいと思います。

    返信削除
  3. 西宮の門前小僧2015年8月11日 8:29

    自称職人さん、いつもありがとうございます。

    DV3000とThumbDV無事に稼働しております。
    GPIO 3と6のショートでPTT制御もOKです。

    取り急ぎご報告と御礼まで。

    返信削除
    返信
    1. 西宮の門前小僧様
      レポート有難うございます。47Eに遅くまでのフットプリントがありました。
      皆さんの実験によってますます,情報が積み重なって,総力でサイトが育っていけばいいなと思っております。今後ともよろしくお願いいたします。

      削除