Dropbox

今までOpeTX/EdgeTXのファームウェア更新はSDカードにファームウェアをコピーし送信機をブートローダーモードにして行っていましたが、一部の送信機ではEdgeTX BuddyというWebサイトを利用してUSBを経由して直接更新作業を行うことが出来ます。送信機の電源をオフのままPCにUSB接続すると自動的にブートローダーに入りPC側でSTM32 BOOTLOADERというデバイスが現れる送信機が対象となります。

以下、Radiomaster TX16Sで試してみた結果を簡単に紹介します。

– まずはSDカードの中身をどこかに保管しておきます。
– TX16Sの電源はオフのままUSBケーブルでPCとTX16Sを接続します。
– EdgeTX Buddy/Radio firmware画面にてFirmware versionとRadio modelを選択します。
– “Flash via USB”ボタンを押し、”STM32 BOOTLOADER”というデバイスを選択します。これはMacOSでの例です。Windowsではデバイス名とか画面は違うかもしれません。また状況によってはPCにドライバーの導入が必要かもしれません。


– “Next”を押し、あとは画面を見ておくだけです。

USB接続とWeb画面だけでファームウェアが更新出来るのは楽で良いです。続いてSDカードの内容を更新します。

– TX16Sの電源をオンにしてUSBで接続しSDカードドライブにします。
– SD Card contentの画面でSDドライブを選択します。

– 次にバージョン、モデル、音声の言語を選び”Apply changes”を押します。

– 後はひたすら待ちます。とにかくとてつもなく時間がかかります。失敗しているのでは無いかと思うくらい時間がかかります。

SDカードを取り出してSDカードドライブに入れて同じ手順で更新するとだいぶ速くなります。

最初、中身を消している画面が出て長い時間を消費してたのが、ちょっと謎です。後から試した時には、この画面は見ないこともありました。

新しいファームウェアに合わせたSDカードの中身が書き込まれている様子。

モデルなどはちゃんと残されているように思います。

モーターが回らなくなってしまったAIO FC有りませんか? 古くからある手法ですが、それをシュミレーター用の受信機ドングルとして使用する方法の紹介です。最近のFCでは受信機が載っているのでかなりお手軽です。VTXも載っていてUSBで電源が入ってしまうのやつは熱くなるので向いていないと思います。当然、受信機は正常に動作している必要があります。

必要な情報は全てOscar Liangさんのところに書いてあります。ここではかいつまんで説明しておきます。

設定はとても簡単です。受信機が正しく構成されていることが前提です。

set usb_hid_cdc = on
save

上のコマンドをCLIで投入するだけです。これで(もしかすると一度USBの抜き差し後)、FPVシュミレーターからコントローラーとして認識されるはずです。

この設定を行ったあとBetaflight Configuratorに再び接続しようとしてもポートが見つから無くなってしまうことがあります。

こんな時は、Betaflight Configuratorのオプションを開いて「全てのシリアルデバイスを表示」をオンにすれば大丈夫です。

有線接続と比べてレスポンスがどうとかみたいな話しは、まったり飛ばす私にはよく分かりません。

これでワイヤレスでシュミレーター練習が出来るようになりました。ワイヤレス接続にはELRSのブルートゥースを利用する方法もありますので、この方法にさほど需要はないのかも知れません。

HDZeroに限らずAvata2などにも応用可能な手順です。標準的なUSB接続の受信機以外からの映像をTinyViewPlusに認識してもらう方法についてのまとめです。

いきなり設定方法を書いていきます。後から説明を少しだけ書きます。

[ 接続 ]
HDZeroゴーグルにGUERMOK USB 3.0 HDMI to USB C オーディオ キャプチャ カード、4K 1080P60 キャプチャ デバイスを使用しPCに接続した。

[ カメラの名前を調べる ]
macOSの場合は「システム情報のカメラのセクションを見ます。(リンゴマーク->このマックについて->詳細情報->システムレポート)

Windows11の場合はデバイスマネージャーのカメラセクションを開きます。(スタートボタンを右クリックでデバイスマネージャー)

Mac, Winの双方にUSB2.0 PC CAMERAという名前があります。これがTinyViewPlusが既定値のままで認識するUSB接続の受信機です。Macで”USB3 Video”、Windows11では”USB2 Video”として認識されているのがHDZeroゴーグルの接続に使用したHDMIからUSBに変換するアダプターです。この名前をTinyViewPlusに知らせる必要があります。

