ISS SSTV イベントがあったので受信してみました。

June 29- July 1, 2018 – SSTV images of satellites という国際宇宙ステーション(ISS) から SSTV 送信イベントの発表がありました。日本時間に直すと 2018年6月29日 18:00 ~ 2018年7月2日3:30 ごろまで行われるイベントです。ミッションネームは 「Series 10: ARISS Hand-deployed Satellites」なので、小型の衛星やチームの画像が送信される感じです。

受信してみたいなと思ったので ISS が通過する時刻を確認します。調べた結果自宅(東大阪市)を通過する時間帯は以下のような感じです。

日付を黄色で塗ったところがイベント期間に合致するもの、でさらに見かけの高度があるものも確認。アマチュア無線はやってますけどちゃんとしたアンテナの設備がないので、ひょっとしたら黄塗りはいけるんちゃう?という期待が入っています Hi

受信設備は以下のとおりです
・ベランダにアクティブアンテナをのワイヤをひっかけて設置(屋根より低く開けているのは南側だけ)
・SDR は Airspy HF+
・SDR を Raspberry Pi 3B+ に接続して SDR のサーバーを構築(無線LAN接続)
・Windows PC(無線LAN の機器にEthnernetケーブル接続) に SDR Console V3 のラジオソフトと RX-SSTV という SSTV デコードソフトをインストール

Airspy のユニットを使ったので SDR Sharp というソフトのほうが相性いいはずなのですが、衛星トラッキングソフトと連動させてドップラーシフトのコントロール方法がいまいち把握できませんでした。オールインワンで衛星トラッキングから受信周波数のドップラーシフトも自動でやってくれる SDR Console V3 のほうがとっつきやすかったので今回これを使用しています。

PC で受信中の画面はこんな感じです。

■2018/6/30 4:28(JST) ごろの取得した画像
日本で受信できる1回目の ISS 通過時刻です。期待ふくらみます。

このパスは ISS が最高高度に達する前と後の合計2回画像送信がありました。このうち ISS が昇ってくるときに撮れたのがマシな状況でした。家から東は生駒山があるので、ISS が東側に行くと一発で受信できなくなります。

■2018/7/1 3:36(JST) ごろ取得した画像

最高高度は低いパスでしたが家の南側を通ってくれたおかげなのか、一番マシに撮れた一枚です。この一枚撮れたおかげて多少気は楽になりました。

あとは、一枚目の写真のように一部分しかデコードできない、もしくは、全くデコードできない画像ばっかりというリザルトでございます。

ARISS SSTV Award – rules アワード申請できるっぽいので、ものは試しと入力はしました。

— 2018/07/03
申請した翌日にアワードきました。地味にうれしい

mcHF v0.7 RF ボードの絶縁対策(有効)

以前このBlog に書いた mcHF v0.7 問題点 で、21,24,28MHz 帯で出力を 5W にすると液晶画面がバタつきます。ということを書きましたが、Blog にいただいたコメントで

・RF ボードの TO-220 (電源・ファイナル) を絶縁する
・LOGIC ボードのマイコンチップは銅ホイルを貼ってシールドする
・RF ボードと LOGIC ボードの間に銅板を入れてシールドする

という対策案をいただきました。

私の mcHF は LOGIC ボードの銅ホイル貼りは既に実施済みのため。 RF ボードの TO-220 (電源・ファイナル) を絶縁してみました。

本体分解して、どうやって絶縁シート挟み込むかしばし考えましたが決め手が浮かばず。
結果、RFボードをアルミケースに戻して、基板をちょっと曲げ加減に力をいれて、TO-220 パーツにできた隙間に絶縁シートを滑り込ませるという、なんとも原始的な方法でなんとかしました。

本体を組み戻して、ファームウエアを最新にしてから調整です。

結果、5W 出力では液晶画面のバタつき、ボタンが勝手に押されたようになる誤動作はなくなりました。
また 10W 出力もいけるかやってみたところ、18MHz 帯までは 10W 出ました。21MHz/28MHz帯、設定の数字上げていっても 5W 止まりとなりました。
PA Configuration は 5W / Full Power とも 5W 出力になる設定値にして調整終わりです。

RF ボードと LOGIC ボードの間に銅板を入れてシールドするという対策は今回実施していませんが、mcHF のファンレス函体では 5W 出力でもシャーシ全体暖かくなるので、これでいいかなと思うところです。

