非職業的技師の覚え書き

JK1EJPの技術的検討事項を中心に記録を残します。

AFP-FSK Transceiver(6)Mainボード組立

QRPGuys AFP-FSK Transceiverは、Mainボード(+Band moduleボード)およびVFOボードの2式のボードから構成されています。Band moduleボードの差し換えとVFOによって、HFオールバンドでFSK(FT8等)を運用できる点が魅力的です。

今回は、Mainボードと40mのBand moduleボードの組立を行いました。その記録です。

Mainボード組立

まず、部品をヨーグルトカップに大雑把に分類し、主要部品に欠品がないかを確認します。

Sort and check for missing parts for main board.

抵抗やコンデンサ等はスルーホール部品であり、はんだ付けは難しくありません。ICだけは入手の容易性から表面実装タイプが採用されているものと推測されます。

ICの実装

表面実装が必要なICは以下の3点です。

  1. 型番:74AC02
    品名:IC GATE NOR 4CH 2-INP 14SOIC
    用途:E級増幅終段FETの励振増幅

  2. 型番:LM386
    品名:Low Voltage Audio Power Amplifier
    用途:FSK(FT8等)受信AF信号の増幅、PCマイクへの出力

  3. 型番:SA612A
    品名:Double-balanced mixer and oscillator 
    用途:FSK(FT8等)受信RF信号からAF信号へのダウンコンバート

表面実装ICの位置決めには何時も苦戦します。「決まった!」と思っても直ぐにずれてしまいます。今回はQRP labsで紹介されていたBlu-Tackを使ってみました。必要な分をちぎって使う一般民生用途の粘着ラバーです。チューインガムを想像して頂ければ近いと思います。チューインガムと間違えないように、わざわざ青色に着色した経緯があるようです。

Blu-Tack板から米粒の半分ぐらいの大きさを爪楊枝で切り分け、ICの下に付けてPCBに押し付けます。量が多すぎるとリード間の隙間からはみ出して来るため、控えめな量にします。位置をずらす復元応力も発生せず、ICの位置をキープしてくれました。あい路は、そのままICの下に永遠に留まってしまうことです。経年化学変化やPCBとの化学反応の有無は未知です。

Soldering of three SO (Small Outline) package ICs.

手ハンダで信頼性を得るためにはリードの上まではんだを付けること、とマニュアルに注記がありました。量多目にハンダを流し、最後にコテ先でガルウイング状(L字状)のリードの上をなぞりました。拡大すると、リードの裏までハンダが流れてくれたことが確認できました。

ダイオード、抵抗、コンデンサの実装

ダイオード、抵抗、コンデンサは全てスルーホール部品です。数は多くありません。ダイオードおよび電解コンデンサは極性に注意して実装します。経験はありませんが、電解コンデンサの極性を間違えると酷い臭いがするとマニュアルに書いてあります。VFO基板を2階に増築するため、電解コンデンサは寝かせて実装します。

Soldering of through-hole components: diodes, resistors, and capacitors.

PCBにテストピン用のスルーホールがありました。テストピンは付属していませんでしたが、秋月から購入してストックしてあったテストピンを実装しました。特に、終段FETのスイッチングを行うNORゲート(74AC02)出力の1、4、13ピンに接続するテストピンTP4は重要と考えました。後々、終段FETのVds(Drain-Source Voltage)電圧波形とTP4のVgs(Gate-Source Voltage)電圧のスイッチングタイミングを見ながら、LPF初段コイルの調整をする必要があることをLTSpiceシミュレーションで確認済みです。送信電力だけを指標に暗中模索するよりは情報量が多くなると思います。

しかし、なぜかテストピンTP4だけ回路図から欠落しています。終段FET周りの回路が混み入っているために記載を省略したのでしょうか・・・。

その他の部品の実装

その他の部品の実装上の気づきを以下にまとめます。

終段FET他のTOパッケージ部品

3個1組の終段FETと、TX/RX切換用FETと、3端子5VレギュレータはTO(Transistor Outline)パッケージです。Mainボードの2階にVFOボードを増築するため、その下に位置する終段FETのTOパッケージの頭頂部がスペーサ長を超えないようにする必要があります。はんだ付け時に放熱クリップ等を使用する都合で、TOパッケージの頭頂部が高くならないように注意してPCBに押し込みます。コンパクトなVFOボードは両面実装で、ATMEGA328Pが裏面に実装されますが、終段FETの頭上には干渉しないように配置設計されています。スペーサ長未満を遵守することだけを考えれば良いようです。

インダクタL1

DC13.8V電源ラインのインダクタはトロイダルコアに巻く必要があります。回路図やBOMにインダクタンス設計値の表示はありません。FT50-43に13回巻きで74.36uHとなり、線材は26.5cm切り出す必要があること等を、予めtoroids.infoから確認しておきます。

後述の40m Band moduleボードのLPF用のトロイダルコアと合わせて製作しました。インダクタンスの測定では何時も計算値よりも10%程度大きな値が出るため、LCRメータ(Peak LCR40)のプローブキャリブレーションを行ってから測定しました。はんだメッキにばらつきがあるため、クリップする場所を変えながら3回測定しました。

Fabrication of toroidal coils and measurement results of inductance.

フェライトコアのL1は、計算値に対して測定値が4%程度小さく出ました。拡大して見ると、外周部(写真左側)で巻線がコアに密接していない箇所があるため妥当な結果です。

カーボニル鉄コアのL2とL3は、計算値に対して測定値が10%程度大きく出ました。LCRメータに「Low Registance and Inductance」と表示されるため、測定誤差かもしれません。

Band moduleボード用ピンソケット

Mainボード上の2個の5端子ピンソケットによってBand moduleボードを接続します。2個のピンソケットは離れた位置に実装するため、独立にはんだ付けをすると位置公差内のずれによってBand moduleボードのピンヘッダが上手く嵌合できなくなる可能性があります。まず1つのピンソケットを実装した後に、仮組したBand moduleボードによって残りのピンソケットを倣い位置決めして実装します。

