JH3DRN 趣味の徒然

主にアマチュア無線、電子工作について書いてます.

ERS (Raspberry版) で送信出来ない件について

いきさつ.

先日、ERSをRaspberryPIで構築した記事を書いてSSBが受信出来た所で力尽きた。で、今日は気を取り直してJTDXとか送信での接続とかを確認したのだが、、、そもそもJTDXで受信出来ない!? 送信も出来ない(TuneもNG)オーディオ設定をTCIからVBAudioに変更したりして、受信は出来たのだが送信が全く出来ない。結構時間を掛けて試したのだがやっぱりNG。ふと思いついてEE社のフォーラムを見ると同じ現象の書き込みが有った。ああ、、、って納得した。Raspberry(ハード)のバージョンやスペックにもよるのだろうが今の所は送信出来ないみたいだ。
それなら、他のOSならどうかと思い、Linux (Ubunts22.04) でERSを作ってみた所、、、すんなり動いた。CATもオーディオもTCIのままでちゃんと動く。で「やっぱり、Raspberry特有の問題ですね!」とEE社フォーラムに書いたのだが、果たして反応は有りや無しや? 様子見としよう。因みに今回作成した Ubuntu は 自宅の "NutanixCE" 上に構築した仮想マシンである。サクッとLinux マシンが作れるので重宝しているが、家に設置してるってまあ、あんまし無いよね。

EESDR3:Expert Remote System (ERS)を Raspberry-PIで構築

いきさつ

Expert Remote System( ERS)が存在するのは知っていたのだが、Webを見ると対象がWindows,Linux, Raspberry となっていて、常駐でWinとLinuxは無いよなあ〜と思っていて、でもRaspberryでは非力じゃね??との思いが今まで有った。所が別件でRaspberry Piを活用する機会があって「使えるじゃん!!」と感触が有って今回チャレンジしてみた。

こんな構成です

上の図で概念的な説明をしてみた。通常は家のPCから自宅ネットワークを通してSDR2DXにアクセスしているのを、外部からアクセスする為にゲートウェイ的PC(ここではRaspberryPI3)を設置してEE社のクラウドと接続する構成になっている。
1.EE社のサイトにアクセスしてアカウントを所得する→メールアドレスとパスワートを登録する。ここで登録したアドレスとパスワードは忘れない様に!(後で登録する) cloud.eesdr.com 2.ちょっと分かりづらので整理しておく。まず、ERSの使用形態としては次の2つがある. 1) PCにEESDR3ソフトウェアをインストールして外部から接続する場合 → 送信可能.
2) PCにソフトウェアはインストールせずにブラウザで接続する場合   → 送信不可.
*今回は 1)に付いてのみ説明する。

インストールと設定

まずはサイトからRaspberryのイメージファイルをダウンロードする drive.google.com 適当なフォルダに解凍してイメージファイルをSDに焼く(私はmacOSなので"baleneEther"を使ったが、Windowsユーザーであれば rufus当たりが無難だと思う)焼けたらRaspberry Piの装着して電源ONなのだが、この状態でSSHでの接続が出来ない。 やむなくディスプレイ+キーボード+マウスを接続して再起動する。恐らく間違い無くRaspberry が起動すると思うのでターミナルを開いて ファイル:"config.json" の編集を行う

 $ sudo vi /home/pi/ERS/config.json

    {
        "email" : "先ほど登録したメールアドレス",
        "secret" :  "先ほど登録したパスワード"
   }

$ wq
$ sudo reboot.   → 再起動する

次にプログラムを起動する。

pi@raspberrypi:/home/pi/ERS $ ./run.sh
rmmod: ERROR: Module ftdi_sio is not currently loaded
2023/06/23 07:10:22.693263 /home/nww/Work/Projects/Go/src/eesdr.com/remoteSystem/starter/worker/scanner/scanner.go:35: Device list: [{EED06442100724 192.168.1.57 50001 false}]
Connect successful

エラーが出ている様だが、最後の行で "Connect successful" と出ているので問題は無いようだ。次に、起動時にシェルが実行される様に "/etc/rc.local" にシェルを登録して再起動する

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