後は、CW モードで問題無さそうな波が出る?とかライン入力が歪まないレベルはどれくらい?など確認できたら、ひょっとしたら保障認定依頼するかもという感じ。

mcHF v0.7 TX/RX リレー化(失敗)

mcHF v0.7 の送受信切り替えをリレー化してみました。
Recommended Modifications にある RF-04/05/06-H-029 の改造です。

リレーモジュールを組んで、単体テストでリレー動くことを確認

基板に穴を開けて

面実装部品を取り除いた後、リレーを配線

リレー付けた結果
1.TUNEボタン押すとスピーカーから TUNE TONE の音が出るバンドが発生
2.7MHz帯以下は 5W 問題なく出るけど、10MHz帯以上は1Wも出ない。PA設定まわしてもほとんど上がらない。
3.10MHz帯以上は回り込みのせいか出力調整中にすぐ操作不能になる
とまぁ散々な結果となりました。

— 追記 —

リレーに接続する線をシールドタイプに変更するべく準備


配線をやり直してみました。
こちらの動作確認結果、やはり状況は変わらずといったところ。

諦めて、元にもどしました。

mcHF v0.7 問題点2

私の組み立てた mcHF v0.7 で発生している問題点ということです。

前の記事で 50Ω系アッテネータを組んだので、mcHF と SDR を接続して波形を見るべく、F1 + F3 + F5 + 電源ON でオールリセットしてキャリブレーションからやり直し。
Firmware は 2.9.16 を使用しています。

キャリブレーションで、IQ の設定をしますが、トランスミットのオフセット -12k のモードは手順通り完了。
CW IQ の調整をしようとオフセット OFF にして、SDRConsole の画面を見ると

まいったなぁ。という状況。CW IQ 設定はひとまず放置で、普通にサイン波をマイク入力して、出力がどうなっているか見てみようと、やってみたところ

USB モードのはずなのに両サイド電波出てますなぁ。と。これは知らない間にサイドバンドだけの正常な状態に戻ってました(;´・ω・)
これは、ソフトの問題と思われるのでいいとしますが、散々な状況のまま土曜日は終わってしまいました。

コア材に巻いたトランスに間違えがあるのか、終段 FET が悪いのかどうか。今のところいろんな事象が起こっているので、確認するのはまた後日ということで。

小出力無線機で使えるステップアッテネータを作ってみました

mcHF v0.7 はひとまず組み上げまで終りましたが、スペアナを持っていないので送信出力の具合をみることが出来ません。
SDR Console のスペアナ画面で波の出方くらいは見られるので、無線機出力を SDR に接続して SDR Console で見るためステップアッテネータを作ってみました。

無線機出力を見たいので 50Ω のアッテネータとして、それぞれ 1dB / 2dB / 3dB / 5dB / 10dB / 20dB の 6 段構成にしました。
抵抗の組み合わせは、表のように左が計算上求められる抵抗値、定本列はトロイダルコアの定本にチラッと載っている抵抗値、某キット列は qrpkit.com の抵抗値。
千石電商の通販で抵抗を探してみたところタクマンの3W(2W抵抗と同じ大きさ)抵抗で某キットの抵抗が揃えられました。

回路は各アッテネータをスイッチ切り替えの組み合わせで減衰量を決めます。

3/17に基板製作依頼をして3/22に入手。送ったガーバーファイルの .zip ファイルを間違えて、3mm ホールにシルク印刷があったり、抵抗番号のシルクが変だったりしますが見た目だけの問題なのでそのまま組んでみることに。

知っている方が見たら、あのキット完コピと言われる位に部品配置がそっくりさんです。KiCAD でパターン引いたら同じ形になってしまいました Hi
vna/J という Java 版 Vector Network Analyzer アプリと MFJ-225 のアンテナアナライザの組み合わせで減衰量を確認してみました。MFJ-225 は vna/J アプリケーションで miniVNA という機器を指定すれば認識します。測定範囲は最大 180MHz までなのですが今回の目的には十分です。

測定した結果、HF 帯 OK みたいなグラフとなりました。30MHz 以上で減衰量がバラツクのはスイッチの接点の加減ですかねぇ? 某キットはスライドスイッチを使っているので、スライドスイッチほうが性能良くなるかも知れません。

余った基板はシルクのミスプリなどもあるので、何かのタイミングで処分頒布したいと思います。

mcHF v0.7 問題点

一通り設定もして組みあがりましたが、問題点があります。