以上でMainボードは完成です。ただし、VFOボード接続用のピンソケットは、後でVFOボードを嵌合して倣い位置決め状態ではんだ付けします。

Main board completed.

40m Band moduleボード組立

トロイダルコイル2段と1つのウェーブトラップの組み合わせによるLPFでは、日本のスプリアス規制の要件を満たせない可能性があります。そこで、40mのBand moduleボードを先行して組み立て、スプリアスの測定を行うことにしました。

後で部品を取り外してトロイダルコイル3段のLPFに換装する可能性があるため、各部品のリードは長く残して仮組立としました。特にリードインダクタの入手が国内では難しそうです。

toroids.infoから確認したトロイダルコイルL2とL3の計算値は次の通りです。

トロイダルコイルの製作と出来栄えは上述した通りです。40m Band moduleボードに搭載するフィルタ関係の素子値は下記の通りでした。C23(680pF)の容量値の測定は失念しました。

Temporary assembly of the 40m Band module is completed and mated with the Main board.

以上で完成です。時間を置いて新鮮な目で目視チェック、スモークテスト、VFO組立、調整を進める予定です。

QRPGuys Z Tuner(3)試験と改良

CW運用だけならTunerは必要ないかもしれませんが、アンテナ再調整なしでFT8運用と両立させるのは困難です。そのためにQRPGuys Z Tunerを組み立てましたが、試験結果は思わしくなく、改良が必要になりました。以下、その記録です。

Dummy Loadの整合試験

下記の構成でQRPGuys Z Tunerの試験を行いました。NanoVNAを用いてSWRを測定するために、TunerのSWRブリッジ測定モードはOFFにしてOperationモードに設定します。NanoVNAの横軸は Z Tunerの仕様範囲40~10mに合わせて7~30MHzとしました。

Setup of a QRPguys Z Tuner test using a 50Ω dummy load.

整合共振回路に直列に配置されたLoadポリバリコンと並列に配置されたTuneポリバリコンを調整して、狙ったバンドでSWRが落ちるかどうかを確認しました。なお、ノブの回転位置の印字数字が大きくなるほど、逆にポリバリコンの容量は小さくなります。

インピーダンス切換スイッチHigh設定

インピーダンス(High/Low)切換スイッチはHigh(二次巻線数が多い)カップリングの方が効率が良いとのマニュアルの記載に従い、まずHigh位置に設定してHighバンドからLowバンドに向かって順に整合を試行しました。

12mバンドと10mバンド

整合操作の結果、10mバンド(下写真右)のSWRは1.17(@28.85MHz)、12mバンド(左)は1.33(@24.25MHz)が最小値になりました。ポリバリコンはLoadもTuneも容量が小さい側になりました。10mバンドの方が12mバンドよりも整合容量が小さくなりました。

整合範囲は10mバンドの方が狭くなっています。10mバンドの方がQ値が大きく、SWRを小さくできているように見えます。

Results of matching operations on 12m (left) and 10m (right), with a minimum SWR of 1.33 (@24.25MHz) on 12m and 1.17 (@28.85MHz) on 10m.
17mバンドと15mバンド

整合操作の結果、15mバンド(下写真右)のSWRは1.43(@21.49MHz)、17mバンド(左)は1.57(@18.50MHz)が最小値になりました。17mバンド整合のLoadポリバリコンは容量が大きい側に転じました。

整合範囲も17mバンドの方が広くなっています。整合目標の周波数が低くなるに従ってQ値が小さくなり、SWR最小値が大きくなって行くように見えます。

Results of matching operations on 17m (left) and 15m (right), with a minimum SWR of 1.57 (@18.50MHz) on 17m and 1.43 (@21.49MHz) on 15m.
40mバンド、30mバンド、20mバンド

40mバンドと30mバンドはSWR 2.0以上となり、整合不可と判断しました。

20mバンド(下写真)のSWRは1.77(@14.36MHz)が最小値になりました。ただし、下写真の通りSWR曲線の最小値を20mバンドに持ってくることはできませんでした。この時、Loadポリバリコンは左に回り切り、容量は最大値になっています。Load容量不足が否めません。

Matching operation results for the 20m band at a minimum SWR of 1.77 (@14.36MHz) when the High/Low impedance switch is in the High position.

インピーダンス切換スイッチLow設定

続いて、インピーダンス(High/Low)切換スイッチをLow(二次巻線数が少ない)位置に切り換えて、LowバンドからHighバンドに向かって逆順に整合を試行しました。

40mバンド、30mバンド、20mバンド

40mバンドはSWR 2.0以上となり、整合不可と判断しました。この時、Loadポリバリコンは左に回り切り、容量は最大値になっています。

30mバンド(撮影失念)はSWR 1.02(@9.99MHz)が最小値となり、良好に整合できました。

20mバンド(下写真)のSWRは1.01(@14.13MHz)が最小値となり、こちらも良好に整合できました。

インピーダンス切換スイッチをLow位置にした場合は、下写真の通り、SWR曲線に2つの共振点が現れました。この中、左側の共振点でSWRが最小になりました。この時、Loadポリバリコンは回転位置中央となり容量は半分になっています。Load容量をもっと大きくすることによって40mでも整合する可能性が示唆されているように思います。

Matching operation results for the 20m band at a minimum SWR of 1.01 (@14.13MHz) when the High/Low impedance switch is in the Low position.
17mバンドと15mバンド

整合操作の結果、17mバンド(下写真左)のSWRは1.21(@18.04MHz)、15mバンド(右)は1.57(@21.03MHz)が最小値になりました。Loadポリバリコンは容量が小さい側に転じました。

整合目標の周波数が高くなるに従ってQ値が小さくなり、SWR最小値が大きくなって行くように見えます。インピーダンス切換スイッチをLow位置にした場合は、前記High位置とは逆の傾向になります。