[ 設定ファイルの編集 ]
設定ファイルはWindowsの場合は実行ファイルと同じフォルダー下のdata/camera/fpv.xmlです。MacOSの場合、Tiny View Plus.appを右クリックし、パッケージの内容を表示を実行します。その中のContents/Resources/data/camera/fpv.xmlです。
最初から入っているfpv.xmlはサンプルで、これが存在しなくてもTinyViewPlusは動作します(GV-USB2に相当するビデオキャプチャーを利用している場合を除き)。心置きなく弄ることができます。以下はオリジナルの内容です。

<camera> 
    <name>GV-USB2</name>
    <description>squeezed 16:9</description>
    <grab>
        <width>704</width>
        <height>480</height>
    </grab>
    <crop>
        <x>0</x>
        <y>0</y>
        <width>704</width>
        <height>480</height>
    </crop>
    <draw>
        <aspectRatio>16:9</aspectRatio>
    </draw>
</camera>

二行目の<name>GV-USB2</name>を先に調べたカメラの名前に書き換えるだけでTinyViewPlusでHDZeroの画面が表示できるようになります。余談ですが、ここをFaceTimeとするとMacBookのカメラがTinyViewPlusに表示されたりもします。
縦横比とか解像度を正しくしておく方が良いと思い、二つの設定ファイルを試してみました。ひとつめはゴーグルで見ているままに全ての情報を表示する設定です。
以下、私のMacOSでの設定例です。

<camera>
    <name>USB3 Video</name>
    <description>squeezed 16:9</description>
    <grab>
        <width>1920</width>
        <height>1080</height>
    </grab>
    <crop>
        <x>0</x>
        <y>0</y>
        <width>1920</width>
        <height>1080</height>
    </crop>
    <draw>
        <aspectRatio>16:9</aspectRatio>
    </draw>
</camera>

HDZeroを飛ばしている人の多くはカメラ設定を4:3にして飛ばしていると思います。この場合16:9の画面の中央部分にだけカメラ映像が表示されています。その部分だけを抜き出してTinyViewPlusに表示させることが出来ます。

<camera> 
    <name>USB3 Video</name>
    <description>4:3</description>
    <grab>
        <width>1920</width>
        <height>1080</height>
    </grab>
    <crop>
        <x>240</x>
        <y>0</y>
        <width>1440</width>
        <height>1080</height>
    </crop>
    <draw>
        <aspectRatio>4:3</aspectRatio>
    </draw>
</camera>

これで表示すると、

こんな感じです。私的にはこれがお勧めだと思います。
以上で設定の説明は終わりです。まだ実際に計測で使えるかどうかのテストは行っていません。

[ 補足説明 ]
fpv.xmlの説明文は見つからなかったのでソースコードを少し眺めてみました。

fpv.xmlを読み込んでいるのはloadCameraProfileFile()です。fpv.xmlのパス名はofApp.hで定義されています。ここで分かるのはfpv.xmlというのが唯一のカメラ設定ファイルで、また追加するカメラ名はひとつだけであるということです。同じカメラ名で複数のデバイスを扱うことは出来そうです。


実際の設定を行っているのはreloadCameras()です。”USB2.0 PC CAMERA”がハードコードされているのが分かります。また解像度や画面のクロップのロジックも読み取れます。この辺りを改造すれば複数のカメラ名を認識させることも出来そうです。

ゴーグルの出力をTinyViewPlusに送り込むのは実験的には問題ないですがケーブルの取り回しが大変で実用性はないと思います。実際のレースではHDZero Event VRXとか最近発売が始まったHDZero Monitorを使用することになると思います。どちらもAnalog VTXの映像も拾えるのでHDZero, Analog混合レースが簡単に可能になると思います。直接PCに接続できるわけではないので、やはりHDMIからPCに繋ぐためのアダプターは必要です。

NAKA Drone Racing2024では使用するVTXチャネル毎に合わせたLEDを装着することがレギュレーションに入っています。色を合わせたLEDの搭載が難しい場合にはバッテリーと機体の間に挿入するLEDの貸与もあります(今のところBT2.0コネクターのみ)。それでも自分で搭載したLEDを使用することが望ましいのはいうまでもありません。

チャネル LED色
E1
F1
F4

自分で色違いのLEDを準備して付け替えられるようにすることも考えられますし、FCから制御出来るRGB LEDを装着してVTXチャネルの変更で自動的にLEDの色を変更することも可能です。ここではRGB LEDを装着した場合のBetaflight Configuratorでの設定方法について必要な設定だけを書いておきます。