今のところ、21,24,28MHz 帯で出力を 5W にすると、液晶画面がバタつきます。回り込みでスイッチ操作がされた状態が連続します。出力を 3W 程度にすると収まります。

mcHF にパワー計・ダミーロードを接続して TUNE ボタンを押して電波を出したときに液晶画面に表示される SWR 値を見てみました。


3.5MHz ~ 14MHz 帯は 1 ~ 1.2 程度に収まっています。


21Mhz 帯では SWR 2 程度の表示になりました(パワー計のSWR表示はもちろんことですが1です)。出力を上げたときに RF ボードからの回り込みで発生すると思われますが、
cpu 付近に銅箔テープを貼って GND に落としてみても改善なし。イコライザ設定でキレイな波になれば少しは改善するかもですが、SWR 上がる原因をつぶさないと駄目ですね。
パット思いつく対応策は思いつかないので、今のところお手上げです。ひとまず、21MHz 以上は 3W 程度に出力を抑えるよう設定値を変更しました。

mcHF v0.7 UHSDR キャリブレーション

mcHF v0.7 の調整です。

手順は Adjustment and Configuration Manual にあります。
詳細はこの手順を翻訳してやりました。

■液晶タッチスクリーンの調整
液晶画面を押したまま電源を入れるとタッチパネル調整モードに行けるので、クロスカーソルを押して調整。

■バイアス調整
電源と mcHF の間に電流計を入れて調整。うちとこの mcHF では 940mA になる設定となりました。

■送信電力の調整(5W)
パワー計とダミーロード接続して各バンド 5W 出力の調整をします。
21MHz,28Mhz など周波数の高いバンドで出力が低くなる Blog 記事などもみていましたが、今回すべてのバンドで 5W 出力できることを確認しました。

■送信電力の調整(フルパワー)
パワー計とダミーロード接続して各バンドフルパワー出力の調整をしますが、5W 出力に制限しました。

■液晶表示のパワーメーター調整
各バンド 5W 程度のところを指すように、設定を調整します。

■IQ調整(受信)
受信のIQ設定は AUTO に設定

■IQ調整(送信)
SDRConsole の画面を見ながら簡易調整です。直結するようなアダプタを作ればいいのですが、ダミーロード横に SDR のアンテナを置いての簡易な方法。

28MHz のスクショをサンプルにつけます。調整前、調整後です。これは、ちょっと勘所がわからないので本当にいいのか不安が残ります。

■周波数の調整
発信機はあるのですが、時間切れで未着手

という感じです。

mcHF v0.7 UHSDR(ver 2.9.13) ソフトウエアの日本対応

mcHF の組み立てを始めた時に Logic ボードの動作確認のため https://github.com/df8oe/UHSDR にある mcHF のファームウエアを raspberry pi にダウンロード・ビルドして動作確認を行いました。ただし、このソースをそのまま使用しますと日本のアマチュアバンドにない 5MHz帯などが設定されていたりするため問題があります。

基本的にこのソフトは設計者がイギリスの方なのでリージョン1のバンドプランで設定されています。これを日本のバンドプランにあわせたいところですが、特に 3.8MHz帯 は発射可能な周波数の範囲が細切れでこれをすべて反映させるのはソフトウエアの修正箇所が非常に多くなります。ここではもともと 5MHz 帯の設定を 3.8MHz 帯にずらした対応でやりたいと思います。

ソースのハードコピーを掲載してわかりやすくしたいところですが、git の diff 表示で我慢してください。

行の頭に(-)マイナスついている行は修正前のもので、削除されたもの
行の頭に(+)プラスがついている行は修正後のもので、追加されたもの

■電源 ON 時のファームウエアバージョン表示文字サイズを小さくする

diff --git a/mchf-eclipse/drivers/ui/ui_driver.c b/mchf-eclipse/drivers/ui/ui_driver.c
index 2f90ec7f..4109115a 100644
--- a/mchf-eclipse/drivers/ui/ui_driver.c
+++ b/mchf-eclipse/drivers/ui/ui_driver.c
@@ -5616,7 +5616,7 @@ void UiDriver_StartUpScreenInit()
 #endif

        snprintf(tx,100,"%s%s","UHSDR Vers. ",UiMenu_GetSystemInfo(&clr,INFO_FW_VERSION));