Results of matching operations on 17m (left) and 15m (right), with a minimum SWR of 1.21 (@18.04MHz) on 17m and 1.57 (@21.03MHz) on 15m.
12mバンドと10mバンド

12mバンドと10mバンドは、2つの共振点の中の左側の共振点では整合できませんでした。

右側の共振点を使うと、12mバンド(撮影失念)は1.21(@24.49MHz)、10mバンド(下写真)のSWRは1.51(@28.62MHz)が最小値になりました。ただし、ポリバリコンの回転位置に対して感度が高くなり、調整は難しくなります。10mバンドでは、Loadポリバリコンは右に回り切り容量が最小になりました。

Results of matching operations on 10m, with a minimum SWR of 1.51 (@28.62MHz) on 10m.

まとめと改良

ダミーロードとNanoVNAを用いた試験結果を下表にまとめます。15-10mのHF High側バンドはインピーダンス切換スイッチをHigh位置に、30-17のHF Low側バンドはLow位置に設定すれば全域でSWR 1.5以下に整合できるとの結果が得られました。

Summary table of Z Tuner matching test results using dummy loads and NanoVNA.

40mバンドはどちらのスイッチ設定を使っても整合できませんでした。整合試行の履歴から浮かび上がる改良の指針は以下となります。

  1. Loadポリバリコンの容量を増やす。
  2. インピーダンス切換スイッチのLow側の二次巻線(6回巻き)の巻き数を減らす。
LoadポリバリコンのTrimmer調整

マニュアルの指示に従い、Loadポリバリコンの2つのTrimmerは付加容量を最小にする位置に調整していました。これを最大位置に変更して合計約20pFを付加して効果を確認しました。

Plot of capacitance value change of Load polyvaricon and the effect of adding 20pF by trimmer adjustment.

ポリバリコンのTrimmerは可変容量比を最大化するために付加容量を最小化する位置に調整するものと考えています。可変容量を測定した上図では約20pFのオフセットが乗っただけで可変範囲の絶対値に大きな影響は無いように見えます。ただし、可変容量比は228.4/24.8=9.2から248.4/44.6=5.6に小さくなってしまいます。

Trimmer調整の結果、7.23MHzのSWRが1.76に改善しました。ただし、SWR曲線の最小値はまだ40mバンドから外れています。さらに容量を付加することで40mバンドの運用帯域での改善が見込めますが、他のバンドを含めた整合範囲に影響が及ぶ可能性が高くなります。バンド切換無しで整合させるには無理があるということですが・・・。

Matching operation on 40m after adjusting the Load polyvaricon with an additional 20pF maximum trimmer capacitance resulted in an improved minimum SWR of 1.76 (@7.23MHz).
Low側二次巻線の巻き数低減

次に、Low側二次巻線の巻き数を設計値の6回から4回に減らしました。途中に5回も試しましたが不十分だったため、最終的に4回にしました。

ダミーロードに対する40mバンドのSWRは1.0を達成しました。しかも、バンド全域(7.0~7.2MHz)でSWR約1.2以下を達成しています。

An SWR of 1.0 is achieved in the 40m band for dummy load. Moreover, an SWR of approximately 1.2 or less was achieved for the entire 40m band (7.0 to 7.2 MHz).

モービルホイップHF40FXWの整合試験

アンテナ直結

モービルホイップアンテナHF40FXW(DIAMOND)をNanoVNAに直結した際のSWR曲線を下写真に示します。

アンテナはCWバンドに対して調整しているため、FT8(7.074MHz)に対してはSWR 2.88になっています。これをZ Tunerで整合するのが課題です。

The mobile whip antenna HF40FXW is tuned for the 40m CW band, so the SWR is 2.88 for FT8 (7.074 MHz). The challenge is to match this with the Z Tuner.

Z Tuner挿入

Tunerを系に挿入して整合を取った結果、SWRは2.88から1.68に低減しました。7.074MHzはTunerの2つの共振点のちょうど腹(シーソーの支点)になっており、これが最良値でした。Z-match Tunerは調整の自由度が足りない印象です。

After the Tuner was inserted into the system and matched, the SWR was reduced from 2.88 to 1.68. 7.074 MHz was the fulcrum of the seesaw just between the two resonant points of the Tuner and could not be reduced any further.

Z Tunerの挿入損失

40m QCX+からダミーロードに向けてパワーを出し、Z Tunerの挿入損失を測定しました。ダミーロード印加電力は整流回路によるピーク電圧測定値から算出しました。整流ダイオードの電圧降下0.61Vも考慮しています。

ダミーロード直結では4.4W、Z Tuner挿入によって3.7Wに低下しました。挿入損失は0.6W(14%)になりました。

SWR 1.9で10%程度の損失になりますので、それ以上のSWRを低下させるためにTunerを挿入するのなら効果が期待できるかも知れません。

コンテスト参加

思い立って、ALL JAコンテスト(4/23-24)とQRP Sprintコンテスト(5/1)に参加しました。目的は室内アンテナによる交信可能性の探求です。

集合住宅にある当局の無線部屋は窓の開口が小さく、ベランダへの出入りが簡単ではない(遠回りして別の部屋から出入りする必要がある)ため、アンテナの調整が厄介です。対して、居間はベランダが無い代わりに2面が比較的大きなガラスになっているため、電波に関しては無線部屋より開放されている感があります。

そこで、家人が留守の間にモービルホイップを居間に仮設し、リグ他を食卓の上に展開して試験を行いました。

ALL JAコンテスト

ALL JAコンテストは下記構成で7MHz CWに参加しました。

  • リグ:QCX+(7MHz、5W)
  • アンテナ:HF40FXW(室内仮設)
  • アース処理:CQオームラジアルケーブルセット(5M×5本)

ラジアルケーブル5本は個々に分散しないで、まとめたまま床に放置しました。フローリングのため床の鉄筋とは距離があると思います。床を支えるフローリング骨格が金属であれば容量結合する可能性がありますが、材質は確認できていません。また、床暖房の埋設物には放熱のための金属が含まれていると思いますが詳細は不明です。

