レーシングドローンのフライトコントローラー(以下:FC)に使用されているプロセッサには、F3、F4、F7、最近では H7 があります。数字が大きくなるほど処理能力が上がります。最近ではほとんどのFCで最低でもF4が使用されています。またBetaflight 4.1 からはF3をサポートしなくなりました。F3にあるメモリ領域が少ないのでBetaflightのプログラムが入りきらないからです。
しかし、今でもF3のFCを使用した機体を大事に使用している方も多いです。私のところには Eachine US65 という Tiny Whoop が、まったく使われなくなって段ボール箱にしまってありました。今回はこうしたF3を使用したやや古い機体を、最新のファームウェアを使用して、今まで以上によく飛ぶ機体に蘇らせてみましょう。
今回使用するのは、
Betaflight 4.1 から使用できる RPMフィルター と 最新のESCファームウエア JESC 2.3 48KHz です。
そして蘇らせてみるのは Eachine US65 です。

BetaFlight Performance Edition F3 4.1.1 の導入
冒頭で F3 は Betaflight 4.1 からサポートされなくなったと書きました。その理由はメモリ領域が足らないからでした。そこで出来るだけ不要な機能(汎用的な部分)を削除してプログラム全体をスリムにしたカスタムビルドがあります。BetaFlight Performance Edition F3 4.1.1 です。
この BetaFlight Performance Edition F3 4.1.1 を導入することで最新のRPMフィルターが使用できるようになります。
現在の設定確認と保存
まず現在の設定を保存しておきます。
Betaflight Configurator に接続し、CLIタブで diff all を実行しファイルに保存しておきます。
ただし、Betaflight 4.1 からとそれ以前では PID や フィルター関係が違っていますので設定内容すべて貼り付けることは出来ません。また Betaflight ファームウエアのターゲット名を確認しておきます。US65は CRAZYBEEF3FR でした。最後の FR は内蔵受信機がFrSkyバージョンを表します。
BetaFlight Performance Edition F3 4.1.1 のダウンロード
次に BetaFlight Performance Edition F3 4.1.1 のファイルをダウンロードします。以下のページにアクセスします。
一番上が最新のもので、現在 EA3 のバージョンです。説明の下の Assets をクリックして隠れているhexファイルのリストを展開表示します。

先ほど確認したファームのターゲット名を探します。CRAZYBEEF3FR でしたので探すと4つあります。これは内蔵受信機がFrSkyバージョンだけど、内蔵受信機を使用せずに外付けで別の受信機を使用する時にそれに合ったファイルを選択する事になります。汎用性を削除したためですね。
US65 用に、betaflight_4.1.0_CRAZYBEEF3FR_FRSKY.hex をクリックするとダウンロードが始まります。

Betaflight の更新
ダウンロードした、BetaFlight Performance Edition F3 4.1.1 を使用してFCを更新します。
Betaflight Configurator に接続してファームフラッシャーページを開きます。
右下の ファームウェアの選択[Loacal] をクリックして先ほどダウンロードしたhexファイルを選択します。

全く別のバージョンに更新するので、FCのメモリ内を全部消去します。

更新が完了したら Betaflight Configurator に接続しバージョンを確かめ正しく更新したか確認します。
diff all で保存した以前の設定ファイルを開き、PID や フィルター関係以外をCLIに貼り付け save で保存します。
なお、Betaflight 4.1からOSDのフォントが一部変更されたため一度OSDタブのフォントマネージャーからフォントをアップロードしておきます。
詳細な設定は後ほど行います。
ESCのファームウエアをJESC 2.3 48KHz にする
今回更新する Eachine US65 で使用しているESCのファームウエアは、O_L_5 でした。この真ん中の L はESCで使用しているプロセッサの種類で低速タイプ(BB1)です。ここが H だと高速タイプ(BB2)になります。H は L の倍のスピードで処理できます。
いままでJESCでは H のみ対応でしたが、L に対応した物が試験的にリリースされました。今回はこれを使用します。
なお、JESCでRPMフィルターを使用するにはDSHOTテレメトリーのライセンスを購入しなければなりませんでしたが、Lタイプのファームウエアでは無償で使用できます。これはLタイプのESC内にライセンス情報を記録するところが無いためです。
JESC Configurator 1.2.7 のダウンロード
Lタイプのファームウエアを使用するにはバージョン1.2.7以降が必要です。
以下のサイトへアクセスします。
今回はWindows10で作業をしていますので、
JESC-Configurator_win64_1.2.7.zip
をダウンロードしてZIPファイルを解凍しました。

JESCファームウエアへ更新する
解凍したフォルダ内にあるjesc-configurator.exe を実行します。