[ LEDについて ]
LEDの種類について簡単に書いておきます。最近流行りの全周LEDで使用されているのは、おそらく単色LEDと思います。+と-の線だけがLEDにあり電源を接続すれば光ります。これは一般的には色の変更が出来ないLEDになります。
この記事で言うところのRGB LEDというのは電源に加えて信号線があります。これをFC上のLEDポートに接続することによりBetaflightからの制御が可能になります。

写真はKOU_CHAN@LEDで購入したものです。このようにCOBタイプのものですと、一つのLEDセルに対して+5V, -, IN, OUTの4端子が出ています。信号はINから入ってOUTを経て次のLEDのINへと受け継がれて行きます。このためFCからの信号はINに接続してください。

[ BetaFPVのFCにLED Strip関連の不具合 ]
一部のBetaFPVのFCにてLED Stripを有効にするとモーターが回らなくなる不具合があるようです。「LEDつないだらモーターが動かなくなった時(Betaflight)」によると’set dshot_bitbang = OFF’で直ることがあるようです。最後の方に書かれていますが、’set dshot_bitbang_timer = TIM8’が有効であるという情報もあるようです。

[ 前提 ]
Betaflight Configuratorの「基本設定」でLED_STRIPをオンにして「LEDストリップ」タブが現れること。もしこれが出ない場合Firmwareビルドの際にLED Stripオプションが入っていなかった可能性があります。LED Stripを含めてFirmware更新をやり直してみてください。

[ LEDストリップの設定 ]
1. ワイヤーオーダー

最初に必要なのはLEDが何個ついているかを設定することです。”ワイヤーオーダーモード”ボタンを押した後でマトリックス部分をクリックするとLED番号が割り当てられます。スイープして複数のマスを一気に設定することも出来ます。マトリックス上の位置は特に気にする必要はありません。必要な数のLEDが指定されればOKです。もし10灯のLEDであれば番号0から9がどこかに表示されるようにします。完了したら”ワイヤーオーダーモード”ボタンを再度押してワイヤーオーダーモードから抜けてください。

2. 機能の設定

全部あるいは設定したいLEDをマトリックス上で選択し”機能”を”カラー”にします。続いて”オーバーレイ”のところにあるVTXをオンにします。
これでVTX周波数によるLEDの色変更が出来るようになりました。

3. カラーパレットの変更
Betaflightの規定値のままだと目的の色になっていません。「CLIコマンドライン」にて以下のコマンド列を投入してください。
color 2 0,0,255
color 3 120,0,255
color 6 240,0,255
save


具体的には「CLIコマンドライン」を開き、下の方の入力欄に上のコマンドを投入します。スクリーショットでは分かりやすくするためにコマンドを一つ一つ入力した様子を示していますが、上の4行のコマンド(colorが3行とsaveコマンド)を一度にコピーして貼り付ける事が出来ます。saveコマンドを投入後はBetaflightが再起動します。

以上で完成です。VTXチャネルを変更して正しい色が出るかどうか確認してみてください。

実際に設定してみた動画です。ELRS Luaスクリプトからの変更例ですが、OSDスティックコマンドによるVTXチャネル変更でもLED色の変更は行われます。

HDZeroゴーグルをアナログVTXで使うべく手持ちのWildfireを付けたものの画像的に今ひとつでした。そこで新しく受信機を入手することにしました。定番はRaidfireですが、もうちょっと安価なSkyzone SteadyView Xにしました。ところが、これが素直にHDZeroゴーグルに搭載することができませんでした。ということで、その顛末を書いておきます。

SteadyView Xは電源を接続してAV端子に映像を出せるグランドステーションとして出荷されてきます。分解して受信機モジュールを取り出してみると違和感。

右側のWildfireと比べるとピンがだいぶ短いです。HDZeroゴーグルのExpansion Moduleに入れてみると、やや斜めに入れれば動かすことは出来るのですが、ちょっと受信機に触ると外れてしまいます。間に何か入れるかピンを立て直すかと思い、手持ちのピンを見たら全く同じ長さのものしかありません。 

ピンの出荷時の長さ配分のまま受信機に付けられているので、基板の上側にピンがだいぶ飛び出しています。これを基板ギリギリまで押し込んで見ることにしました。

修正途中の写真です。ハンダゴテで温めながら押し込んでやると簡単に修正できます。

あと、念の為、下から2本目のピンは抜いておきました。最初のテストでは全ピン挿入して問題はありませんでしたが、過去にHDZeroゴーグル+SteadyView Xでは、このピンを抜かないと不具合があるという情報がありました。もしかすると解決済みなのかもしれません。

SteadyView Xのピンを修正後にExpansio Moduleに入れてみると収まりが良い感じがします。裏からみるとピンが奥まで入っているが確認できました。

