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 であることが確認できます。