ライセンスフリー無線情報 >> 無線ブログ集 >> JJ1LFO ~線無きことかな~

無線ブログ集

リンク 単体表示 UTF-8 形式


link JJ1LFO ~線無きことかな~ JJ1LFO ~線無きことかな~ (2024/11/23 1:35:59)

feed CW Decoder を M5Core2 (M5Unified) に移植してみた (2024/9/26 11:11:00)

DSC_1859-01.jpeg たまたまデンマークの OZ1JHM Hjalmar Skovholm Hansen さんの、Arduino CW Decoder 

" A VERY simpel CW decoder EASY BUILD " ページを訪れて、試してみたくなってしまった。

Arduino Uno互換ボードへの移植

手始めに、Arduino Uno 互換のCPUボードと10個のセンサモジュールが一体になった、
Grove Beginner Kit for Arduino  で動かしてみた。

元のソースから、
データ線 4 bits の20桁4行 LCD を使うようになっていたのを
で使えるようにして。

  • 入力のADCのサンプリング周波数を起動時に自動計測

Beginner Kit 搭載の
を使うように PIN 定義を変更しただけで。
特に問題もなく、簡単に移植できました。

動作している動画

M5Core2 への移植

Grove Beginner Kit for Arduino  では実用するには大きすぎるので、LCD も Mic 入力も搭載している M5Core2 に移植を試みる。

ソースはこちら

M5Stack シリーズでは、私の持っている M5Core2 より通常の M5Stack系の方が普及していそうなので。
仕様の異なるハードウェアのM5Stack製品間を共通のAPIで使用できるライブラリ M5Unified を利用して作成すれば多くの人に使ってもらえそう。
M5Unified に関しては公式ページよりも、こちらの M5Unified入門 ページの方が分かりやすいかも。

改造点

表示
  • スクロール・テキスト領域に、デコードした文字を表示。
  • 下記の強度表示領域の左側に、WPM を表示。
  • トーン信号強度を GREEN 、検出閾値の強度を DARKGRAY、検出したと判断したら YELLOW で描画する領域。これは追加してみると無線機音量や無線機との距離の目安や、パラメータ調整にもかなり便利でした。

OZ1JHMさんの decoder11.ino は GPL なので、
"This program is a modified version of "OZ1JHM CW Decoder VER 1.01”, 
originally developed by Hjalmar Skovholm Hansen."

という文章を表示する起動時 Splash も追加。


ほぼ初めて M5Unified を使いまいしたが、高機能な  LovyanGFX  をラッピングした M5GFX でチラつきのないスプライト処理などが簡単に扱えて非常に便利。
ただ高機能なゆえ、M5Unified の公式ページのドキュメントだけでは分かりにくい部分もあり、
結局 [Arduinoフォルダ]/libraries/M5GFX/src/ で Header などを眺めるのが確実。 

Goertzel Algorithm
M5Stackシリーズに搭載されている ESP32 では浮動小数点演算機能が搭載されているので、元々の float による演算でも早くて負荷は軽いのですが。
他の CPU や固定小数点 DSP でも利用しやすいように、固定小数点演算化しました。
また、得られる信号強度を演算サンプル数で正規化してサンプル点の大小によらず一定の値が得られるようにしました。

Mic 入力
Mic 入力は Arduino 版の analogRead() による ADC ではなく、
M5Core2 の PDM 出力 Mic を M5.Mic.record() でデータを取得。
少しハマったのは record() 関数で指定したバッファは常にデータ転送で上書きされていくので、
スタック領域ではなく、静的なデータ領域に確保して転送が完了したらすぐに
他のバッファにコピーしておかないと不連続なデータになってしまうようです。

無線機スピーカの音量や、無線機スピーカとの距離に気を使わなくてすむように、
Mic 入力に AGC ( A utomatic G ain C ontrol) 処理を追加しました。

動作動画




所感

 M5Core2 に小さくまとまりMic 入力で配線接続の手間のなくなったので、かなり実用的になったと思う。

シンプルなアルゴリズムにも拘らず、弱くてノイズの多い受信音でも結構な解読性能を示します。
ただ当然ながら、文字間の短いつながりかけた符号や粘っている符号には歯が立ちません。
またノイズすれすれの受信信号では、人間の耳の解読性能にはるかに届きませんね。
送信符号の打ち間違いでも、人間の耳の場合は脳が勝手に補完できちゃったりするし。

検出強度と符号との相関を見たり、ML的な学習を行うことで解読性能は上がりそうな気もしますが。
このシンプルなアルゴリズムとはけた違いに演算負荷が増えてしまうでしょう。
M5 シリーズのような ESP32 ではなんとかなっても、通常の Arduino Uno などでは動かなそう。
そこまでする?という話になるのかな。

