JH1LHVの雑記帳

和文電信好きなアマチュア無線家の雑記帳

スポンサーリンク

ICOM Control Program(ICOM_PTT_F2A)公開

3年越しのアプリ公開になります。

V/UHF 帯の FM でモールス通信をもっと気軽に楽しめないだろうか・・・そんなことを考えながら、ずいぶん前からいろいろな実験を繰り返してきました。

今回公開する 「ICOM Control Program(ICOM_PTT_F2A)」 は、Windows 上で動作し、ICOM IC-9700 と組み合わせて使用することを前提に作成したアプリです。

IC-9700 を対象としているのは、単純に私の手元にあり、実機で動作確認ができる無線機だからです。同じ ICOM 製の無線機でも、IC-9700 と同様の CI-V コマンドに対応し、さらにパソコンとの USB オーディオ接続が FT8 などですでに設定されている機種であれば、同じように動作する可能性があります。

ただし、現時点では IC-9700 以外の機種について十分な動作確認を行っていません。このあたりは、今後少しずつ調査・確認しながら、対応状況を整理していきたいと思っています。

このアプリの主な機能は、大きく分けて次の2つです。

  • パソコンから無線機の PTT を ON/OFF する機能
  • FM モードのままモールス信号を送信する F2A 送信機能

このほか、CI-V を利用した無線機本体の電源 ON/OFF にも対応しています。

パソコンから PTT を操作する

FM で長時間ラグチューをしていると、ハンドマイクの PTT スイッチをずっと押し続けることが、意外と負担になります。

そこでこのアプリでは、画面上のボタンから PTT を ON/OFF できるようにしました。一度 PTT を ON にすれば、ハンドマイクの PTT を押し続ける必要はなく、そのままマイクに向かって話すことができます。

もちろん、パソコンから PTT を ON にしたまま忘れてしまうと困ります。そこで安全対策として、PTT を ON にすると 300秒(5分)のカウントダウンタイマー が動作するようにしました。

300秒が経過すると PTT は自動的に OFF となり、送信を終了します。

長時間の FM 運用で少しでもマイク操作の負担を減らしつつ、「うっかり送信しっぱなし」を防ぐことも、この機能の目的です。

FM モードのままモールスを送信する・・・F2A

そして、今回のアプリの目玉機能で是非とも試していただきたいのが、FM モードのままモールス信号を送信する機能です。

パソコンのキーボードにある 下矢印キー(↓) を電鍵として使用し、キーを押している間だけモールス用の可聴音を発生させ、その音を IC-9700 の USB オーディオ経由でマイク入力として変調します。

つまり、FM モードのままで下矢印キーを叩くことによって、F2A のモールス信号を送信することができます。

すでに IC-9700 とパソコンを USB ケーブルで接続し、FT8 などで USB オーディオが使える状態になっているのであれば、基本的には今回公開した Windows アプリを起動するだけです。

特別な CW インターフェースを追加しなくても、まずはパソコンの下矢印キーを電鍵代わりにして、FM モードからモールスを送信できます。

さらに、下矢印キーの入力を USB 経由で外部スイッチとして取り込めるケーブルを用意すれば、普通の縦振れ電鍵などを接続して、本物の電鍵で F2A を送信することもできます。

当ブログでは、この USB 電鍵ケーブルを製作するためのパーツについても頒布していますので、必要な方はそちらもご利用ください。

FM のラグチューの中にモールスを

このアプリを作った理由のひとつは、モールスをもっと気軽に始められる場所を作れないかと思ったからです。

通常の FM モードのままモールスを送ることができれば、いつものローカル局とのラグチューの途中で、

「ちょっとモールスを打ってみよう」

ということも簡単にできます。

これからモールスを覚えようとしている方や、符号は覚えたものの「実際の交信ではどうすればいいのか分からない」という方にとっても、普段 FM で話しているベテラン局にその場で教えてもらいながら練習することができます。

通常の CW 交信では、電鍵を叩けばすぐに電波が出てしまいます。そのため、初心者にとっては最初の一歩が意外と高いハードルになりがちです。

一方、FM のラグチューの中であれば、

「今から CQ を打ってみます」

「少し速いから、もう少しゆっくり」

「今の符号はきれいに聞こえました」

と、音声で会話しながら、その場でモールスを練習することができます。

そんな使い方ができれば、モールスを始めるきっかけのひとつにもなるのではないでしょうか。

すでに IC-9700 をパソコンと USB 接続している方であれば、追加するハードウェアはほとんどありません。

FM で話しながら、ちょっとモールスも打ってみる。