FCにバッテリー接続し通電します。USBケーブルでパソコンと接続し、JESC Configurator の Connect をクリックして接続します。
接続したら右下の Read Setup をクリックして現在のESC設定情報を読み込みます。

4つのESCに一括して書き込むために Flash All をクリックします。

Select Target のダイアログが表示されます。一番上がESCのファームウエアのターゲット名です。
その下の JESC Version をクリックします。Lタイプのファームウエアは一番下の2つのみです。
ここでは48KHzバージョンの、JESC 2.3 L-ESC with rpm preview – 48khz PWM を選択します。

Flash します。

4つとも書き終えたら終了です。
すでにDSHOTテレメトリー機能が含まれていますのでこれだけです。unlicensed が表示されていてもかまいません。
アームした時にモーターが回りにくそうだったら、Common Parameters の Startup Power を少し上げてみてください。

Disconnect をクリックして終了します。
現在 JESCの安定板バージョンは、2.2です。24KHzと48KHzがあります。また、no damping バージョンはRPM制御時にブレーキをかけません。そのためブレーキをかけるための電力が要らなくなります。ただし、積極的に回転数が落ちなくなるので機動後のオーバーシュートが大きくなったりします。またディスアームしてもモーターがすぐ止まらない事があります。この場合は停止時だけブレーキをかけるようにESCの設定で Brake on Stop にチェックを入れます。
2.3のバージョンはRC版です。HタイプとLタイプがありそれぞれ24KHzと48KHz版があります。また2.3バージョンではスロットルステップが2000まで対応しています。2.2では24KHz版が1024ステップ、48KHz版が512ステップまでの対応です。そのため2.3バージョンは滑らかなスロットフィーリングが得られます。
周波数は小さいモーターほど高い物が使用できます。080x までは48KHz・96KHz、110x 120x等は48KHzが使用できます。
CPUのオーバークロックとRPMフィルターの設定
F3のボードは実行周波数が低くてRPMフィルターを実行するには処理が間に合いません。そのためにF3チップのクロック周波数を上げて実行するように設定します。これは初めから BetaFlight Performance Edition F3 4.1.1 に組み込まれている機能です。
CPUオーバークロックの設定
Betaflight Configurator 10.6.0 に接続します。CLIタブを開きます。set cpu まで入力するとcpu_overclock が表示されるのでEnterキーで確定します。=を入力すると下図のように選択肢が出ます。ここでは 112MHZ_VCP を選択してEnterキー。save で保存します。または下記コマンドをコピペします。
set cpu_overclock = 112MHZ_VCP
save

120MHZ以上はうまくいかないそうです。112MHZを選択します。またクロックアップするとUSB接続部分もクロックアップしてパソコンと接続できなくなります。したがって_VCPが付いているものを選択してください。これはUSB接続時はクロックアップせず、USBが接続されていない時だけクロックアップする設定です。
RPMフィルターの設定
ESCがLタイプであることとF3ボードであることから設定を変更します。
Betaflight Configurator 10.6.0 の基本設定タブで、モータープロトコルをDSHOT150 にします。双方向DShotをONにします。モーター極数を設定します。

ジャイロとPIDループの周波数を 2kHz/2kHz にします。

PIDタブでダイナミックノッチフィルターを軽めに変更します。幅を0%、Qを250へ。フィルター範囲は小型機は高め大型機は低めですので、ここではHIGHにしました。

モータータブでテストしてみます。プロペラをすべて外してバッテリーを接続します。
スライダーを上へ動かし、RPMが表示されていることを確認します。その下のE: (エラー)が無いことも確認します。DSHOT300だと処理しきれずにエラーが出ます。

この時のCPU使用率は26%でした。

以上でRPMフィルターの設定は完了です。
設定後のフライト
JESC 2.3 48KHz にするだけでフライト時間がかなり伸びます。US65 に 450mAhを使用して6分近く飛びました。
またRPMフィルターの効果も付加されるのでフライトにスムーズさが加わった感じがします。FeedForward を少し大きくしてみるとよりキビキビした感じになります。この辺はお好みでw
最近では、Betafpv の Meteor65 や Happymodel の Mobula6 が大人気ですが、一昔前の US65 でも楽しく飛ばせるようになります。手持ちの機体にF3ボード機があれば試してみてはどうでしょう。
BetaFlight Performance Edition F3 4.1.1 でのRPMフィルターで、セル電圧が電源投入直後に正しく表示されないことがあります。5Vとか表示される。アームしてフライト開始すると正常値に戻ります。何かの電圧スパイクでノイズの影響かもしれないらしいですが、まだ調査中の様です。GPSにも影響してるようです。早く原因究明と対策が行われるといいですね。