Day After Day
tsurezure naru mamani...
ANOTHER SEASON

Digital Smart Technologies for Amateur Radio ®

アナログFM機とネットブックで出来るノード

4月
23
2013
Back
HOME


今年に入ってからircDDB Gateway & PC Repeater Controller グループの開発が目立って活発になっているように感じます。
DVAP Node + ircDDBGatewayDummy Repeater + ircDDBGateway についてはすでにレポートしましたが、まだまだ楽しめそうなソフトウェアが一杯です。


今回はパソコンのサウンドカードに対する入出力(Mic/Speaker)をアナログFM機のデータ端子に接続し、Sound Card Repeater というソフトウェアでコントロールすることによりアクセスポイントノードを構成してみることにしました。


ここでご紹介している D-STAR ネットワークへの接続ツール(各種ノード・DVAPなど)の運用においては 免許申請について(安田OMサイト)をご参照ください。 (2013年8月 ガイドラインが示されました。)

サウンドカード・リピータ/ノードの免許申請に必要な書類は,送信系統図(例:当局が使用したもの)と下記のインターフェースケーブル図です。 使用するノード用FM無線機の出力ワット数やケーブルの接続方法により,TSSでの保証認定が必要になります。詳しくは前もって各地の総合通信局へお問い合わせください。
(添付書類に関して JF1CXH,JH7OMK 各局のご協力を得ました。)
  1. パソコンと無線機を繋ぐケーブルの作成

  2. Sound Card Repeater 用ケーブル(TH-F7用)の作成もご参照ください。

    パソコンのスピーカーを無線の[AF IN]に入れ、無線の[AF OUT/9600bps]をパソコンのマイクに接続、 DSUB 9ピンの COM ポートから RTS 信号を取り出して PTT をコントロールするということになります。

    DSUB 9ピン コネクタと6ピン DIN コネクタとはケーブルのハンダ付けをする面のピン配列です。つまりケーブルが刺さる相手機械側のピン配列と同じです。 6ピンDINは市販のこネクターが微妙に無線機の奥に刺さり切っていないことがあるので注意が必要です。

    ケーブル作成についてご協力いただいた各局に感謝致します。
    岡野さん(JF1CXH)、福田さん(JR1BFJ)、小川さん(JH7OMK)

    ネットブックのようなパソコンの場合、DSUB 9ピンのシリアルポートが付いていない場合がほとんどです。 私の場合は手元にあった「ELECOM」製の UC-SGTというUSB-シリアルコンバータを使いました。 コンバータケーブルを刺して次のような方法で認識しているか探ることが出来ます。

    $ dmesg | grep serial
    [13738.926561] pl2303: Prolific PL2303 USB to serial adaptor driver
    $ dmesg | grep pl2303
    [13738.926502] usb 4-1: pl2303 converter now attached to ttyUSB0
    

    その他関連コマンドとしては次のようなものも知ることが出来ました。

    $ lsusb
    $ usb-devices
    


  3. パソコンの準備

  4. 眠っているパソコンを利用したかったため、今回はLinuxをインストールしたマシンを使用する事にします。仕様は次のとおりです。 決してパワーのあるものではありませんので、普通にお使いのパソコンなら何でも問題はないでしょう。
    acer ASPIRE one(CPU: Intel Atom N270 1.60GHz)
    ✅ linux: Debian 6.0.7 Squeeze
     2013年5月 Squeeze にかわる安定版として Debian 7.0 Wheezy がリリースされましたが、同様に稼働することを確認致しました。
    ✅ デスクワーク用としてインストールしたものでサウンドが正常に稼働している。
    新たにLinuxをインストールしてみようとされる方は、「 眠っていたパソコンがLinux(Debian)で蘇る」をご覧になってください。
    =MEMO=
    Windowsでやってみたい方は、次項のソフトウェアをダウンロード、インストールした後は、すぐ調整に入れます。


  5. ソフトウェアの準備

  6. 最新β版 Yahooグループに登録している方
    http://groups.yahoo.com/group/ircDDBGateway/files/Beta/ にある
    ircDDBGateway-2013mmdd.zip と ・ http://groups.yahoo.com/group/pcrepeatercontroller/files/Beta/ にある
    Repeater-2013mmdd.zip

    =MEMO=
    Windowsの方は上記ファイルの拡張子が、「.exe」のものをダウンロードしてダブルクリックするだけです。
    Program Files内にircDDBGatewayとRepeaterというフォルダーが出来ます。


    Linuxでインストール作業などをすると、コマンドモードで「デスクトップ」や「ダウンロード」というような日本語を打つのが面倒だったり、ミスが増えたりします。 好みによって元々の英語名に戻すことができます。

    $ sudo apt-get install xdg-user-dirs-gtk	# 既にインストールされていれば最新と表示される。
    $ LANG=C xdg-user-dirs-gtk-update
    $ ls						# 確認します。
    Desktop Documents Downloads Music Pictures Public Templates Videos
    
    再起動したとき、今度は英語名を日本語にするかと聞かれますので、「今後聞かない」「そのままにする」を選択してください。
    なお、上記の様に sudo を実行したとき「ユーザーがsudoグループにありません」のようなエラーが出たときは次の様にしてください。

    $ su
    パスワード:			# インストール時 root(管理権限者)に設定したもの
    # adduser USERNAME sudo		# USERNAME=今ログインしているユーザ名
    # visudo			# 下記ファイルを開きユーザを追記する
    
     GNU nano 2.2.6          File: /etc/sudoers.tmp
         :
    # User privilege specification root ALL=(ALL) ALL USERNAME ALL=(ALL) ALL


  7. ソフトウェアインストールの前処理

  8. Windowsはダブルクリックして、インストールでいいのですが、今回はテキストファイルのプログラム(Source Program)を インストール可能な形式に翻訳(コンパイル)して、さらにインストール作業をします。したがってコンパイルの時、 他にも必要な関連ファイルがありそれを前もって揃えてやっておく必要があります。

    次のとおり順番にインストールしてください。
    (一行に書く方法もありますが取りあえず一歩ずつ)

    $ sudo apt-get install wx2.8-headers
    $ sudo apt-get install wx-common
    $ sudo apt-get install libwxgtk2.8-0
    $ sudo apt-get install libwxgtk2.8-dev
    $ sudo apt-get install libwxbase2.8-0
    $ sudo apt-get install libwxbase2.8-dev
    $ sudo apt-get install portaudio19-dev
    $ sudo apt-get install libportaudio2
    $ sudo apt-get install build-essential
    $ sudo apt-get install libusb-dev
    $ sudo apt-get install g++
    $ sudo apt-get install libusb-1.0-0
    $ sudo apt-get install libusb-1.0-0-dev
    


  9. ソフトウェアのコンパイルとインストール

  10. Webよりダウンロードしたとき、Linuxパソコンの「ダウンロード」(今後 Downloads に名前変更したとして続けます)にファイルを置いたとして、

    $ cd Downloads
    $ sudo unzip ircDDBGateway-2013mmdd.zip  # mmdd は実際は月日
    $ sudo unzip Repeater-2013mmdd.zip
    
    この結果「ircDDBGateway」「Repeater」という二つのフォルダが作成されますので、それぞれのフォルダ内でコンパイルとインストールをします。

    $ cd ircDDBGateway
    $ sudo make
    $ sudo make install
    $ cd ../Repeater
    $ sudo make
    $ sudo make install
    $ cd               # Home ディレクトリへ戻っておく
    
    これから、テストで何度も立ち上げたり終了したりしますので、簡単な立ち上げスクリプトを作っておきましょう。
    $ sudo nano ~/sc         # ~/ はHomeディレクトリの意味です。
    
     GNU nano 2.2.6          File: sc
    cd /usr/local/bin
    sudo soundcardrepeater -gui &
    sudo ircddbgateway -gui &
    
    Ctrl]+ O(オウ)→[Enter]→[Ctrl]+ X で保存して閉じます。

    $ sudo chmod +x sc        # eXecutable(実行可能)ファイルにする
    $ sudo ./sc            # ドット、スラッシュを付けて立ち上げる
    [sudo] password for debian:
    


  11. ircDDB Gateway の設定

  12. 次の様に入力して設定画面を立ち上げます。

    $ cd /usr/local/bin<
    $ sudo ircddbgatewayconfig
    

    ircDDBGateway 初めての設定 (2)を参照してください。


  13. Sound Card Repeater の設定


  14. ircDDBGatewayの図1、図2と設定を合わせる。

    Beaconを1分に設定し、後ほど音声テスト(TX)をし易くしておく。

    後ほどの調整はこの2画面で作業がもっとも多くなる。 先ずInputとOutputのデバイスが自動で表示されているかがもっとも大事である。

    [PTT Delay]は最初少なくとも400ms位に設定しておき調整で詰めていく。
    このサイズのパソコンでは図の様に設定画面の下部が欠けて保存ボタンが見えません。 タスクバーを隠すか、既定で[OK]が選択されていますので、そのまま[Enter]してください。

    送受信の調整以外の設定が正しく行われていると、この時点で ircDDBGateway の方は、ircDDB: ConnectedJE3HCZ B Linked to REF047 Cと表示されます。 また、Sound Card Repeater の方は、Ack Text: Linked to REF047 Cと表示され(これがアナウンスされる)、 Beacon のカウンターが動いているのが確認出来ます。


  15. 全体的な調整作業

  16. Advanced Linux Sound Architecture(ALSA)の調整

    まず、音源が正常に作動しているかチェックしてみます。次のコマンドはルート権限で実行するのは好ましくないとの記述がありました。

    $ alsamixer
    


    特にアウトプット(今回の場合ヘッドフォン)とマスターボリュームを最大にしておきます。 インプット(マイク)に関しては直接ドライバーをコントロールしているのか、 私の場合図の様にミュートしておいても問題なく無線機からデータをインターネット側に流しています。

    場合によってマイクもゲインを上げておく必要がある場合があるのかも知れません。通常のヘッドセット用マイクを繋ぐときは当然必要と思います。 スピーカに関してはデータ音がけたたましく鳴るのでミュートします。
    操作方法は、[F3][F4][F5]で「再生」「録音」「すべて」を切り替え、[F6]でもし複数の音源がある場合セレクト出来ます。 また、[←][→]で横移動し、[↑][↓]でゲインコントロールします。 [5]を押して「50%」という指定も出来ます。また「ミュート」の設定解除は[M]を押します。

    Esc]を押すと終了します。

    $ sudo alsactl store
    上記のコマンドで設定を保存します。この時はルート権限で実行します。 ただし、パソコンを再起動させなければ設定は継続されますので調整中は立ち上げっ放しでもいいでしょう。


    =MEMO=
    図の様にグラフィック画面(スピーカマークから入る)で設定する事も可能です。 両方立ち上げて連動の具合や保存はどちらが優先かなどを知っておくとトラブルが少なくなると思います。

    インプット(RX)の調整
    さて sudo ./sc を使ってソフトを立ち上げてみます。リピータ、ゲートウェイの順に立ち上げるようスクリプトに書いてあるので、 うまくいくと接続の声が聞こえて来るかも知れません。でも、現実は相当に苦労すると覚悟した方が良さそうです。 パソコンとの相性問題というような厄介な状況も起こり得るのです。

    RXとはアクセスポイントとしてのサウンドカード・リピータの受信であるので、運用する者としてはハンディ機等で送信してみます。

    RX State: Proccess DataRPT1: JE3HCZ B RPT2: JE3HCZ Gが表示されたら送信されています。

    もし、他の接続デバイスがあれば同じところに接続してモニターしてみると分かりやすいと思います。

    RX の調整の方が調整要素が少ないので、まずここを抑えてインターネット側に声が出ている様なら、 エコーサーバ(REF047 Eなど)に接続しエコーでサウンドカード・リピータのTXを調整するといいでしょう。

    もしアクセスできない時は、図の RX Level を調整してみます。それでもダメな時は RX Inversion を切り替えてみましょう。

    アウトプット(TX)の調整

    さて、TX の調整はいろんな要素が絡み合います。音源としては ALSA の設定が出来ていればまず問題とならないでしょう。 通常DV機の送信する電波を、他のアナログFM機で受信すると「ピッザーーー」という音に聞こえます。 最初の「ピッ」がヘッダー部分で、続く「ザー」が音声データです。

    基本的にこの音がサウンドカード・リピーターから出力され(TX=ヘッドフォン端子で聞ける)、それがケーブルを通じてノード用アナログ無線機から送信され、 DV機でそれを受ければ音声が返ってきたことになります。

    すなわちDV機と同周波数のアナログFM機をもう一台用意できれば(最悪DV機をFMモードにする)、 その返ってきた「ピッザーー」の音の大きさを聞きながら調整出きるというわけです。これはとても楽で、私の場合決め手となりました。

    アナウンスやエコーバックを頼りに、TX Level をゆっくりスライドします。マウスでやり難ければ、矢印キーでスムーズにスライド出来ます。 まず音源のALSAが100%ですので、最小の0%から徐々に上げながら調整します。 もし音が100%でも聞こえなかったら、TX Inversion のON/OFFを切り替えてみましょう。

    反応するところが「0%」付近であまりにシビアな場合は、ALSA音源のボリュームを段階的に下げて、 相対的にソフト側レベル調整を中程の調整し易い所に移動すると良いでしょう。


  17. 電源を入れるだけの自動起動

  18. 例えばノード専用パソコンとして電源を入れたらログインをすることなく基準設定した接続先に繋がってくれれば便利です。
    前述の立ち上げコマンド用スクリプト sc では ircddbgatewaysoundcardrepeaterを立ち上げました。 ここでは、Windowsのサービスのようなデーモン(Daemon)を起動します。 (ircddbgatewayd soundcardrepeaterd

     まず次のファイルを作成してください。

     
    $ sudo nano /etc/init.d/dstarnode
     GNU nano 2.2.6          File: /etc/init.d/dstarnode
    #!/bin/bash
    ### BEGIN INIT INFO
    #Provides: dstarnode
    #Required-Start: $syslog
    #Required-Stop: $syslog
    #Default-Start: 2 3 4 5
    #Default-Stop: 0 1 6
    #Short-Description: D-STAR Node
    #Description:
    #
    ### END INIT INFO
    #!/bin/sh
    # /etc/init.d/dstarnode
    #
    
    case "$1" in
        start)
            /usr/local/bin/soundcardrepeaterd -daemon &
            sleep 5  # *1下記参照
            /usr/local/bin/ircddbgatewayd -daemon &
            echo "Starting D-STAR Node ... "
            ;;
        stop)
            pkill ircddbgatewayd
            pkill soundcardrepeat
            echo "D-STAR Node has been stopped. "
            ;;
        restart)
            pkill ircddbgatewayd
            pkill soundcardrepeat
            /usr/local/bin/soundcardrepeaterd -daemon &
            sleep 5  # *1下記参照
            /usr/local/bin/ircddbgatewayd -daemon &
            echo "Restarting D-STAR Node ... "
            ;;
            *)
            echo "Usage: /etc/init.d/dstarnode {start|stop|restart}"
            exit 1
            ;;
    esac
    
    exit 0
    

    *1 ircDDBGatewayの立ち上がりが早いと「Linking to....」が一度流れて、しばらくして接続が完了したときもう一度「Linked to...」と2度アナウンスされるのでタイミングを調整します。(無くても良い)

    次に、作成したテキストファイルを立ち上げ可能に属性変更し、自動立ち上げリストで自動起動をONにします。

    $ sudo chmod +x /etc/init.d/dstarnode
    $ sudo apt-get install chkconfig         # すでにインストールされていれば不要
    $ sudo chkconfig dstarnode on
    

    これで、再起動すれば自動起動します。なお、ログインして手動で止めたり、起動したりは次の様にします。

    $ sudo /etc/init.d/dstarnode start
    $ sudo /etc/init.d/dstarnode stop
    $ sudo /etc/init.d/dstarnode restart
    

    グラフィックなアプリを[$ sudo ./sc]で立ち上げて調整し、終わったら上のコマンドでデーモンの様子を見ると言うような作業ができます。

    Back
    HOME