FC:DarwinFPV ELRS2.0 F411 15A Bluejay AIO の ELRS を 2.0 から 3.0 にアップデートした

DarwinFPV TinyAPE 2.5inch Tooth pick や、これに使われている FC を単体で買って他の機体でも使っていました。
ただ、これが ELRS2.0 な為に送信側のファームは “2.1.x-maintenance” だし、その他の機体も同じバージョンで揃えていました。
しかし、久々に新しい機体を組み立てて、単体の ELRS に同じバージョンを書き込もうとしたらコンパルが通りません。
でも運用する上で、違うバージョンの混在は避けたい。
仕方が無いので、この機会に 3.0 に上げた時の記録です。
※ 私の環境での話であり、他の環境の結果などを保証するものではありません。

FC のファームを単純にバージョンアップしても動かない。カスタム定義が必要。

FC に ELRS も含まれているので、ELRS のバージョンを上げるには FC のファームを上げる必要があります。
ということで、4.3.1 から 4.4.3 にバージョンアップしました。
ただし、カスタム定義に “GYRO_SPI_MPU6500 ACC_SPI_MPU6500” と設定しておく必要がありました。

行けそうなので、送信側の ELRS も 3.0 にしました。
更に必要な設定も済ませて少し飛ばした感じでは OK でした。
もう少し長く飛ばしたりして確認する必要はありますが。
この FC の為に他の機体も 2 にしていたので、順次 3.0 に上げて行こうと思います。

FC の選択を “BETAFPVF4SX1280” → “DARWINF411” にすれば良いかもしれない(2024/01/30 追記)

自身の環境では自動検出で “BETAFPVF4SX1280″ だったのですが、”DARWINF411” を選べばカスタム定義も不要なのかもしれません。(未確認。次回ファームウェア更新する際の備忘録。)
メーカーサイトの FC Firmware で dump を見た所、4.4.1 で board_name が DARWINF411 でした。

カスタム定義を設定しないとどうなる?

以降は、設定できるまでの話になりますので興味のある方はどうぞ。

まず、カスタム定義が必要とか知りませんから、空欄のままファームを更新する訳ですよ。
そうすると、基本設定で「Gyro なし」になりました。
セットアップに表示される機体のイメージも全く動かず、水平キャリブレーションも不可です。
ジャイロが検出されてないか、もしくは CLI で何か設定が必要なのかと思い、諦めて一旦前のバージョンに戻してみることにしました。
が、4.3.1 に戻し、バックアップしておいた設定も CLI から戻したんですが、結果が変わらない。
進むことも戻ることもできず、詰んだと思いました。

復活できないか、ググって解決策を探る。

この FC を諦めたとしても、同じ FC の機体が他にもありますので、何とかならないかググって解決策を探ります。
そして見つけたのが、

What’s New in Betaflight 4.4 | How to Update?

に書かれていた “MISSING GYROS IN 4.4.0” の箇所。
ありがたい。何とかなるかも。

解決策を試す。

OSCAR 氏が Betaflight の Discord からコピペされた内容が

Copy and pasted from BF discord

:Betaflight: MISSING GYROS IN 4.4.0 :Betaflight:

First thing to check is, “are you flashing the correct target?”. Ask yourself, “do you have a clone?”. This may explain why some hardware appears “missing” as not all clones are complete clones. Even if our “auto detect” reports that you have a given target, it only detects what was previously flashed, which may be wrong.

If you are certain it is the right target, then try flashing the “core” option, and then check the output of the status command in the CLI. This will tell you the gyro.

You can then enter the GYRO details below into the custom defines (expert mode only) option on the firmware flashing tab. e.g. for BMI270 you would enter ACCGYRO_BMI270, for MPU6000 you would enter both GYRO_SPI_MPU6000 and ACC_SPI_MPU6000 separated with a space.

BMI270 => ACCGYRO_BMI270
BMI160 => ACCGYRO_BMI160
MPU6000 => GYRO_SPI_MPU6000 ACC_SPI_MPU6000
MPU6500 => GYRO_SPI_MPU6500 ACC_SPI_MPU6500
MPU9250 => GYRO_SPI_MPU9250 ACC_SPI_MPU9250
ICM20602 => GYRO_SPI_ICM20602 ACC_SPI_ICM20602
ICM20689 => GYRO_SPI_ICM20689 ACC_SPI_ICM20689
ICM42605 => GYRO_SPI_ICM42605 ACC_SPI_ICM42605
ICM42688P => GYRO_SPI_ICM42688P ACC_SPI_ICM42688P

https://oscarliang.com/betaflight-4-4/#comment-162588

ということで、どうやら使われているジャイロによって設定が必要っぽい。
ただ、使われているジャイロが何かなんて知らない。

使っているジャイロは何か?

先の回答の通り、FC のファーム更新を “コア部のみ” で行って、CLI から status で調べられるようなので、早速やりました。

ジャイロは MPU6500 を使っている。

CLI から status を実行した結果、

MCU F411 Clock=108MHz (PLLP-HSE), Vref=3.30V, Core temp=30degC
Stack size: 2048, Stack address: 0x2001fff0
Configuration: CONFIGURED, size: 3752, max available: 16384
Devices detected: SPI:1, I2C:0
Gyros detected: gyro 1 locked dma
GYRO=MPU6500, ACC=MPU6500
OSD: MAX7456 (30 x 13)
BUILD KEY: 4d27fbee02c99416610e0de0128778de (4.4.3)
System Uptime: 10 seconds, Current Time: 2023-11-18T04:45:33.539+00:00
CPU:24%, cycle time: 125, GYRO rate: 8000, RX rate: 15, System rate: 9
Voltage: 1 * 0.01V (0S battery - NOT PRESENT)
I2C Errors: 0
SD card: Not configured
Arming disable flags: RXLOSS ANGLE CLI MSP MOTOR_PROTO

ということで、”GYRO=MPU6500, ACC=MPU6500″ ということが分かりましたので、ファーム更新時に該当する設定をカスタム定義にすれば OK でした。
めでたしめでたし。

コメント