-       nextY = UiLcdHy28_PrintTextCentered(ts.Layout->StartUpScreen_START.x, nextY + 8, 320, tx, Yellow, Black, 1);
+       nextY = UiLcdHy28_PrintTextCentered(ts.Layout->StartUpScreen_START.x, nextY + 8, 320, tx, Yellow, Black, 0);

        nextY = UiLcdHy28_PrintTextCentered(ts.Layout->StartUpScreen_START.x, nextY + 3, 320, "Firmware License: " UHSDR_LICENCE "\n
" UHSDR_REPO, White, Black, 0);

■バージョン番号に -JA を付与する

diff --git a/mchf-eclipse/src/uhsdr_version.h b/mchf-eclipse/src/uhsdr_version.h
index 63ba7176..e4eba8fe 100644
--- a/mchf-eclipse/src/uhsdr_version.h
+++ b/mchf-eclipse/src/uhsdr_version.h
@@ -28,7 +28,7 @@
 #endif

 // trailing characters are needed for identifying version and building date+time in binary
-#define            UHSDR_VERSION           "fwv-"UHSDR_VER_MAJOR"."UHSDR_VER_MINOR"."UHSDR_VER_RELEASE
+#define            UHSDR_VERSION           "fwv-"UHSDR_VER_MAJOR"."UHSDR_VER_MINOR"."UHSDR_VER_RELEASE"-JA"
 #define            UHSDR_BUILD_DAT         "fwt-"__DATE__ " - " __TIME__
 #define            UHSDR_LICENCE           "GNU GPLv3"
 #define     UHSDR_REPO              "github.com/df8oe/UHSDR"

■3.5MHz ,3.8MHz, 7MHz 帯のバンド変更

diff --git a/mchf-eclipse/hardware/uhsdr_board.h b/mchf-eclipse/hardware/uhsdr_board.h
index 6f73ee2b..eb2a0b3c 100644
--- a/mchf-eclipse/hardware/uhsdr_board.h
+++ b/mchf-eclipse/hardware/uhsdr_board.h
@@ -289,15 +289,15 @@ struct mchf_waterfall
 //
 #define        BAND_MODE_80                    0
 #define        BAND_FREQ_80                    3500*KHZ_MULT           // 3500 kHz
-#define        BAND_SIZE_80                    500*KHZ_MULT            // 500 kHz in size (Region 2)
+#define        BAND_SIZE_80                    75*KHZ_MULT             // 500 kHz in size (Region 2)
 //
 #define        BAND_MODE_60                    1
-#define        BAND_FREQ_60                    5250*KHZ_MULT           // 5250 kHz
-#define        BAND_SIZE_60                    200*KHZ_MULT            // 200 kHz in size to allow different allocations
+#define        BAND_FREQ_60                    3702*KHZ_MULT           // 5250 kHz
+#define        BAND_SIZE_60                    14*KHZ_MULT             // 200 kHz in size to allow different allocations
 //
 #define        BAND_MODE_40                    2
 #define        BAND_FREQ_40                    7000*KHZ_MULT           // 7000 kHz
-#define        BAND_SIZE_40                    300*KHZ_MULT            // 300 kHz in size (Region 2)
+#define        BAND_SIZE_40                    200*KHZ_MULT            // 300 kHz in size (Region 2)
 //
 #define        BAND_MODE_30                    3
 #define        BAND_FREQ_30                    10100*KHZ_MULT          // 10100 kHz

■LCD に表示するバンド名(60m を 79mに)、フィルター切り替え設定の修正

diff --git a/mchf-eclipse/drivers/ui/radio_management.c b/mchf-eclipse/drivers/ui/radio_management.c
index 745f26ff..904b0959 100644
--- a/mchf-eclipse/drivers/ui/radio_management.c
+++ b/mchf-eclipse/drivers/ui/radio_management.c
@@ -84,7 +84,7 @@ DialFrequency               df;
 const BandInfo bandInfo[] =
 {
     BandInfoGenerate(80,M,"80m") ,
-    BandInfoGenerate(60,M,"60m"),
+    BandInfoGenerate(60,M,"79m"),
     BandInfoGenerate(40,M,"40m"),
     BandInfoGenerate(30,M,"30m"),
     BandInfoGenerate(20,M,"20m"),
@@ -784,10 +784,11 @@ void RadioManagement_ChangeBandFilter(uchar band)
     case BAND_MODE_630:
     case BAND_MODE_160:
     case BAND_MODE_80:
+    case BAND_MODE_60:
         Board_SelectLpfBpf(0);
         break;

-    case BAND_MODE_60:
+    // case BAND_MODE_60:
     case BAND_MODE_40:
         Board_SelectLpfBpf(1);
         break;

——– 2018/3/9 追記開始
hardware/uhsdr_board.c のローパスフィルター切り替えについて補足します。 RF ボードで一生懸命トロイダルコアに線を巻いてフィルターを作りましたが、この回路を LTSpice で見ると以下のようになります。(クリックすると大きく表示されます)

カットオフ周波数はおおよそですが
・5MHz
・8Mhz
・17.5Mhz
・36MHz
の4つあります。5Mhz帯(60m)の設定を 3.8MHz帯に書き換えしたときは、このLPF設定も 5Mhz の LPF を使うようにしたほうがいいなということで、上記フィルター切り替えの変更をしています。書き換えない場合は 8Mhz のフィルターをとおるので別に壊れたりすることはありませんが、せっかく LPF をとおしているので、 5MHz のフィルターを通るようにしたほうが気分的にもいいです。

——– 2018/3/9 追記おわり

他にも修正するべきところは有ったりするかもしれませんが、ざっくりとこんなところで必要最小限の修正は可能かと思われます。git のリポジトリがしょっちゅう更新されますので、この修正はバージョン 2.9.13 の頃に適用できるものとして参照ください。

ひとまず、これをビルドして mcHF に書き込みます。

起動時のイニシャル画面に -JA 付きのバージョンが表示されます。また

メニュー画面の System Info に表示されるファームウエアバージョンでも -JA であることが確認できます。

mcHF v0.7 組み立て 4 (組み上げ完了)

mcHF v0.7 の組み立てです。今回は特に説明も不要かな。

RF ボードの TO-220 (レギュレータとMOSFET)をアルミケースに固定します。

3.2mm のドリルで穴あけして固定するだけです。



サイドパネルをつけてひとまず組みあがりであります。フロントシャーシが反ってますが 3D プリントのパネルを削れば改善すると思います。
これでハードウエアはひとまずできたということで、次の記事ではソフトウエアのほうに参りたいと思います。

mcHF v0.7 組み立て 3

前回の記事で LPF のフェライトコアに線をまいたところまで作りました。
これを基板につけようとしたところ半田ごての熱で線の皮膜が溶けないことがわかり、やむなく皮膜剥き作業をやってからの取り付けとなりました。最初はナイフで荒く削ってから紙やすりでしたが指が痛くなったので、途中からリューターの刃物併用で皮膜削るようにしました。地味に面倒くさかった。

Twitter に投稿した写真は↓のやつ。ただ、これ間違えると一発で線を切ってしまうのでご注意を。。。

LPF の取り付けが終わったら、アンテナジャック横のトランスを巻きます。 1:10 のトランスですが、1T 側が同軸ケーブルです。ひとまず同軸ケーブルの下ごしらえをした後に部品をつけてしまいます。

なんとかつきました。

ちょっと仮組みして、ラジオが受信できるか試してみました。ワイドバンドレシーバー用の小さなアンテナをつけて北京放送(中国国際放送)にチューニングしてみたところなんとか受信できました。時間帯的に生活ノイズまみれでの受信でしたが、比較用の BCL ラジオと大して差のない受信状況でいたのでひとまず OK とすることにしました。

スペクトル・ウォーターフォール表示の設定どこや?と Twitter でつぶやいたら、同じ大阪府下の OM さんにリプライいただいて Display メニューの設定を変更せよとのアドバイスをもらい試してみたところ、無事にスペクトルの表示、ウォーターフォールの表示もできるようになりました。

くみ上げ完成までの思いつくタスク
①アルミケースのサイドパネルのネジ位置があわない。
→ ケース本体も少し曲がり加減なので 3D プリントされた正面パネルを削るなりして、収まり良くなるかやってみる
②アルミケースに、TO-220 部品である電源レギュレータ・終段FET固定の穴あけと部品固定
③送信テストのための資材(SWR/パワー計/ダミーロード) がない
→ 買うなりして入手予定。
④ソフトウエアを日本のアマチュアバンド対応に修正する。これマージしてほしいけど、今のソースの書き方を見ると世界各国のバンドプラン対応が困難な感じなのでローカルで都度修正がいいかも
⑤スペアナは持っていないので、SDR のスペアナ画面でそれっぽい信号が出るかの簡易確認はする

ケース組上げが出来ないと先に進めないので、①最優先ですな。