そんな気軽な使い方から、CW を楽しむ仲間が少しでも増えてくれればと思っています。

アプリダウンロード

以下の ZIP ファイルをダウンロードしてください。

download: ICOM_PTT_F2A_v.0.5.zip

ZIP ファイルを解凍すると、実行ファイルが1つ入っています。インストール作業は不要で、そのまま起動できます。

事前準備

すでに IC-9700 をパソコンと USB 接続し、FT8 などで運用している場合は、ここで説明する準備の多くは完了しているはずです。その場合は、この項目を読み飛ばして構いません。

  1. USB ドライバーのインストール
    IC-9700 とパソコンを初めて接続する場合は、USB ケーブルを接続する前に、アイコム公式サイトのダウンロードページから IC-9700 用の最新 USB ドライバーを入手し、パソコンへインストールしてください。
  2. ケーブルの接続
    USB ドライバーのインストールが完了したら、市販の USB ケーブル(A-Bタイプ)を使って、IC-9700 背面の USB 端子とパソコンを接続します。
  3. COM ポート番号の確認
    Windows の「デバイス マネージャー」を開き、「ポート(COM と LPT)」を確認します。

    IC-9700 を接続すると、通常は2つの仮想 COM ポートが追加されます。たとえば COM3 と COM4 のように表示されます。

    本アプリでは、このうち番号の小さいほうを CI-V による無線機制御用として使用します。

    表示された COM ポート番号は、あとでアプリの接続画面から選択しますので確認しておいてください。

IC-9700 本体の設定

PTT ON/OFF を行うための CI-V 設定

本アプリから IC-9700 の PTT や周波数、電源などを制御するため、CI-V 関係の設定を行います。

IC-9700 のメニューから、次のように設定してください。

  1. SET を開きます。
  2. 外部端子 を開きます。
  3. CI-V を開きます
  4. CI-Vアドレス を A2h に設定します。
  5. CI-V USBボーレート を 19200 に設定します。

COM ポートが Windows に表示されない場合は、USB ドライバーが正常にインストールされているか、USB ケーブルが正しく接続されているか、IC-9700 の電源が入っているかを確認してください。

あわせて、Windows のデバイス マネージャーで IC-9700 に対応する COM ポートが認識されているか確認します。

USB 音声を F2A として送信するための設定

次に、パソコンで生成した CW トーンを USB 経由で IC-9700 へ入力できるようにします。

IC-9700 で次のように設定してください。

  1. SET を開きます。
  2. 外部端子 を開きます。
  3. 変調入力 を開きます
  4. 通常の FM モードで使用する 変調入力(DATA OFF) を MIC, USB に設定します。

MIC, USB に設定すると、通常の FM モードのままで、

  • IC-9700 のマイクから入力された音声
  • 本アプリから USB Audio CODEC 経由で送られる CW トーン

の両方を変調入力として使用できます。

そのため、FM フォーンと F2A を切り替えるたびに無線機のモードや入力設定を変更する必要がありません。

普段はマイクを使ってラグチューし、その途中で電鍵を叩いて F2A を送信するといった使い方ができます。

ただし、PTT が ON になっている間はマイクから入った音声も同時に送信されます。F2A を送信するときには、周囲の音や意図しない会話まで送信しないよう注意してください。

マイク音声を一切使わず、F2A 専用として運用する場合は、必要に応じて変調入力を USBのみに設定することもできます。

なお、本アプリは無線機のモードそのものを変更しません。

IC-9700 は通常のFMモードのまま使用し、PTT の ON/OFF のみを CI-V で制御します。

モニター音の出力先

本アプリは起動時に2系統の音声出力を開き、同じ CW トーンを同時に出力します。

  • 出力 A:USB Audio CODEC
    IC-9700 に入力する F2A 変調用の音声

  • 出力 B:Windowsの既定の再生デバイス
    PC のスピーカーまたはヘッドホンで聞くためのモニター音

Windows の既定の再生デバイスは、通常使用している PC スピーカーまたはヘッドホンに設定しておいてください。

IC-9700 に接続される USB Audio CODEC は、本アプリの接続画面にある「IC-9700 音声」で個別に選択しますので、Windows の既定の再生デバイスにする必要はありません。 

IC-9700 で F2A を送信するためのシステム構成

本アプリと IC-9700 を組み合わせた F2A 送信では、制御信号と音声信号の2系統を使用します。

IC-9700 とパソコンを USB ケーブルで接続すると、CI-V 制御用の仮想 COM ポートと、音声入出力用のUSB Audio CODEC が利用できるようになります。

本アプリでは、COM ポートを使って周波数の取得、電源操作、PTT 制御などを行い、同時に USB Audio CODEC へ CW トーンを直接出力します。