問題はもう一つあって、カバーが色々と付属しているのですが全く使えません。こういう用途のためのカバーがあってキッチリとハマるのですが装着するとロータリースイッチが全く効かなくなります。手で回す部分は問題ないのですがスイッチ本体が横に傾いてしまい回転部分から外れてしまいます。何度も試すと壊してしまいそうです。

Pintsbalesに有ったモデルをTPUで出力して被せてみました。カッチリ感はありませんが、実用にはなると思います。

HDZeroのDVRはTSフォーマットが推奨されています。そのあたりの事情は以前書いた記事をご覧ください。

その時に手作業でTSファイルからMP4への変換方法を書きましたが、やはり面倒です。ということで少しでも楽をするためのプログラムを書いてみました。

[ 特徴 ]
– 再エンコードなしで動作が速い
– ワンクリックでSDカードのTSファイルをまとめて変換
– TSファイルのタイムスタンプをMP4にも反映(手作業の時は諦めていた) -> DVRファイルの時刻を何時も正しくするためにはHDZeroゴーグルにバッテリーを取り付けます

https://github.com/nkozawa/ts2mp4

[ 前提 ]
プログラムを書いたと言っても実際に動画を変換するのはffmpegというツールです。もしffmpegが導入されていない場合は、まずこれを導入しコマンド窓でffmpegと打ち込んで動くようにしておく必要があります。Windowsの場合、おそらく自分でPATHを通すという作業を行わないといけません。

[ 実行ファイル ]
Python3の環境がある場合、公開されているts2mp4.pyを実行してください。MacOSとWindows11のPython 3.11でテストしています。試してはいませんがLinuxでも動くと思います。MacOSとWindows用にはPythonの環境がなくても稼働する実行ファイルも用意しています。

[ 使い方 ]

– Input path(TS files)ボタンを押してTSファイルのある場所を指定します。HDZeroゴーグルのSDカードを指定する事が多いと思います。その場合、SDカード下のmoviesフォルダーを指定します。
– Output path(MP4 files)ボタンを押してMP4ファイルを格納する場所を指定します。
– TSファイルのタイムスタンプをMP4ファイルに反映させる場合はUse Original File Timestampにチェックを入れます。チェックを入れない場合はMP4ファイルのタイムスタンプは現在の時刻になります。
– Start, no overwriteもしくはStart, overwrite allを押して変換を開始します。
“Start, no overwite”は出力先にすでに該当のMP4ファイルがあれば何もしません。新しく録画したものだけを変換するので普通はこのボタンが便利です。ただし判定はファイル名のみで行っています。SDカードを初期化した場合などは考慮が必要です。”Start, overwrite all”は出力先の状態に関係なく全てのTSファイルを変換します。

[ INIファイル ]
Input path(TS files)、Output path(MP4 files)、Use Original File Timestampの設定値はINIファイルに記録されます。次にプログラムを起動するとINIファイルを自動的に読み込みます。

INIファイルはユーザーのホームディレクトリーにts2mp4.iniという名前で書き込みます。

INIファイルの書き込みは、今のところStart, no overwriteもしくはStart, overwrite allを押した時に行なっています。

今までに入手したBetaflight ConfiguratorのLEDタブで構成出来るRGB LED、三種類の簡単な比較です。

購入場所 10cmあたりの重量 10cm当たりの灯数
KOU_CHAN@LED 4mm 約1.35g 16
秋葉原LEDピカリ館 4mm 約0.62g 6
Aliexpress 3.5mm 計測不能 *1 20

*1 入手したものは5cmの長さのもので、うちの電子測りでは軽すぎて計測できませんでした。

< KOU_CHAN@LED >
https://kouchanfpv.base.shop/
入手しやすくお勧めです。LEDの搭載密度が濃いです。光を拡散する被覆があるので美しさを惹き立たせていますが、重量的には不利です。65mm機に全周で搭載した場合4gを超える重量の増加になってしまいます。被覆を削って軽量化を図るという方法もあるようです。

< 秋葉原LEDピカリ館で見つけたもの >
https://www.akiba-led.jp/
実際に店頭で見つけて買ったものです。まあまあ粒の大きいLEDチップが剥き出しになっているものです。LED密度はまばらなのでタイニーより大きな機体に搭載したいと思います。

< Aliexpressで見つけたもの >
密度もあるし幅も狭く軽いので良い感じですが、5cm(10灯)と10cm(20灯)しか見つけられないです。全周装備するのは手間がかかりそう。使い所を検討中。送料がかかるので割高に感じる。また入手までの時間もかかリます。