/home/pi/ERS/run.sh

exit 0
稼働確認

PCでEESDR3を起動する。二つ目のタブに"Remote"があるのでそこに、URL "cloud.eesdr.com:5450" と先程登録した自分のメールアドレスを登録した後、ログインし "Successfully authorized" と表示されれば、PCがEE社クラウドに接続出来た事になる。 次にクラウドマークの有るタブのスタートボタンを押す。暫くして下の画面が表示され、左下の鍵アイコンに黄色いネットワークみたいな表示がされれば、PC→EE社クラウド→PaspberrPI→SunSDR2DX 間が接続された事になる。 この時点で画面左上の電源ボタンを押すと暫くしてボタンの色が青色に変わり、更にしばらくするとSunSDR2DXが起動してスペクトラム等が表示される。

ERS経由で無事起動したEESDR3
随分長くなったので取りあえずここまでとします。(疲れた〜〜)

アライドテレシスのスイッチ時刻をPCに合わせるマクロ

TeraTerm のマクロ機能を使って複数スイッチの時刻をパソコン時刻に同期させる

いきなりこんな事を書くので驚いた方がいらっしゃるかも知れないが、今の所こんな感じでネットワーク関連の仕事をしている。そんな中で作ったマクロが割と評判が良いので公開する事にした。TeraTerm のマクロは大変良く出来ていて一度使うと止められないで、いろんなマクロを作って遊んでいる?(仕事だよ)そんな中で割と一般的な機能だと思われる”時刻合わせ”を備忘をかねて掲載する事にした。少し長いがたいした事はやっていないので、マクロ作成の参考になればと。

マクロの内容
;
; アライドテレシス社製スイッチ AT-SHシリーズの時刻をPC時刻に合わせる
;  スイッチのアドレスはファイル ipaddr.txt に格納
;   スイッチへの接続はTelnet を使用
;
;   Update: 2023/06/05
;   Author: JH3DRN
;
; #clock set コマンドの内容
; 例文:システム時計を「2012年2月3日 13時41分0秒」に設定する。
; awplus# clock set 13:41:00 3 feb 2012 

; set username & pass
Username = '<Login user name>'   ; スイッチへのlogin user name
passwd = '<password>'            ; ログイン password

UsernamePrompt = 'login: '           ; プロンプト待ち文字列
PasswordPrompt = 'Password: '    ; パスワードば待ち文字列

fileopen fhandle 'ipaddr.txt' 0  ; IPアドレスの入ったファイルをオープンする

:loop                             ; ループの先頭行

  filereadln fhandle dest_ip     ; ファイルの最初の1行を読んで dest_ip に格納
  if result goto fileclose       ; ファイルの最後だったら閉じる

  msg = dest_ip                  ; connect 文字列を作成する
  strconcat msg ':23 /nossh '
  strconcat msg ' /user='
  strconcat msg username
  strconcat msg ' /passwd='
  strconcat msg passwd

  connect msg                    ; msg = 192.168.**.**:22 /nossh /user=manager /passwd=********
                                  ;  ↑ こんな感じのメッセージが作成されるはず  
  wait   UsernamePrompt           ; login プロンプトを待つ
  sendln UsernamePrompt           ; ユーザー名を送信する

  wait   PasswordPrompt           ; パスワード待ちプロンプトを待つ
  sendln passwd                  ; パスワードを送信する

  sendln 'enable'                 ; enable コマンドを送信する
  wait '#'                        ; # を待つ
  pause 1                        ; 1秒待つ

  gettime timestr                 ; 時刻を獲得し、timestr に格納する
  getdate day "%d"                ; 日付を獲得する
  getdate mon "%m"                ; 月を獲得する
  getdate year "%Y"               ; 年を獲得する
  str2int val mon                   ; 月を数値に変換

  if val=1 then                   ; 月(数字)を英語に変換
    mons = 'Jan'
  endif 
  if val=2 then
    mons = 'Feb'
  endif 
  if val=3 then
    mons = 'Mar'
  endif 
  if val=4 then
    mons = 'Apr'
  endif 
  if val=5 then
    mons = 'May'
  endif 
  if val=6 then
    mons = 'Jun'
  endif 
  if val=7 then
    mons = 'July'
  endif 
  if val=8 then
    mons = 'Aug'
  endif 
  if val=9 then
    mons = 'Sep'
  endif 
  if val=10 then
    mons = 'Oct'
  endif 
  if val=11 then
    mons = 'Nov'
  endif 
  if val=12 then
    mons = 'Dec'
  endif 

  send 'clock set '                 ; 時刻設定コマンド文字列作成
  send timestr
  send ' '
  send day ' ' mons ' ' year        ; dd/mon/yyyy 作成
  sendln                            ; コマンド送信

  wait '#'                          ; wait prompt "#"
  pause 1
  closett                           ; Teraterm sesstion close