天井の梁を避けてアンテナを出来るだけ窓に近づけるために、三脚にスライディングアームを付けて自由度を追加しました。

NanoVNAで確認したスイートスポットのSWRは1.27でした。当局は1.9以下(伝送電力90%以上)をSWRの目標としているため合格です。SWRが1.9以下になるバンド幅は50kHz程度あります。7MHzのJARLコンテスト使用周波数帯の幅は30kHzのため、頻繁なアンテナ調整なしで運用可能です。

SWR of a 7MHz mobile whip antenna temporarily installed indoors.
The SWR confirmed by NanoVNA was 1.27. This was acceptable because my SWR target is less than 1.9 (more than 90% transmission power). The bandwidth where the SWR was less than 1.9 was about 50 kHz. The JARL contest frequency bandwidth for 7 MHz is 30 kHz, so it could be operated without frequent antenna adjustments.

4/24当日午後、当局が参加した頃のイオノグラム(電離層観測データ)は下記の様相でした。遠方の局とはF層反射で交信できそうですが、関東にはE層の端が7MHzに掛かっていてQRPで突き抜けるのは難しく、近中距離中心になりそうな状況でした。

Ionograms in the afternoon on the day of the ALL JA contest.
It seemed possible to make QSOs with distant stations by ionospheric reflection in the F layer, but in the Kanto region, the edge of the E layer was hanging at 7 MHz, and it seemed difficult to penetrate it with QRP, so I predicted that QSOs would be mainly with near- and mid-range stations.

CQを出している局を探し、他に呼ぶ局がいないタイミングを見計らって呼んでみました。イオノグラムの予言?の通り、最初は近中距離の0、1、3エリアの局と交信できました。Logbookの1ページを埋めることを目標に、休憩の後の夕刻に再挑戦したところ、1、2、7、8エリアの遠方を含めた局と交信できました。E層の端が後退してF層反射に移行したと考えるのが自然ですが、夕刻のイオノグラムの記録を失念したため、残念ながら真実は不明です。最終的に、0、1、2、3、7、8エリアの計15局と交信できました。西遠方の局と交信できなかったのは、電離層の状況と言うよりも、アンテナの仮設状況に依るものと考えています。次回の宿題です。

後で調べてみると、交信できた各局は過去のコンテスト上位入賞者が多く、素晴らしいタワー上のアンテナをお持ちであることが分かりました。こちらの室内アンテナから送出したQRP電波が微弱でも、相手局の耳が良ければ交信は不可能ではないということが分かりました。微弱な電波を拾い上げて頂きありがとうございました。

QRP Sprintコンテスト

ALL JAコンテストでは14MHzの試験まで気が回らなかったため、後日QRP Sprintコンテストの14MHz CWに下記構成で参加しました。

  • リグ:QCX-mini(14MHz、3.5W)
  • アンテナ:HF20FX(室内仮設)
  • アース処理:CQオームラジアルケーブルセット(5M×5本)

当日は雨天でした。コンテスト開始直前の正午頃のイオノグラムは下記の様相でした。7MHzならF層反射で遠方と交信できそうですが、14MHzにはF層が達していません。

Ionograms in the afternoon on the day of the QRP Sprint contest.
It was raining on the day of the contest. The ionogram around noon, just before the contest started, showed the following aspect: If it had been in the 7MHz band, it would have been possible to QSO with distant stations in the F layer reflection, but the F layer did not reach the 14MHz band to be operated in.

結果、電離層反射の必要のないローカル1局との交信に終わりました。それでも、室内仮設のモービルホイップから14MHzの電波が出ていることは確認できました。コンデションの良いときに再チャレンジしたいと思います。

A temporary radio station was set up on the dining room table.

Teensy(8)T41-EP Book

T41-EP Book発売

T41-EPの解説本「Software Defined Radio Transceiver: Theory and Construction of the T41-ep Amateur Radio SDT」がAmazonにて2022/04/04より発売されていました。groups.io にて気付いた方がおられ、話題になっていました。著者のW8TEE局Jack OMによると、早速に加筆する予定がありアナウンスを控えているそうです。脱稿したとたんに加筆したくなる心境は良く分かります。

素敵な表紙ですね。洋書ですが、日本Amazonでも購入することが出来ます。残念ながら電子版はなくペーパーバック版のみでした。Amazonの試し読みで目次を閲覧することができます。379ページ以上の大著です。洋書は高価な上、印刷本は断捨離中ですが、こればかりは食指が動きます。

追記(2022/04/16)

T41-EPのオリジナルPower Ampの整合のためにフィルタが必要になる可能性が顕現し、加筆を考えていた模様です。最終的に抵抗のみで整合できる目途となったため、Jack OMよりT41-EP Book発売の正式アナウンスがありました。変更は回路図のみで済み、最終回路図他のOpen Sourceは3/19-22 5/19-22開催のFDIM(Four Days In May)での講演後に発表するとのことでした。

昨夜、T41-EP Bookを入手したという欧米Hamからの投稿が続々とありました。今日になって当局の手元にも届きました。日本Amazonが洋書を何冊仕入れているのか不思議でしたが、最後のページを捲って納得です。「Printed in Japan 落丁、乱丁本のお問い合わせは・・・」との文字が。オンデマンド印刷だったんですね。

f:id:amat49:20220416135839p:plain

肝心の中身は、ハードとソフトの両方の説明があり、SDRの入門には好適と思いました。数式は控えめで、信号処理の数学的側面については参考文献に誘導するスタイルです。フォントは大きいので文章を読むのは大丈夫ですが、回路図はスケールが小さく老眼には厳しいです。回路図はOpen Source公表後にPDFをPCで参照するのが良いと思いました。

Teensy(7)Keiths' SDRのコンパイル

前回(Teensy(6)開発環境VisualTeensyの導入)Teensyの開発環境が構築できたところで、Keiths' Teensy SDRのコンパイルを試みました。