さらに、同じ CW トーンを Windows の既定の再生デバイスにも出力するため、PC のスピーカーやヘッドホンで自分の送信音をモニターできます。

本アプリでは、出力 A と出力 B へ直接同時出力するため、ステレオミキサーの設定は不要です。

F2A運用と免許上の注意

F2A の免許手続きについては、これまでに制度上の変更が行われています。

ただし、無線機の外部端子から低周波信号を入力する場合と、スピーカーから出した音を無線機のマイクで拾わせる場合などでは、設備や運用形態の扱いが異なる可能性があります。

実際に運用する際には、その時点の法令、無線局免許状の記載内容、総務省の案内、所属団体などが提供する最新情報を確認してください。

参考:F2A の免許手続きが簡略化されました - JH1LHVの雑記帳

使用方法

アプリの起動後、最初に IC-9700 との接続設定を行います。

  1. 本アプリを起動します。
  2. 「通信ポート」で、IC-9700 に割り当てられた COM ポートを選択します。
  3. 「IC-9700音声」で、IC-9700に対応する USB Audio CODEC を選択します。
  4. 「接続」を押します。
  5. 接続に成功すると、メイン画面が表示されます。

選択した COM ポートと USB Audio CODEC はユーザー設定として保存され、次回起動時に自動的に復元されます。

ただし、USB 機器の接続順を変えた場合など、前回使用したデバイスが見つからないことがあります。その場合、COM ポートは一覧の先頭が自動的に選択されますが、USB Audio CODEC については改めて選択してください。

接続に失敗した場合はエラーメッセージが表示され、接続画面のままとなります。

他のアプリケーションが同じ COM ポートを使用している場合は接続できません。FT8 ソフトやロギングソフトなど、CI-V を使用しているアプリをいったん終了してから、再度接続してください。

接続画面の「終了」を押すと、本アプリを終了します。

メイン画面

メイン画面は、本アプリの起動中、通常のウィンドウより前面に表示されるようになっています。

FM でラグチューしながら PTT や CW を操作することを想定し、他のウィンドウの後ろに隠れにくくしています。

電源操作

表示 動作
POWER ON IC-9700 へ電源 ON コマンドを送信します。
POWER OFF PTT が ON の場合は PTT を OFF にしてから、電源 OFF コマンドを送信します。

電源 ON/OFF コマンドを使用するためには、IC-9700 側のリモート電源操作に関する設定や接続条件が必要になる場合があります。

周波数表示

メイン画面中央には、IC-9700 から取得した現在の周波数が表示されます。

  • 正常に取得できた場合:例 145.000.00
  • 応答を取得できなかった場合:-

- の表示が続く場合は、COM ポート、通信速度、CI-V アドレス、USB ケーブル、IC-9700 側の CI-V 設定などを確認してください。

PTT 操作

PTT ボタンに表示される文字は、現在の状態ではなく、「ボタンを押したときに実行される動作」を示しています。

ボタン表示 現在の状態 押したときの動作
PTT ON PTT OFF PTT を ON にします。
PTT OFF PTT ON PTT を OFF にします。

PTT を ON にしても、本アプリは無線機の運用モードを変更しません。

そのため、IC-9700 を FM モードで運用している場合は、そのまま通常の FM フォーン交信を行うことができます。


PTT ON で送信中の画面

300秒タイマー

メイン画面の PTT ボタンを使って PTT を ON にすると、同時に300秒のカウントダウンが始まります。

長時間のラグチューなどで、うっかり PTT を ON のままにしてしまうことを防ぐための機能です。

  • 残り30秒で表示が黄色になります。
  • 残り10秒で表示が赤色になります。
  • 0秒になると PTT を自動的に OFF にします。
  • PTT が OFF になると、表示は300秒に戻ります。
  • 途中で PTT OFF を押した場合もタイマーは停止し、300秒へ戻ります。
300秒タイマーは、メイン画面の PTT ボタンを使った連続送信を保護するための機能です。CW のセミブレークイン送信では、下矢印キーを離したあと、設定したディレイタイムが経過した時点で PTT が OFF になります。

CW 発振器

メイン画面下部にある「CW 発振器」にチェックを入れると、ウィンドウが下方向へ拡張され、CW 操作用の画面が表示されます。

チェックを外すと、

  • 発振中のモニター音
  • CW 操作によって開始された自動送信

を停止し、ウィンドウも元のサイズへ戻ります。

CW 発振器の FREQ、VOL、ディレイタイムの設定値は、アプリ終了時に保存され、次回起動時に復元されます。