個人的には M5Unified の使い方を習得出来たのが一番の収穫でした。

ToDo

  • 和文モールス符号に対応。 ホレ ラタ で英文/和文自動切換え?
  • 検出 Tone 周波数の自動追従を追加したい。
  • Mic AGC の最大ゲイン調整機能を追加した方がいいかな?












feed CQ ham radio 2024年 4月号 に EFHW アンテナの記事が掲載されました。 (2024/3/19 12:00:00)
DSC_1640-01.jpeg
本日発売の CQ ham radio 2024年 4月号   に、
当ブログに書いた [ 移動用マルチバンド EFHW アンテナをつくってみた ] を 4 ページに凝縮した。

~HFマルチバンドワイヤーアンテナ~
移動運用にぴったり EFHWアンテナの製作

という記事が掲載されました。

DSC_1642-01-01-01-01.jpeg


マルチバンド EFHW アンテナがそれほど一般的でない日本でも、もっと普及すると嬉しいな。


feed 航空機用ヘッドセットを IC-705 や PC で使えるようにしてみた (2024/3/10 21:46:00)
DSC_1640-02-01.jpeg 航空機用ヘッドセットをヤフオクで安く仕入れたので。
IC-705 で無線機用として使ったり、PC で Web ミーティング等に使えるようにしてみた。

David Clark Model H10-13.4 について

仕入れたのは David Clark Model H10-13.4 という型式。
航空機用ヘッドセットとしては古くから定番のようで、映画やドラマでパイロットが薄緑色の耳当てのこのヘッドセットをしているのを良く見かけますね。


周りの騒音レベルの高い航空機で使用する為、

マイク

型番 M-7A  という、カーボンマイク互換のパッシブ・ノイズキャンセリング ・マイク。
マイク表面と裏面音圧の差動性による単純な構造のパッシブ方式ですが、周囲雑音のキャンセリング効果は大きい。
充分な性能を発揮させるには、口にかなり接近させて使うのがポイント。
DSC_1641-01-01.jpeg M-7A 表面

DSC_1642-02-01.jpeg M-7A 裏面

ヘッドフォーン

防音効果と大きな騒音から耳を保護するイヤーマフの遮音効果を発揮する、耳を完全に覆う形の完全密閉型。
通信機から距離が伸びて配線の抵抗値が上がっても音圧が下がらないように、ヘッドフォーンの入力インピーダンスは最低 150 Ωと一般的なヘッドフォーンより高めに設定されています。
また、左耳には音量を低減できる音量つまみがあります。完全に消音にはできませんが、音量を耳元で調節できます。
DSC_1650-01.jpg

ちなみにヘッドフォーンはモノラルです。別にステレオ対応版にした  H10-13 S という製品もあります。

装着感

見た目は少し大げさで、完全に耳を覆うヘッドセットですが。
耳当てやヘッドバンドのクッションが良くできてるのか、長時間装着していても蒸れたりせずに快適な装着感は、さすが定番の航空機用ヘッドセットと感じさせます。

しかし、ケーブル自体は大丈夫なのですがプラグの樹脂部分が加水分解してボロボロと落ちてきました。
補修部品の入手は確立 できているとはいえ、材質はもっと改良した方が良いと思う。

製作

IC-705 & PC 用に ヘッドセットを改造してみた 」で作成した変換アダプターを利用できるようにして、無線機用の PTT スイッチを設ける変換ボックスを製作する事とする。

また、H10-13.4 ヘッドフォーンの音圧特性は2 ~ 3.5 kHz あたりに大きなピークがあり 5.5 kHz を過ぎたあたりから急激に減衰します。
この特性は、AM/FM/SSB 等の音声信号では歯切れが良く了解度向上に寄与していると思われますが。
IC-705 の CW では、AGC 制御方式を原因とする CW 復調音歪があり、ゼロインした600 Hz トーンの奇数倍高調波になる 1,800 Hz (3倍), 3,000 Hz (5倍)歪成分が強調されて耳につき、ザラついたというかカサついた聞きづらい復調音になってしまいました。
最初は H10-13.4 の不具合かと疑ったのですが、これは IC-705 の CW 復調音自体が原因でした。この対策の為にヘッドフォーン側に Hi-Cut フィルタを設けます。
(この IC-705 CW 復調音の課題については、くわしく検証して別記事で投稿予定。)

変換ボックスを製作するにあたり一番問題となったのは、H10-134 のマイク側プラグが一般的な 1/4inch (6.3 mm) フォーンプラグではなく、見た目はそっくりだが少し直径が細い 0.206inch (5.2 mm) の PJ-068 という規格のプラグが採用されていること。
DSC_1644-02.jpeg
上がマイクの PJ-068 プラグ
下がスピーカの1/4'' 標準フォーン・プラグ

