非職業的技師の覚え書き

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

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が複数人おられるようなので、アイディアを共有できるように書かれていると期待しています。