100g未満FPVドローンの製作 – ファームウェア(Ardupilot)のカスタム化とインストール
今回は100g未満FPVドローンのフライトコントローラ(Flywoo GOKU GN 405S 20A AIO)にカスタム化したArdupilotファームウェアをインストールおよびアップデートする方法について記載します。
Ardupilotのカスタム化
部品選定(1)で述べましたが、Flywoo GOKU GN 405S 20A AIOはSTmicro社のSTM32F405OG MPU(1MB Flash、192KB SRAM)を搭載しています。標準のファームウェアは以下のFTPサイトからダウンロードできます。
ArduPilot firmware : /Copter/stable/FlywooF405S-AIO
しかしながら、STM32F405OG MPUのフラッシュメモリが1MBしかないため標準のファームウェアにはオプティカルフロー関連のドライバーが搭載されていません。従って、オプティカルフローをフライトコントローラに接続しても認識されません。
幸いにもArdupilotではファームウェアのカスタム化サイトがあります。このサイトではArdupilotの機能やセンサー類のドライバーが選択可能であり、標準ファームウェアに搭載されている必要の無いセンサードライバー等を除外し、必要なドライバーのみを追加するなどして1MBのメモリ制限内で、独自のファームウェアをビルド可能です。ビルド等はサイト内のサーバーで自動的に行われ、生成されたカスタム化ファームウェアはサイトから自動的にダウンロードされます。独自ファームウェアのビルド方法は以下の通りです。
- Ardupilotのカスタム化サイトにアクセスする。
- 画面上部の「Add a build」ボタンをクリックすると、ビルド画面が表示される。


- カスタム化ビルド画面で、カスタム化の条件を設定する。(以下、条件設定の一例)
- Select Bard欄①で「Flywoo 405S AIO」を選択する。
- Compassプルダウンメニュー②において「QMC5883L」、「QMC5883P」にチェックを入れそれ以外はすべてチェックを外す。
- MSPプルダウンメニュー③において「MSP OpticalFlow」、「MSP rangefinder」、「MSP telemetry and MSP OSD」にチェックを入れ、それ以外はすべてチェックをはずす。
- Rangefinderプルダウンメニュー④において「Rangefinder – VL53L0X」、「Rangefinder – VL53L1X」、「Rangefinder」にチェックを入れ、それ以外はすべてチェックをはずす。
- ビルド画面下方の「Generate build」⑤をクリックしてビルドを開始する。

- ビルドを開始すると、カスタム化サイトに戻り、開始したビルドの状況が画面に表示される。
- ビルドが正常に終了するとStatus欄が「SUCCESS」に変わり、ビルドされたファームウェア圧縮ファイル(Copter-FlywooF405S-AIO-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx.tar.gz:xxxxx….は暗号化された番号)が自動的にダウンロードされる。ビルドに失敗すると「FAILURE」が表示されビルドが終了する。失敗した場合は、Logファイルの内容を確認し、フラッシュメモリの容量オーバの場合は「Add a build」をクリックし、カスタム化ビルド画面でビルド条件を見直し、上記1.~4.を繰り返す。

ダウンロードされたファイルを解凍すると以下の6個のファイルに分かれます。フライトコントローラに初めてファームウェアをインストールする場合には「arducopter_with_bl.hex」を用い、ファームウェアをアップデートするには「arducopter.apj」を用います。「extra_hwdef.dat」はカスタム化のための条件設定データファイルです。

ファームウェアのインストール
Flywoo GOKU GN 405S 20A AIOに初めてArdupilotファームウェアのインストールする方法として以下の2通りあります。どちらもファームウェアファイルとして上記のaducopter_with_bl.hexをPCに読込み、バイナリファイルに変換してインストールします。
- 購入時にフライトコントローラにインストールされているファームウェアBataflightとPCソフトのBataflight Configuratorを用いてインストールする。
- STmicro社のインストールツールSTM32CubeProgrammerを用いてインストールする。
2.の方法はフライトコントローラボードにファームウェアBataflightがインストールされていなくてもインストールが可能ですので、本ドローン作製には2.の方法を用いました。STM32CubeProgrammerは以下のサイトからダウンロードが可能です。
STM32CubeProg | Software – STMicroelectronics
インストールの手順は以下の通りです。
- バッテリーを外した状態で100g未満FPVドローンのSHコネクタとSHコネクタ-USB変換ボードを接続する。このときSHコネクタ-USB変換ボードとPCとは接続しない。
- FCカバー上部のGPSの隣に配置した穴に六角ドライバーなどを挿入してフライトコントローラのブートスイッチを押したままの状態(ON状態)にし、SHコネクタ-USB変換ボードとPCをUSBケーブルで接続する。これによりフライトコントローラはブートモードで起動する。
- フライトコントローラ上の赤色LEDが点灯状態になる。
- PC上でSTM32CubeProgrammerを起動し、aducopter_with_bl.hexをSTM32CubeProgrammerに読み込んで、フライトコントローラに書き込む。
以下のページにSTM32CubeProgrammerを用いたファームウェアの書き込み方法を示します。
ファームウェアのアップデート
ファームウェアのアップデートは、地上局制御プログラムMission Plannnerを用いて行います。Mission PlannerはWindows上のアプリでArdupilotのサイトからダウンロードが可能です。Mission PlannerはArdupilotのバージョンが更新されると自動的に更新表示が出て、更新を促します。Mission Plannerの更新手順でアップデートすると、標準のファームウェアがインストールされカスタム化でドライバーを搭載したオプティカルフロー等が認識されなくなります。したがって、アップデートするときは最新のArdupilotバージョンを再度カスタム化してそのファームウェアをアップデートする必要があります。以下のページにアップデートの方法を示します。
以上、今回はArdupilotファームウェアのカスタム化、インストールの方法およびアップデートの方法を説明しました。次回からArdupilotのパラメータ設定について記載していきます。