Keiths' Teensy SDRコードの選択

Keiths' Teensy SDRはハードウェア・モジュールの自由度が高く、開発途上にあるため、コードには幾つかのバージョンがあります。

Keith OMがアップしているコードはkeithsdr@groups.ioのFilesフォルダにzip形式でアップロードされています。ファイル名を見ると、主にディスプレイの種類ごとにアップロードされているように見えます。コードに占めるUIの比重が大きくなっていると想像されます。今日、UIのコードが肥大化するのはどのAppでも同じです。Keiths' Teensy SDRでは市販のSDRのように、タッチスクリーンによる操作もサポートしています。

これとは別に、ハードウェア・モジュールの選択問題を一気に解決してくれるRS-HFIQとのUSB接続機能の開発を主導しているK7MDL局Mike OM開発のコードがGitHubにアップロードされています。GitHub上でWikiやREADME.mdを直ぐに読むことができます。当局はRS-HFIQを使いたいため、Mike OMのコードをgit clone(複製)することにしました。まだまだコードの更新が頻繁にあるため、git pull(更新内容取り込み)できるようにしておいた方が良いでしょう。

K7MDL局のKeiths' Teensy SDRコード

ソースファイル

git clone(複製)したKeiths' Teensy SDRのソースコード一覧を下記に示します。30個のファイルから構成されています。備考に記載した役割は、ファイルのヘッダ部分だけを読んで判断した暫定版です。今後、IQ信号の処理連鎖を追いかけて更新したいと思います。

f:id:amat49:20220410190224p:plain

List of K7MDL2/KEITHSDR source files (provisional interpretation)

メインコードのファイル名SDR_RA8875.inoについた「RA8875」はディスプレイのコントローラの名称です。Mike OMのコードではRA8875とRA8876が選択可能です。ただし、このコントローラを搭載したディスプレイならどれでも稼働するという訳ではないようです。実績のあるEastRising Technology Co.,Limited製の4.3 inch TFT LCD Display Capacitive Touchscreen w/RA8875 Controllerか、もしくは7 inch w/RA8876をBuydisplay.comから選ぶのが無難なようです。しかも細かな選択オプションがあって、InterfaceをPin Header Connection-4-Wire SPIに指定し、Power Supply (Typ.)をVDD=5.0Vに指定するのが良いようです。詳細はkeithsdr@groups.io、Wiki、README.mdをご参照ください。当局もまだ稼働させていないため確かなことは言えません。

脇道に逸れますが、Buydisplay.com(深圳市)はB2BとB2Cの区別のないディスプレイ専門総合マーケットプレイスの様相です。このように、B2BとB2Cの区別なく1個からでも500個以上でも売るという場が日本には無いように思います。

閑話休題、SDRコードの中核は信号処理ですが、制御関連のファイルの数が多いことに気づきます。無線機操作の利便性を追求すると、そのためのコードを開発する必要が出てきます。タッチ・イベント・ブローカのUserInputがその例です。

なお、SDRの場合はソースコード上でオフバンド対策をする必要があると思いますが、SDR_Data.hに定義された周波数バンドの構造体定義を日本向けに変更すれば良いようです。

プロジェクトファイル

git cloneしたソースコード以外のファイルを下記に示します。

f:id:amat49:20220410221257p:plain

List of K7MDL2/KEITHSDR project files (provisional interpretation)

この中で重要なのはmakefileです。Mike OMのPCの設定と当局のPCの設定は大なり小なり異なると思われるため、修正が必要になります。

.vscodeフォルダ配下のファイルはIDEとしてのVS Codeの使い勝手に係わるファイルと思います。ただし、VS Codeのことをまだ良く知らないため確かなことは言えません。

コンパイルの試行

事前準備

先ずは開発環境を整え検証するために、コンパイルを通すことを試みました。以下に試行錯誤の過程を記録します。VS CodeやVisualTeensyに造詣が深ければ、もっと良い方法があるかも知れません。

Keiths' Teensy SDR一式をフォルダごと複写します。当局のPC環境を調べるためにVisualTeensy.exeを起動して複写したフォルダのOpenとSaveを実行し、元のmakefileをディフォルトの新規makefileで書き換えます。このmakefileに当局のTeensy開発環境の設定が反映されています。ただし、Keiths' Teensy SDRをビルドするための情報はこのmakefileからは消えてしまいます。書き換えられても支障が無いように、事前にフォルダごと複写しました。

次に、新規makefile(当局環境版)と元のmakefile(Mike OM版)を比較して、必要な修正を適用します。新規makefileが複雑なのに比較して元のmakefile(Mike OM版)はシンプルです。Mike OMがmakefileに造詣が深く、自動生成に飽き足らず自ら書き下しているのではないかと思われます。したがって、元のmakefile(Mike OM版)の方を複写して書き換えて行きます。

VS Code上のVisualTeensyのプロジェクトとAruduino(+Teensyduino)は疎な関係であり、makefile内に記述したパス設定によって連携します。そのパス関係は下記のようなイメージになっています。

f:id:amat49:20220412204330p:plain

Image of path connection between Visual Teensy project on VScode and Arduino

VisualTeensyのプロジェクト生成時にAruduinoのパスを設定しましたが、Aruduinoに適用したTeensyduinoの場所までは知らないようです。皆がディフォルトパスでTeensyduinoを導入する訳ではないため致し方なしというところでしょうか。

