CW Remote Control of USB

リモートコントロールが手軽になりましたね。
しかしCWはキーボードでのOn Air、これはどうも楽しくありません。
和文CWでのラグチュー派なので、モバイルでもバグキーによる個性豊かな^^;符号を出したいものです。
シャック以外の部屋にタブレットとキーがあればCWを楽しめる、あるいは外泊のホテルから・・・。
そんなUSBを使用したキー・インターフェイスを製作して見ました。
面倒な加工なしでできます。

秋月電子のUSB-IO2.0基板をサーバー用とクライアント用に2個買いました(1個\1000)

バージョンアップ情報
2018/11/21 CwRemoteServer1.1
  キーダウン中に回線が切れた場合、5秒(変更可)でキーオフにする対策を入れました。
2018/11/22 CwRemoteClient1.1
  データ量を減らすため、5秒間(変更可)キー操作が無い場合、サーバーへのデータ送信を停止する機能を入れました。

プログラムはここからダウンロードできます。

サーバーPC モバイルPC ともファイヤーウォールを変更します。
プログラムを起動すると自動で設定できますが、もし自分で設定を行う場合は、プログラムを登録する方法とポートを設定する方法があります。
Windowsファイヤーウォールの説明をお読みください。
ポートを指定して開放する場合、RS-BA1と本器をdefaultで使用する時は、UDP 50001-50004の許可をしてください。
インターネット越しで操作する場合は、IPV4パケットフィルタに下記のようにポートの許可を設定します。

種別 許可
通信方向 WAN-LAN
プロトコル UDP
TCPフラグ 指定しない
接続インターフェース 全て
送信元IPアドレス/マスク長 全て
宛先IPアドレス/マスク長 192.168.xx.xx/32 (サーバーアドレス)
送信元ポート 全て
宛先ポート 50001-50004

プログラムでも説明しますが、サーバー側とクライアント側に同じIDを登録します。
同じIDでないと接続できません。
簡単なセキュリティ対策です。
下の写真はクライアント側、電鍵に接続します。
USBはモバイルPCへ。
配線の都合からJ2-3ピンを使用しています。
ケースの加工が苦手なので、この基板に熱収縮チューブを被せて使用しています。
Cw Remote Client Board

下の写真はサーバー側、トランシーバーに接続します。
USBはサーバーPCへ。
配線の都合からJ1-0ピンを使用しています。
クライアントからKEY・オンの信号が来ると、J1-0の出力をHighにします。
トランシーバーのKEY端子をLOWにする必要があるので、MOS FETをはんだ付けします。
ケースの加工が苦手なので、この基板に熱収縮チューブを被せて使用しています。
CW Remote Server Board
表面実装のMOS FET 2N7002をはんだ付けした様子です。
J1-0にゲートを、USBソケットのグランド端子にソースを半田付けしました。
ドレイン端子には0.26mmの1cmのポリウレタン銅線をはんだ付けし、反対側をリード線にはんだ付けします。
これによりリード線が多少動いてもドレイン端子に力が加わりません。

Windows用プログラム
サーバーPC用 CwControlServer.zip
モバイルPC用 CwControlClient.zip

インストール作業はありません。
サーバーPC、モバイルPCに適当なフォルダーを作成して、それぞれのZIPファイルを解凍し、拡張子"EXE"ファイルを起動するだけです。

サーバー用のUSBを挿入しCwControlServer.exeを起動します。


デフォルトでポートが50004になっていますが、好きなポートに変更できます。
変更した場合はファイアウォールの変更もお忘れなく。
IDは空欄ですので、パスワード感覚で適当な英数字を入れて下さい。
設定は以上ですが、「USBデバイスを使用できません」と表示された場合は、[USB]ボタンを押して認識されているか確認します。

秋月電子のUSB-IO2.0は[USB-IO2.0 Device VID=1352 PID=0121]と認識されますので確認してください。
[初期化]ボタンは J2ポートをプルアップ入力、J1を出力に設定します。
USB-IO2.0を初めて使用する場合は、1度初期化してください。
モバイルPCではCwControlClient.exeを起動します

サーバーのIPアドレスを入力してください
ローカルネットワークなら例えば192.168.1.1とかサーバーのIPを確認して入力します。
IDはサーバー側に登録したIDと同じにします。
異なると接続できません。
SW4、SW5、SW6、SW7はチェックを入れると、サーバー側のUSB-IOの出力J1-4、J1-5、J1-6、J1-7がHighになります。
SW4→J1-4
SW5→J1-5
SW6→J1-6
SW7→J1-7
サーバー側のJ1ポートにMOSリレーなどを配線して、リモートSWとして使用出来るようにしています。
SW4・・・SW7の名称を変更する場合は
プログラムと同じフォルダにある CwControlClient.ini ファイルをメモ帳などのエディターで開いて編集します。

CwControlClient.ini
[[Client]
Left=0
Top=0
[TargetServer]
IP=
Port=50004
ID=
[ControlSw]
SW4-Label=SW4 ←[=SW4]を[=AMP POWER]と変更すると、表示が[AMP POWER]になります。
SW4=0
SW5-Label=SW5
SW5=0
SW6-Label=SW6
SW6=0
SW7-Label=SW7
SW7=0
[SideTone]
SW=0
Freqency=800
Volume=39
[KeyPort]
J2=3 ←デフォルトではJ2-3ポートがKeyの接続するところになっていますが、J2-0ポートに接続したい場合はJ2=0とします。
[ActiveTime]
Time(S)=5 ←データ送信を停止する時間(秒)

調整
信号が確実に伝達されれば何の問題もないのですが、回線の品質、PCの動作状態で符号が崩れる場合があります。
簡単な誤り保護を設けていますので、微調整してみてください。

サーバー側
プログラムフォルダー内にある CwControlServer.ini をエディターで開きます。
[SERVER]
Left=0
Top=0
Port=50004
ID=
[KEY]
COUNT=2 ←この数字は、2データ連続で同じなら正しいと判断する条件です(ディフォルト)1にすると入力データにすぐ反応します。
[TxTimeOut]
Time(S)=5 ← データ入力が停止すると、この時間(秒)経過後にキー・オフにします。

クライアント側
プログラムフォルダー内にある USB_IO.ini をエディターで開きます。
[Form]
Top=0
Left=0
[CurrentDevice]
CurrentDevice=USB-IO2.0 Device VID=1352 PID=0121
[Label]
J1-0=J1-0
J1-1=J1-1
J1-2=J1-2
J1-3=J1-3
J1-4=J1-4
J1-5=J1-5
J1-6=J1-6
J1-7=J1-7
J2-0=J2-0
J2-1=J2-1
J2-2=J2-2
J2-3=J2-3
[OUT PORT INI]
J1-0=0
J1-1=0
J1-2=0
J1-3=0
J1-4=0
J1-5=0
J1-6=0
J1-7=0
[Watch Timer]
mS=1 ←Key入力を1ミリ秒間隔で監視しています。2に変更すると 2ミリ秒間隔になります。

以上で説明を終わりますが、プログラム不具合、改良、その他質問がございましたら下記へメールください。
JA7EIF @ murayama.city ←@間の空白を取り除いてください。