今mchfのボードに書き込まれているバイナリのファームウェアは5MHzバンドが送信出来たり当然免許おろせませんので、こちらの方も対策を、というか日本版のファームウェアをコンパイルできるように準備を始めました。前に作ったような気がしたコンパイル環境は3年も経って当然のように見つからないのでgitのUHSDRのページを見て、試行錯誤。最初、STM32の開発をWindows上のsystem workbench for stm32でやっている関係で、こちらのEclipseにprojectをimport すればOK?と思って、やってみたんですが、コンパイル環境が正しくセットされず、うまくいかなかったため、Ubuntu 20.04 の環境にmake でコンパイルする環境をセットすることにしました。ので、備忘録。
arm のコンパイラー等はこちらには入っていなかったので、
sudo apt-get install gcc-arm-linux-gnueabihf
sudo apt-get install gcc-arm-none-eabi
sudo apt-get install git
git clone https://github.com/df8oe/UHSDR.git
cd UHSDR/mchf-eclipse
make all
したところ、一応コンパイル通ったので良いかと思います。fw-mchf.binというのがなんかできているから、これを書けば多分動くんだと思う(default でmchfの設定になっているはず)。
あとは、こちらに従って、ソース書き換えてビルドすればいいや。ぐらいに思っていますが、一応対応個所をソースで確認。
drivers/ui/ui_driver.c
src/uhsdr_version.h
hardware/uhsdr_board.h
こちらはだいぶ変わってしまってる。ので、for i in find . -name '*.h'; do echo $i; grep BAND $i; done|less
などでしらみつぶしに調べる。
drivers/ui/ui_configuration.h
とか、drivers/ui/radio_management.h
とか,drivers/ui/radio_management.c, drivers/ui/menu/ui_menu.c
を調べると、BAND_MODE_60
とかあるので、この辺をいじくればいいのかな。
多分、radio_management.cで60m など、BandInfoを定義していてそこでは、receive only やバンドの周波数を書くようになっていて、また、そのあと、bandInfo_combined[]に定義するバンドのまとめを作るようになっているので、この辺で変更すれば、きっとregion3 のバンド構成にできるんでしょう。多分。60m バンドに関しては、bi_60m_rxというのがあるからこれを使えばいいに違いない。bandInfo_regions3_thaiというのが定義されていて、なぜタイだけ?と思う。
… あたりまで、ソースを眺めて、OKということに。
あとは、EEPROMやっぱりつけとこうかな、などと思う。