保存されている値が設定可能な範囲を外れている場合は、既定値が使用されます。

【注意】CW 発振器の機能を使用する際は、パソコンのカーソルが本アプリにあり、アクティブになっていることが必要です。

【注意】Wi-Fi や Bluetooth 接続のスピーカーを使用すると、通信処理による遅延のため、電鍵の打鍵と実際にスピーカーから聞こえるモールス音との間にタイムラグが生じる場合があります。モールスのモニターには、有線接続のスピーカーやヘッドホン、またはディスプレイ内蔵のスピーカーをご使用ください。

CW 操作部

項目 内容 初期値/範囲
FREQ CW トーンの周波数 初期値600 Hz、400~1500 Hz、10 Hz刻み
VOL IC-9700 への F2A 出力レベルと PC のモニター音量 両方を同じ値で調整
送信する 下矢印キーに連動して PTT を自動操作 初期状態 OFF
モニター音 ON/OFF PC から聞こえるモニター音を選択 初期状態は ON
ディレイタイム キーを離してから PTT を OFF にするまでの時間 初期値300 ms、最大1000 ms、5 ms刻み

モニター音の選択

「モニター音」のラジオボタンで、パソコンのスピーカーやヘッドホンから CW トーンを鳴らすかどうかを選択します。

初期状態は ON です。

OFF にしても、IC-9700 に接続された USB Audio CODEC への CW トーン出力は継続します。

つまり、

電波には F2A を送信しながら、パソコンからはモニター音を鳴らさない

という使い方もできます。

送信練習として使用する

まずは電波を出さず、CW 発振器として練習することもできます。

  1. 「CW 発振器」にチェックを入れます。
  2. 「送信する」のチェックを外したままにします。
  3. 「モニター音」の ON になっていることを確認します。
  4. FREQ と VOL を好みの値に調整します。
  5. キーボードの下矢印キーを押します。
  6. キーを押している間だけ CW トーンが鳴り、離すと停止します。

この状態では PTT は動作しませんので、実際に電波が送信されることはありません。

セミブレークイン送信を使用する

F2A を実際に送信する場合は「送信する」にチェックを入れます。

  1. 「CW 発振器」にチェックを入れます。
  2. 「送信する」にチェックを入れます。
  3. 必要に応じてモニター音、周波数、音量、ディレイタイムを設定します。
  4. 下矢印キーを押すと PTT が ON になります。
  5. キーを押している間、CW トーンが IC-9700 へ出力されます。
  6. モニター音が ON の場合は、同じ音が PC からも聞こえます。
  7. キーを離すと CW トーンが停止します。
  8. 設定したディレイタイムが経過すると PTT が OFF になります。

セミブレークイン動作中は、画面上の赤色 LED が点灯します。

また、アプリが非アクティブになった場合や「CW 発振器」を OFF にした場合には、安全のためモニター音を停止し、CW 操作によって開始された送信も終了します。


電鍵操作で F2A を送信中の画面

最初の符号の頭切れ対策

PTT が OFF の状態からいきなり CW トーンを出力すると、無線機が送信状態へ切り替わるまでのわずかな時間によって、最初の短点や長点の頭が欠けてしまうことがあります。

そこで本アプリでは、PTT が OFF の状態から最初のキー入力があった場合、

PTT ON → 50ms 待機 → CW トーン出力

という順番で処理しています。

一度 PTT が ON になり、セミブレークインのディレイ時間内で送信状態が保持されている間は、この 50ms の待ち時間を入れません。

そのため、2打目以降は下矢印キーの操作にほぼそのまま追従します。

さらに、50ms の待機時間中にキーを離してしまった場合でも、その押下時間を記録し、PTT が立ち上がったあとに同じ長さのトーンとして再生します。

極端に短い入力が消失しないよう、最初のトーンには最低 20ms を確保しています。

これにより、単独の短点である「E」のような非常に短い符号も、できるだけ取りこぼさないようにしています。

とはいえ、パソコン、USB、無線機など複数の処理を経由しているため、完全なリアルタイム動作を保証するものではありません。

送信する にチェックを入れると、下矢印キーを押しただけで実際に PTT が ON になります。
電波を出さずに練習する場合は、必ず「送信する」のチェックを外してください。

 

音量調整時の注意

F2A の最終的な変調レベルは、おおむね次の3段階によって決まります。

本アプリのVOL
    × Windows側のUSB Audio CODEC出力レベル
    × IC-9700側のUSB変調入力レベル
    = 実際のF2A変調レベル