十字型で軽量かつELRS,25mW VTX搭載のAIOとして期待を胸にいっぱい詰めてHummingBird V3 AIOを試してみました。購入後に本家サイトを見たら日本語でかなり悪いコメントが付いていて愕然。元々英語で二つほど悪いコメントが付いているのは知ってはいましたが、日本語で書いてあるとインパクト強いです。ということをXで書いたらレスいただきました。

[ とりあえずハードウェア的に気になるところ ]
– カメラを接続するコネクターがめちゃ小さいものでした。もしかすると適合するコネクター持っているかも知れないけど、とりあえずはハンダ付けすることに。ハンダ付け用のランドもないのでコネクターを剥がしてそこにハンダ付け。コネクターの跡地が細すぎるので、そこはビデオだけを使用して+5VとGNDは別のところを使用。
– モータ取り付けのコネクターが普通より小さい。実戦機のモーターはハンダ付けだけどお手軽にテストする時はコネクターが使いたかった。モータ用のハンダ付けパッドはあるので、まあまあ問題なし。
– PIDは何かしら設定されてはいるけど、軽量(ドライ18.7g)な65として組み上げた機体には合わないみたい。まだあまり飛ばしていないけど、初期設定のPID値が怪しすぎるので別の機体に合わせて再テスト予定。
- ブザーは無い。ま、外で飛ばさないので良いか。
– 外付けRGB LEDの取り付けが出来ない。ボード上に4灯のRGB LEDが載っているので信号線は探せば見つかりそう。最悪の場合LEDを剥がせば簡単に信号を取り出せるはず。オンポードなLEDもなかなか綺麗。

[ 実際に飛ばしてみた ]
練習会に持って行って飛ばしてみたが、設定に問題があったりして十分にはテスト出来なかった。一応は飛びました。評判からVTXが心配でしたが、何とか写ってはいました。ただ高頻度でOSDの文字がおかしくなった。何文字か表示さけないところがある。で、ARM/DISARMで直ったりする。

まだ全然飛ばし込んではいないので何とも言えないが、お勧めするにはちょっと微妙な気がしている。

これについては多くの人が日本語でも情報発信されている事柄ですが、私自身のメモとして買いておきます。
基本設定は「FCからコントロールするLEDテープを試す」に従います。その上で使用するLEDを選択し機能をカラー、オーバーレイでVTXをオンにすれば設定完了です。これでVTXチャネルをsmartaudioで変更するとLEDの色が変わるようになります。

チャネルに対する色の割り当てについてはBetaflight Wikiに書かれています。周波数レンジ毎にどのカラーインデックスが選ばれるかが記述されています。日本でよく使われている3チャネルだけをまとめてみると以下のようになります。

チャネル 周波数 カラーインデックス 規定値
E1 5705 2 Red(0,0,255)
F1 5740 3 Orange(30,0,255)
F4 5800 6 Green(120,0,255)

カラーインデックスの2,3,6という数字はBetaflight ConfiguratorのVTXタブにあるカラーパレットの数字に相当します。もし色を変更する場合は、このパレットをダブルクリックして編集するかCLIのcolorコマンドで変更します。Orangeはどうも見た目が今ひとつなので香川の師匠の提供によるCLIコマンドを利用して変更しました。
color 2 0,0,255
color 3 120,0,255
color 6 240,0,255

これでそれぞれ赤、緑、青に設定されます。

実際に設定してみた動画です。

HDZeroゴーグルにはHDMI出力があり常にゴーグル内で見ている画像を外部のディスプレイに映し出すことが出来るようになっています。MacBookの外付けディスプレイを時々切り替えてゴーグルの画像を見ていましたが、その時にはMacBookで使用できる無くなるわけで色々と不自由をしていました。そこで入手したのがHDMIからUVCに変換してくれるデバイスです。そういうわけで、これはHDZeroゴーグルに限らずHDMI出力をPCや端末で表示させるための方法です。出張先でFire TV Stickを見るなんてことも出来そうです。

GUERMOK USB 3.0 HDMI to USB C オーディオ キャプチャ カード、4K 1080P60 キャプチャ デバイスというものです。

試したのは小米MiPad5というアンドロイドタブレットです。USB Cameraというアプリを導入したところ何も悩むことなく画面が表示できました。

ただしHDZeroゴーグル側はHDMIコネクターちょっと小さいやつです。それとキャプチャーデバイスを単純な接続すれば大丈夫です。

MacBookでもQuickTome Playerで入力デバイスをUSB3 Videoを選択したら表示できました。