goto loop                           ; goto next Switch

:fileclose
fileclose fhandle                   ; Program end
IPアドレスを入れておく "ipaddr.txt" はこんな感じ
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.6
192.168.1.7
その他

<Login user name>にはログインユーザ名を <password> にはパスワードを書いて下さい。このマクロでちょっと苦労したのは月の設定。コマンドで所得出来る形式が数字の1~12で、スイッチへの設定は英語。それでつまらないマクロ(コード)を長々と書いてしまった。後はスイッチ1台毎にPCから時刻を取得しているので、スイッチ間での時刻ずれは少ないと思う。今の所動いているので良しとしているが、もうちょっとスマートにしたいと思っている。

50年前のQSOに eQSL が来た

eQSL チェックしたら

いつもの様にRumlogNGでLotw, eQSL をチェックしたら、eQSLのリストに赤い文字があり、QSO年月日を見たら何と1973年とある。これ50年前だよ?? で、紙のログ(これも50年前のが保管しておいた)と照合すると確かにQSOしてました。日時、周波数、モード、RS 全て一致していて間違い無くQSOしていた事が判明。早々にこちらもeQSLをお返ししたのだがこんなことも有るんだなあ。

  

因みにリグの”IC-7610”は現在お使いの機種だと思う。確か私は当時トリオの JR-310, TX-310 を使っていた記憶がある。

ExpertSDR3 へのバージョンアップ時の問題点

動機

数少ない?? 本ページの読者さんから「ESDR3にしたいけど、どう?」との質問が有ったので情報共有の為記事にした。

SDR2DX(ハードウェア)とESDR2,3(ソフトウェア)の関係

EE社のハードウェア(SDR2, 2DX, MB1)に使用するソフトウェア(SDR2、SDR3)にはハードウェアで使用されるファームウェアが内包されている。つまりSDR2、3のソフトを走らせた時に、SunSDR2DXの中のファームウエアをチェックして、もし異なるバージョンを検知した時には、ファームウエアを再ロードするウィンドが表示される。そのウインドでファームウエアが読み込める事となり、この仕組みでユーティリティーソフトとSDRの内部のファームウエアを常に適合させている。(ファームウエアを単体で再ロードする方法はマニュアルの最期に書かれている) 安全に再ロードするには、バージョンの低いExpertSDR2を一度走らせてバージョンの低いファームを一旦読み込み、次に現行のExpertSDR2を一度走らせてロードする方法もある。
なのだが、まれに、ファームとアプリのバージョンが異なってしまう事があるようで私もこのトラブルで苦労して、結局ED社の木下さんに助けて頂いた経緯がある。そんな訳でSDR2では希にこんなトラブルが起こる可能性があると言う事。

ESDR3ではどうなの?

これに対してESDR3にはファームウェアマネージャが付属しているので常にバージョンチェックや手動でのファーム更新が出来るのが特徴となっていて安心である。ただ、EESDR2と3では使用出来るファームが異なるので一旦ESDR3に更新して、2に戻そうとした場合には上記の様な作業を行わなければならない為、注意(覚悟?)が必要となる。因みに私は2021/12にESDR3に更新して以来、2も戻そうと思った事は無い。

CATコントロール

ESDR2ではCATとしてTS-480相当のコントロールがあったと思うが、ESDR3ではこれが無い。単独で使用出来るI/Fは ”TCI” のみとなっている。但し。Radio Sync と言うソフト(EE社製)を使えばTS−480モードでCATが使用出来るので問題は無いのだが、、RadioSync とアプリの相性次第となるのでこの当たりも要注意かと。