makefile(Mike OM版)に適用したパス変更は以下の通りです。

  • BUILDER_BASE(Arduinoへのパス)を修正。
  • HARDWARE(Arduino\hardwareへのパス)を修正。
    (*)Teensyduinoの適用によって配下にteensyフォルダが追加されています。
  • TOOLS(Arduino\tools-builderへのパス)を修正。
  • LIBRARIES := -built-in-libraries=(Arduino\librariesへのパス)を修正。
  • LIBRARIES := -libraries=(ローカルなArduino\librariesへのパス)を修正。
    (*)Aruduinoのインストール時に作られるDocuments配下のローカルフォルダを使用するのが一般的ですが、他のフォルダでも構いません。Keiths' Teensy SDRをBuildするために集めたライブラリを置くフォルダを作り参照します。
  • その他のLIBRARIES指定。
    (*)自環境に合わせて増やす、あるいは削除します。
  • UPL_PJRC_B(Arduino\hardware\toolsへのパス)を修正。
  • UPL_TYCMD_B(TyToolsへのパス)を修正。
    (*)UPL(Uploader)はどれか1つで良いものと思われます。

.vscode/c_cpp_properties.jsonの"includePath"等のパス設定もmakefileの設定に合わせて変更します。VS Codeのインテリセンスがデバックを支援してくれると思います。

.vscode/tasks.jsonの"command"はVisualTeensyによってプロジェクトを自動生成すると"VisualTeensy_v1.5.0 / make.exe"になりました。Mike OMは"GnuWin32 / bin / make.exe"を使用していますが、このままVisualTeensyのmakeとしました。

ライブラリ収集

makeが動くようになったところで、エラーを吐かせて解決して行くモードに入ります。Keiths' Teensy SDRのRadioConfig.hの設定は複製したままにし、唯一"#define USE_RA8875"文のみコメントを外してONにしました。

  1. Teensyduinoの標準ライブラリだけではSDRのBuildに足りていないため、エラーメッセージが足りないライブラリを教えてくれます。
  2. そのメッセージをクリックすると、VS Codeのインテリセンス機能?によってソースコードの該当箇所(ライブラリのinclude文)にジャンプします。
  3. 親切なことに、ソースコードのコメントにGitHubのURLが書いてあるため、足りないライブラリのGitHubリポジトリを開きます。
  4. git cloneでユーザーローカルのArduino\librariesフォルダにライブラリを複製します。このフォルダはmakefileにパスを設定済みです。zip downloadよりもgit cloneの方が一連の繰り返し作業が速いと思います。ライブラリの更新にも迅速に対応できます。

以上をひたすら繰り返します。当局の環境に足りないために複製したライブラリを以下に示します。Keiths' Teensy SDRが様々なContributorsの貢献の上に築かれていることを気付かせてくれます。

f:id:amat49:20220413190210p:plain

Libraries downloaded to the user local folder
最後のエラー

ライブラリがそろえばOKかと思えば、タッチ関数が無い旨のエラー('class RA8875' has no member named 'touched')が複数出てきました。全てタッチスクリーン関係です。

結論から言うと、Teensyduinoによって導入されたRA8875ライブラリの設定ファイル(RA8875\_settings\RA8875UserSettings.h)を変更する必要がありました。

タッチスクリーンを使用する場合は、RA8875UserSettings.hの中の以下のコメントアウトされた定義文のどちらかを有効にする必要があります。
//#define USE_RA8875_TOUCH//resistive touch screen
//#define USE_FT5206_TOUCH//capacitive touch screen

Mike OMと同じようにBuyDisplayの4.3 inch TFT LCD Display Capacitive Touchscreen w/RA8875 Controllerを使用する場合は後者を有効にします。

少し混乱する話になります。RA8875はディスプレイコントローラですが、抵抗膜方式タッチスクリーンのコントローラ機能も混載しています。抵抗膜方式タッチスクリーンを使用する場合はRA8875で足りるため前者を有効にします。

BuyDisplayの4.3 inch TFT LCDは静電容量式タッチスクリーンを採用しているため、RA8875に加えて専用のタッチスクリーン・コントローラFT5206を搭載しています。よって、この場合は後者を選択します。ちなみに、iPhone等も静電容量式タッチスクリーンです。

Mike OMのREADME.mdやWikiをよく読むと、選択の必要があることが書いてあるのですが、Teensyduinoによって導入されたライブラリの奥深くに設定すべき場所があることに気付きませんでした。

以上でコンパイルを通りました。これから、RadioConfig.hの設定をRS-HFIQに合わせ込みたいと思います。

Teensy(6)開発環境VisualTeensyの導入

日乗

「タ」は夜明けの空を飛んだ/岩井 三四二 | 集英社 ― SHUEISHA ―』(下写真の左)を読了。「タ」は夕暮れの夕ではなく、カタカナのタです。この本の存在は、JA1XRQ局OMのブログ「XRQ技研業務日誌」で紹介されていたことにより知りました。この題名から、無線関係の歴史小説と類推するのは困難ですね。帯を見て無線関係の本と気付きます。

f:id:amat49:20220406222930p:plain

電信の歴史については、CQ出版モールス通信【オンデマンド版】通信の原点=CW その魅力/運用法/歴史』(上写真の右)の歴史の章に通史として分かり易くまとめられています。日本の無線電信の黎明については3ページ程度に要約されているため、『「タ」は夜明けの空を飛んだ』で行間を埋めることができました。

当時、無線機の開発に苦労したのは原理が分かっていなかった点に加えて、測定器が無かったことに尽きると思われます。現代はNanoVNAやTinySAといった安価な測定機に恵まれています。火花方式から進化した現代の先端無線機であるSDRの開発に、当局も挑戦したいと考えています。遅々と進んでいませんが・・・。

Keiths' Teensy SDR

以前紹介したKeiths' Teensy SDRプロジェクトはハードウェア・モジュールの選択組合せの自由度が高いのですが、そこが一般のキット(余分なものも足りないものもない)よりも敷居が高い点でもあります。円安の今(ここ当分?)、個別のハードウェア・モジュールを別々のベンダから購入すると、送料も高くなってしまいます。