PJ-068 プラグは軍用機器や航空機用機器では一般的なようだが、現代の民生機器では殆ど採用例がなく秋葉原の部品屋を探し回っても PJ-068 プラグに対応する JJ-033A ジャックを見つける事ができず。
なんとか 航空機用品店の通販 で JJ-033A ジャックを入手しました。
入手が簡単ではなく価格も高いのは痛い。

回路

製作した回路
schematic.png クリックで拡大

変換ボックス
H10-13.4 ヘッドフォーンのインピーダンスが 150 Ωと一般的なヘッドフォーンに比べると高いため、4~32 Ωあたりのインピーダンスが前提の IC-705 の SP Jack や PC の SP 出力では音がかなり小さくなってしまう。
充分な音量を得るために、1次側 600 Ω:2次側 10 Ωの山水トランジスタ用小型トランス ST-45 で1次側のセンタータップ 150 (=600*0.5^2) Ω を使って昇圧し音量を確保しました。

また前述の IC-705 CW 復調音の歪成分を軽減する為に、中点 OFF の単極双投トグルスイッチと無極性電解キャパシタ 1uFと2.2 uF で、弱 - 切 - 強 切替の Hi-Cut 回路も追加しています。

IC-705 無線機用変換ケーブル
DSC_1657-01.jpeg
マイク M-7A Data Sheet によると DC 8~16 V から抵抗を通して電源供給が必要。
IC-705 ではセットモード MENU>>SET>外部端子 MIC端子8V出力 を ON にして使用。
IC-705_MIC_8V.png

PC SP/MIC 用変換ケーブル
DSC_1656-01.jpeg
PC の MIC 端子からは 5V 程度の電圧しかかかっていませんが、
実際には問題なく使えています。
PC のステレオのSP出力をモノラル信号にする為に抵抗ミックスしています。

加工・組立

変換ボックスのケースには TAKACHI YM-80  W80 x H30 x 50 mm を採用。
JACK類、SW類を穴あけして取り付け、Hi-Cut用の電解キャパシタも含め空中配線で接続。
ST-45 トランスは、結束バンドベースをケースに貼り付けて結束バンドで固定しています。
DSC_1196-01.jpeg
DSC_1654-01.jpeg
DSC_1653-01.jpeg
PTT スイッチは 千石電商 で色んなプッシュスイッチの動作を比較し。
押した時に確実にクリック感があり、かつ重すぎない NKKスイッチズ LP01-15CCKNS1R にしました。
DSC_1655-01.jpeg

使ってみて

Hi-Cut スイッチが無いと少し聞き辛い音だった IC-705 の CW 復調音もマシになり、
装着感の良さと併せて長時間の運用でも集中できて快適です。
周りの音がかなり遮音されるので音量を必要以上に上げなくて良いのも、耳が疲れにくい要因と思われます。
(逆に周りから呼ばれても気が付かない場合が。。。)

最近は PC の Web ミーティングでも使用していますが、こちらもキッチンの換気扇が回っているような周囲雑音が大きい場合でもマイクのノイズキャンセル効果が効いてクリアな送話音で良い感じです。

さすが航空機用ヘッドセットだけあって、かなり実用的。
新品ではお値段が張りますが、安く手に入れば是非おすすめします。

ただ手軽に持ち出すには少し大きいので、移動運用には前に作った
IC-705 & PC 用に ヘッドセットを改造してみた 」のヘッドセットを持ち出す事になりそうです。

feed QRP ANTENNA TUNER の挿入損失を NanoVNA-H で測ってみた (2023/11/9 19:00:00)
DSC_1534-01.jpeg
自作した QRP ANTENNA TUNER  のロスがどの程度あるのか、 NanoVNA-H で挿入損失を測定してみた。

知りたいポイント

  •  一体、どの程度の挿入損失があるのか?
  • 周波数帯により得手、不得手があるのか?
  • 同じ周波数ならインダクタンスが少ない方でマッチングする方が損失が少ないと想定されるが、本当か?

測定

方法

QRP ANTENNA TUNER と NanoVNA-H を図のように接続し。
挿入損失測定系統図
SWR が一番下がるつまみの位置での、NanoVNA-H の S21 Gain を測定する。

結果

3.5 / 7 / 14 / 21 / 28 / 50 MHz帯での、つまみの位置と測定結果。
挿入損失測定結果
Left/Right VC : 0 容量大 ~ 10 容量小
Inductor : A インダクタンス大 ~ L インダクタンス小

考察

HF 帯では、0.5 dB 以下なので挿入損失はほぼ問題なし。(負荷が純粋な 50 Ohm という条件だが)

やはり、同じ周波数ではインダクタンスが小さくバリコンの容量が大きくなる設定の方が、損失が少なくなる。
損失の大部分がインダクタンスで発生している為と考えられる。