有線LAN接続

EESDR3をリリースした時に「我々はPCとのネットワークを強化、高速化した!」とのメッセージがあったのだが、私の感想では高周波(送信電力)の影響をより強く受ける様になった気がする。具体的に言うと特定の周波数でFT8運用している場合、突然パソコンとのリンクが途絶えてしまう現象が多発していた。色々試行錯誤した結果、こんな感じで対処し現在は問題無く運用出来ている。

  1. 使用するスイッチ(ハブ)は金属ケースに収容されている物を使用する
  2. スイッチと無線機のLAN接続は出来るだけ短い(私の場合は3m)ケーブルかつシールド付きの物を使用する。

ネットワークが切れる現象はリグコントロールをCATからTCIに変更した事が影響している可能性があると思っている。CATの場合、リグとPCの間では間接的とはいえ、USB I/Fで接続されている。また、音声もVBAudio等仮想のI/Fで接続されているのが、TCIになった途端、CATも音声も全てイーサネットでのコントロールとなり負荷が高くなったのでは無いか??(私の推論なので??ですよ)そんな感じでESDR3での運用では物理的にイーサネットをどう構築するかが課題であるとの結論に達している。

じゃあどうなの??

私の中の結論は「ESDR3有りき!」で2に戻る事は無い。先にも書いたが2021/12よりESDR3を使ってきて、まあ色々有ったが現在も快適にオペレーション出来ている事が「ESDR3有りき」の証明だと思う。ESDR2には長い歴史があり安定しているので2の機能で満足されているならバージョンアップの必要は無いと思うが、ESDR3も良いですよ!と一言 言いたかった。

DXCC ステッカー 200 到着!

DXCCステッカー到着

昨日あたり、フェイスブックで ”DXCCステッカー届いた” と言うメッセージが多かったので ”うちは?” と思っていた所、届きました! 内容物はこんな感じでコスパは良くない感じかな。まあ、趣味の世界なのでこれはこれで嬉しいし、良しとしよう。 DXCC 100 が達成出来たのが2021年5月なので、200達成まで2年掛かった事になる。最近はペディッションが復活してきているので少しずつではあるがATNOが解消出来ているので、何とか250は出来そうな気がするがそれ以上は難しそう。因みにステッカーを貼った賞状はこんな感じ

ExpertSDR3 Ver 1.0.4 bata 公開される

予告通り

予定にあった通り、EESDR3 Ver1.0.4 beta が2023/05/05 に公開された。(予定通りとは素晴らしい!!)今回のバージョンで大きな改変は無いようでバグフィックスが主な内容のようだ。因みにノートの概略を書くと、

リリースノートから抜粋
  1. Windowsではbatファイル。macOSではシェルスクリプト(.sh)を起動できるようになった
  2. バンド別、モード別の自動AGCしきい値を保存するプロファイルを追加した
  3. EiBiライブラリの更新
  4. RITとXITが表示されるようになった   
  5. N1MMとの互換性を高めるための新機能として、PTT-transferの起動(PTTフットスイッチの押下)によるTX信号の自動分割がある。1つのシンクペアでCAT/VAC/PTT-transferを設定した場合、TX信号の選択はPTT-transferの状態によって決定される。フットスイッチが押されている場合、マイク信号を送信し、フットスイッチが押されていない場合 - VACから信号を送信する。
バグフィックス
  • SPLITモード転送禁止の定義
  • Ext.Ctrlの初期化
  • ボイスレコーダー録音転送機能の操作
  • デフォルトのAGCスレッショルドパラメーターを初期化する
  • 受信機のフィルター設定を初期化する
  • ラインオーディオ出力にRX_MUTEが適用されるようになった
  • XVTRパノラマの周波数設定の制限緩和

こんな感じなのだが、私的にはアプリケーション起動でシェルが使える様になったのが一番嬉しいかな。この後のバージョンアップは2023/12/25(クリスマス)の最終バージョンになるらしい。楽しいプレゼントになる事を祈る。