蛇足ですが、日本は電子部品のBtoC(一般消費者向け販売)の水準は一定のレベルにあると思いますが、ハードウェア・モジュールのBtoCの水準は低いと感じます。Keiths' Teensy SDRのハードウェア・モジュールは全て海外(北米、欧州、中国)から取り寄せることになります。ただし、完成製品としての日本の無線機のレベルの高さは知られているとおりです。質の高いキットを頒布して下さるOMの方々もおられます。日本のメーカはBtoBのビジネスしか足場が無いことと、スタートアップが育たない点が彼我を分けているように感じます。

閑話休題。Keiths' Teensy SDRのハードウェア・モジュールの選択組合せの敷居を低くしてくれるのが、フルセットのRFバックエンドを提供してくれるRS-HFIQです。Keiths' Teensy SDRプロジェクトでは、ハードウェア・モジュールをRS-HFIQにした開発も最近進んでいるようです。

RS-HFIQは1台で基本的なハードウェア・モジュール(BPF、LNA、QSD、QSE、Amp、LPF)を網羅するため、その他に必要なモジュールはTeensyマイコン開発ボード、オーディオボード、タッチディスプレイ、エンコーダ、電源ぐらいで済むようです。

TeensyとRS-HFIQの接続方法として下記2案(Option(2)とOption(3))が考えられますが、Teensy 4.1のUSBホスト機能を利用してRS-HFIQ搭載のNanoを制御するOption(2)の方式で開発が進んでいるようです。

f:id:amat49:20220404235257p:plain

TeensyとRS-HFIQの接続形態

VisualTeensyの導入

Keiths' Teensy SDRプロジェクトの開発環境はArduino IDE(+Teensyduino)ではなく、VisualTeensyがディファクトになっている様子のため、当局も導入を試みました。

VisualTeensy

VS Code EditorをTeensyの開発環境にするため、「VisualTeensy」という命名になっています。GitHubから最新v1.5.0のzipファイル(VisualTeensy_v1.5.0.zip)をダウンロードしました。zipファイルを展開すればインストール完了です。

f:id:amat49:20220406223943p:plain

Release v1.5.0 · luni64/VisualTeensy · GitHub

TyTools

TyToolsはTeensyマイコンボードをUSB経由で管理するユーティリティです。Teensyマイコンボード開発元のPJRC社から提供されるTeensyduinoにボード管理機能もあるため、TyTools導入は必須ではありませんが、Keiths' Teensy SDRプロジェクトではディファクトになっている様子のためインストールしました。

こちらも、GitHubから最新v0.9.7のzipファイル(TyTools-0.9.7-win64.zip)をダウンロードして展開すればインストール完了です。

f:id:amat49:20220406225931p:plain

Release TyTools 0.9.7 · Koromix/tytools · GitHub

テスト

VisualTeensyプロジェクトの生成

解凍したフォルダの中にある実行ファイルVisualTeensy.exeをダブルクリックすると、 (Teensyduino適用済みの)Arduinoの場所を聞いてきます。Arduinoのフォルダを設定するとGUI画面が開きます。

GUIのSettingsタブを見ると、設定したArduinoフォルダのパスが見えます。ここで設定しても問題ないようです。

その他に、Uploaderの欄にTyToolsフォルダのパスを設定します。Uploaderは4種類も選択肢があるようです。

f:id:amat49:20220406230454p:plain

VisualTeensy GUI(Settings)

GUIのProjectタブで、Teensyマイコンボードのバージョンを選択します。Keyboardに日本語レイアウトがなかったため、US Englishとしました。

f:id:amat49:20220406231901p:plain

VisualTeensy GUI(Project)

テスト用に空のフォルダ(ここでは「Test」)を作成して、File->Openでそのフォルダを指定します。続いて、File->Saveでプロジェクトを生成します。プロジェクトの実体は下記右のディレクトリとファイル群です。

f:id:amat49:20220406232619p:plain

生成されたプロジェクトファイル群

すると、自動的にVS Code Editorが開きます。ここで、VisualTeensyはお役目終了です。

コンパイル

自動生成されたプロジェクトのソースコードは「Lチカ」(LED点滅)でした。メニューバーの「Terminal -> Run Build Task -> Build」を選択すると、コンパイルを実行し、問題なく終了しました。クロスコンパイルの結果は下記右下に表示されています。ARMプロセッサ用のelf(Executable and Linkable Format)ファイルやFlashに書き込むHEXファイルが出来ていることが分かります。

f:id:amat49:20220406233228p:plain

VS Code Editor(Compiling)
アップロード

続いて、メニューバーの「Terminal -> Run Build Task -> Upload(TyCommander)」を選択すると、TyToolsの一部であるTyCommanderが起動します。

最初に下記左のTeensyボード選択画面が開きます。TyCommanderは複数のTeensyボードを同時に管理できるからです。

Teensyボードを選択すると下記左の管理画面が開き、HEXファイルのアップロードが自動的に実行されます。アップロードが終了するとボードリセットが自動的に掛かり、Lチカが起動しました。

f:id:amat49:20220407212914p:plain

TyCommander GUI (Left: Board selection, Right: Board management)

Tool間の連携も取れており、TyCommanderによるアップロード結果はVS Code Editorにフィードバックされ、GUIの右下に表示されます。

f:id:amat49:20220407214756p:plain

VS Code Editor(Uploading)

FPGAも含めて幾つかの組込みボードを触った経験から判断すると、USBケーブルをつなぐだけでコンパイルから起動までワンストップで実行できるため、大変お手軽です。USB経由でTeensyボードからPCのターミナルに対してprint文を実行できるはずなので、クロス開発であることを意識せず、PCアプリ開発の要領でTeensyアプリの開発が出来そうな予感がします。

次の課題はKeiths' Teensy SDRのコード読解です。uSDXのコード読解には挫折しました。Keiths' Teensy SDRはどうでしょうか・・・。ContributorsのOMが複数人おられるようなので、アイディアを共有できるように書かれていると期待しています。

QRPGuys Z Tuner(2)組立

部品の仕分け

QRPGuys Z Tunerの組立準備として、まず部品の仕分けを行いました。ヨーグルトのカップを再利用したパーツボックスに順番に入れて行きます。不足部品はありませんでした。余剰部品として、長ネジが一本多いような・・・?