本アプリの VOL は、IC-9700 用の出力 A とPC モニター用の出力 B の両方へ同じ値を設定します。このため、VOL を上げると、スピーカーのモニター音だけでなく IC-9700 へ入力される F2A 変調音も大きくなります。

Windows のスピーカー音量は主に出力 B の聞こえ方を調整します。Windows 側で USB Audio CODEC の出力レベルを変更した場合は、出力A、つまり IC-9700 へ入る信号レベルに影響します。また、IC-9700 側の USB 変調入力レベルも実際の送信変調度に影響します。

現在のバージョンでは、「IC-9700への送信レベル」と「PCのモニター音量」をアプリ上で別々に調整することはできません。
モニター音だけを大きくしたい、または小さくしたい場合は、アプリの VOL は固定したまま、Windows のスピーカー音量で調整してください。

推奨する変調レベルの調整手順

  1. Windowsの USB Audio CODEC のレベルを一定値に決め、その後はむやみに変更しないようにします。

  2. IC-9700 の USB 変調入力レベルは中程度から始めます。

  3. 本アプリの VOL を低めに設定します。

  4. ダミーロードなど、適切な試験環境を用意します。

  5. 別の受信機などで実際の F2A 音を確認します。
  6. 本アプリの VOL を少しずつ上げ、明瞭で歪みのない音になる位置を探します。

  7. 必要な場合のみ、IC-9700 側の USB 変調入力レベルを微調整します。

  8. PC のモニター音だけが大きすぎる、または小さすぎる場合は、Windows のスピーカー音量で調整します。

音が歪む、濁る、あるいは必要以上に広がって聞こえる場合は、本アプリの VOL または IC-9700 側の USB 変調入力レベルを下げてください。

画面上の数値だけで判断せず、できれば別の受信機やモニター機を使って、実際に送信されている F2A の音を確認しながら調整してください。

終了と切断

メイン画面を閉じる場合

メイン画面右上の「×」ボタンを押して閉じると、安全のため次の終了処理を行ったうえで、接続画面を含むアプリ全体を終了します。

  • 300秒タイマーの停止
  • モニター音停止
  • CW 操作によって開始された送信の停止
  • PTT が ON の場合は PTT OFF
  • COM ポートの切断
  • 接続画面を含むアプリ全体の終了

接続画面から終了する場合

接続画面の「終了」を押しても、そのままアプリを終了できます。

電鍵接続用 USB ケーブル(任意、パーツ頒布中)

パソコンのキーボードではなく、普段使用している電鍵で操作したい場合は、Desktop CW で使用できる、Digispark ATtiny85 を利用した USB ケーブルが使用できます。

このケーブルでは Digispark ATtiny85 を USB HID キーボードとして動作させ、電鍵の開閉をパソコンの「下矢印キー」に変換します。

ブログでこれまで紹介してきたものでは、主に次のような構成になっています。

  • マイコン:Digispark ATtiny85
  • パソコンからの認識:USB HIDキーボード
  • 電鍵 ON 時の出力:下矢印キー押下
  • 使用端子:P0
  • P0 はプログラム内部でプルアップするため、外付けプルアップ抵抗は不要
  • 電鍵接続:3.5mm ステレオ延長ケーブルのメス側を流用
  • USB 接続:USB A 延長ケーブルを利用
  • 配線部:シリコンなどで補強
  • 外装:熱収縮チューブで絶縁・保護

このケーブルをパソコンに接続すると、電鍵を閉じている間、パソコンへ「下矢印キーが押されている」という HID 入力が送られます。

したがって本アプリから見ると、パソコンのキーボードにある下矢印キーを押した場合とまったく同じ操作になります。

「CW 発振器」だけを ON にすれば練習用の発振器として使えますし、「送信する」にチェックを入れれば、実際の電鍵を使ってセミブレークインで F2A を送信できます。

縦振れ電鍵はもちろん、スイッチとして ON/OFF できるものであれば、工夫次第でさまざまな電鍵を接続できます。

自作した USB 電鍵ケーブルをパソコンへ接続する前に、配線、絶縁、USB コネクターの向き、短絡の有無などを十分に確認してください。
Digispark の基板によっては端子配置や表記が異なる場合がありますので、端子名だけを頼りにせず、使用している基板の回路図や記事中の写真・スケッチも確認してください。

製作方法、頒布については、以前の記事も参考にしてください。

Desktop CW の開発 ~3~

Desktop CW ~ USB ケーブル ~ 頒布 ②

しばらくは、このアプリのアップデートを続けていく予定です。

まずは、アプリ自体にエレキー機能を追加し、パドルを接続して操作できるようにしたいと考えています。今後も実際に使いながら、少しずつ機能を充実させていくつもりです。