VHF の 50 MHz 帯で損失が大きくなるのはインダクタンスの T106-2 トロイダルコアの損失が増える為か。

挿入損失を NanoVNA-H 直結で測っているため、TUNER の負荷が 50 Ohm の場合の結果でしかない。
実際にはアンテナのインピーダンスが純粋な 50 Ohm ではないから TUNER を使う訳なので、
実運用時の負荷が 50 Ohm から大きく外れている場合で挿入損失がどうなるのか興味あるところ。
また、無線機の出力に比べて大変小さい NanoVNA-H の出力での測定であるので、実際の 5~10 W で使っている時の損失とどの程度の違いが出るのかも気になる。




feed 何故か突然、Arduino IDE で Sketch を Upload したら M5Core2 が再起動を繰り返して立ち上がらくなってしまった (2023/11/3 16:23:00)



M5Core2.jpeg

つい先日までは、Windows x64 Arduino IDE 2.2.1 で M5Core2 に正常に Sketch を Upload 出来ていたのだが。

Arduino IDE 2.2.1 を再インストールして再設定していたら何故か突然、
M5Core2 に Sketch を Upload したら M5Core が再起動を繰り返してしまって、正常に立ち上がらくなってしまった。

以下の現象は  BOARD MANAGER  の  M5Stack by M5Stack のバージョンが 2.0.8 特有の現象のようです。
バージョン 2.0.9 では正常に動作しています。
最後の 2023/12/13 追記をご参照ください。

症状

IDE の Output ウィンドウでは
   :     :
Writing at 0x00171e3d... (100 %)
Wrote 1453808 bytes (871259 compressed) at 0x00010000 in 13.7 seconds (effective 848.0 kbit/s)...
Hash of data verified.
Leaving...
Hard resetting via RTS pin...

と正常に書き込めたように表示されるのだが。

M5Core2 が正常に起動しない。


Arduino IDE のシリアルモニターを確認すると。

M5Core2 initializing...axp: vbus limit off
axp: gpio1 init
axp: gpio2 init
axp: rtc battery charging enabled
axp: esp32 power voltage was set to 3.35v
axp: lcd backlight voltage was set to 2.80v
axp: lcd logic and sdcard voltage preset to 3.3v
axp: vibrator voltage preset to 2v
touch: FT6336 ready (fw id 0x11 rel 1, lib 0x3008)

のような起動時のログメッセージが延々と繰り返し出力されている。

再起動を繰り返して立ち上がれないようである。


ググってみても、私の場合に該当するような情報は見当たらず。

Arduino IDE のアンインストールと再インストールを繰り返してみるなど、

いろいろやってみるが症状は改善せず。


原因

正常に M5Core2 に書き込める、もう一つの PC にインストールされている Arduino IDE と設定を見比べていると。
使用している BOARD MANAGER M5Stack by M5Stack のバージョンに違いが有った。
  • 2.0.7      正常
  • 2.0.8      再起動を繰り返す     

そこで、BOARD MANAGER のバージョンを 2.0.8 -> 2.0.7 にダウングレードしたら正常に戻せた。
しかし、この作業の最中に指定している使用 BOARD にも、
  • M5Stack-Core2
  • M5Core2
の2つの違いがある事に気が付いた。
BOARD MANAGER バージョン 2.0.7 では M5Stack-Core2 しかないのだが、
2.0.8 では M5Stack-Core2 M5Core2 の2種類が選択可能となっており。
再起動を繰り返していた時は、 M5Core2 を使っていた。
BOARD_M5Core2.png

試しに BOARD MANAGER  M5Stack by M5Stack  のバージョンを現時点で最新の 2.0.8  に戻して、
使用 BOARD に   M5Stack-Core2  を指定してやると、正常に書き込めるように戻った。
BOARD_M5Stack-Core2.png

という事で M5Core2 を書き込む時には、
BOARD の指定に BOARD MANAGER  M5Stack by M5Stack    2.0.8  で追加されている
M5Core2 を指定すると正常に書き込めず、

必ず    M5Stack-Core2  を選択しないといけない。

というオチでした。

もし、Arduino IDE で M5Core2 に正常に書き込めずに再起動を繰り返す場合は、
BOARD 指定が M5Core2 ではなく M5Stack-Core2 になっているかもご確認ください。


追記 (2023/12/13)


別の PC に Arduino IDE を新たに設定したら。
BOARD MANAGER   M5Stack by M5Stack のバージョンが 2.0.9 に上がっており。
使用 BOARD に M5Stack-Core2 が無くなって M5Core2 しか選べなくなっていた。

でも、 M5Stack by M5Stack    2.0.9 では、 M5Core2 を選んでも正常に起動するようになっていました。
2.0.8 のバグだったのか?