電子部品よりもネジ、コネクタ、トロイダル・コア等が存在感を放っています。

f:id:amat49:20220321150722p:plain

Sorting parts for QRPGuys Z Tuner kit

カップは固定されていないため、ひっくり返したら大変です。期待通り、一度ひっくり返してしまいました。

シャーシ組立

回路基板の他に、基板材で作ったフロントパネルとガセット(三角板)2枚が供給されます。これらをハンダ付けで組み立て、シャーシとします。

最初に、回路基板とフロントパネルをはんだタック(点付け)で仮組します。マニュアルには、はんだ収縮を考慮して角度91~92°の開きでタックするように細かな指示がありますが、タックしただけでは角度を固定する強度は出ないため、90°の治具(箱など)に添わせる仮組で十分でした。角度よりも 面合わせ(flush)の方が重要です。

角度決めに関しては、続くガセットのタックの方が重要です。位置決めする爪は無いため、テープで仮組して回路基板とフロントパネルの双方にタックします。ガセット2枚をタックするとフロントパネルの角度は90°に固定されます。検査して問題が無ければ、タック部に大量のはんだを供給して線付けします。面積が広いためコテの温度が重要です。370~420度℃で行いました。

f:id:amat49:20220321152051p:plain

Chassis assembly

SWR測定ブリッジ回路の組立

電子部品はSWR測定ブリッジ回路を構成する部品だけです。これらの小物部品を先に組み立てます。

2W 51Ω抵抗は適宜品種入れ替えがあるのでしょう。基板の穴間隔は広めに取ってあるのですが、この品種は寸法が大きく、空中に浮かせざるを得ませんでした。

f:id:amat49:20220321153239p:plain

Assembly of SWR measurement bridge circuit

高周波電圧差を増感?するFT37-43トロイダルコイルは小さい径のため、写真で巻き数を確認するようにマニュアルに指示がありました。確かに写真で確認すると楽です。

テンションを掛けて密に巻いたつもりでしたが、写真で見るとコア外周の密着が甘いことも分かります。しかし、インダクタンスを実測するとtoroids.infoによる計算値よりも10%以上大きくなりました。

f:id:amat49:20220321160331p:plain

Comparison of calculated and measured values of FT37-43 toroidal coil inductance

コイルの線材をはんだ付けするための穴はタップも含めて基板の適切な位置に開いています。コアはネジとワッシャー、ナットで基板に固定する方式のため安心です。

Tuner部の組立

ポリ・バリコン

ポリ・バリコンも品種が変遷しているようです。マニュアルには2種類のポリ・バリコンについて、3本のリードの出る位置を基板に合わせて改造する説明があります。同梱されていたポリ・バリコンは3本のリードがそのまま基板の穴に入りました。

f:id:amat49:20220321205953p:plain

Polyvaricon trimmer adjustment and assembly

ポリ・バリコンの型式や容量は不明ですが、容量を測定したところ、AMラジオ用の二連(160+60pF)ポリ・バリコンのようです。千石電商で扱いのあるCBM-223F-1F4と外観は同じです。

二連ですが容量を増すためか並列接続して使います。Tunerとしての容量変化比を最大にするためか、トリマは付加容量最小の位置に調整します。マニュアルは単なる工作指南書に終始し、「なぜそうするのか」の説明が一言足りないのが残念です。大袈裟ですが、設計図書で重要なのは最終成果物の回路図だけではなく設計思想の記載です。思想が分からなければ技術は伝承され得ません。単に安価にするためにキットを購入している訳ではなく、仕組みを知りたいために購入しているのですが・・・。

トロイダル・トランス

バリコンの次は、いよいよトロイダル・トランスの製作です。最初に線材の切り出しを慎重に検討します。大径20AWGのエナメル線は予備の保有がないため、思い違いをすると(継接ぎで)見た目が残念なトランスになってしまいます。

f:id:amat49:20220321204545p:plain

Cut out three 20 AWG enamel wires for winding on a toroidal transformer

マニュアルにはインチで線長が指示されているためcmに変換し、誤植や誤解があるといけないためtroids.infoの計算結果と照合します。マニュアルの指示線長はtroids.infoの計算値よりも長く、余裕を見ているようです。それでも支給全長183cmが10cm以上余る計算です。実際の支給全長はさらに余裕の218cmでした。

f:id:amat49:20220321212108p:plain

Checking the number of windings of the toroidal transformer

同色のエナメル線3本を同色のT106-2コアに巻くため、巻き数のチェックが大変です。中央のタップを目印に確認します。主巻線は16回巻きのため片側に8本、合計16本、これは容易に確認できます。高インピーダンス用二次巻線の12回巻きを重ねると片側に14本、合計28本。さらに、低インピーダンス用二次巻線の6回巻きを重ねると片側に17本、合計34本。重ね巻きを実施する度に写真を残すことが重要です。写真で所々墨が付いたようになっているのは、マジックでマーキングしたためです。

大径20AWGのエナメル線の被覆を燃やすのは大変です。ストリッパが欲しくなってきました。

インダクタンスを実測するとtoroids.infoによる計算値よりも10%前後大きくなりました。低インピーダンス用二次巻線のインダクタンスは63.3%も大きくなりましたが、LCRメータ(Peak Atlas Model LCR40)の測定レンジが1uH~10Hのため、測定範囲を超えたことによる誤差と思われます。

f:id:amat49:20220321214414p:plain

Comparison of calculated and measured values of toroidal transformer inductance

FT37-43と同様に、コイルの線材をはんだ付けするための穴はタップも含めて基板の適切な位置に開いています。コアはネジと基板材ワッシャー、ロックナットで基板に固定する方式のため安心です。ロックナットはかなりトルクを要しました。

完成

以上で完成です。やはり長ネジが余りました。テストは後日・・・。

f:id:amat49:20220321220232p:plain

Assembly completed