はじめに:カスタムファームウェアの構築を目指して
FPVドローン愛好家や組み込み開発者にとって、自らビルドし、必要に応じて改変できる飛行コントローラ(FC)ファームウェアは、究極の自由を意味する。BetaFlightは、その高性能とオープンソース性により、世界中のレーサーや開発者の間で事実上の標準となっている。しかし、膨大なC言語コードとリアルタイム制御の複雑さゆえに、初めて触れる人にとってはハードルが高いのも事実。
本ガイドでは、理論の深掘りではなく、実際に動かすことを最優先とする。STM32H7を搭載したフライトコントローラ上で、BetaFlightのカスタムビルド環境を構築し、基本的なタスクスケジューリングの仕組みを理解したうえで、センサー処理ループの調整までを実践する。途中で遭遇する典型的なエラー——たとえばツールチェーンの不整合、リンク失敗、デバイスドライバーのミスマッチ——についても、その解決法を含めて解説する。最終的には、単なるユーザーではなく、システムを操る「エンジニアパイロット」になるための第一歩を踏み出す。
1. 開発環境の準備:VSCodeとARMツールチェーン
BetaFlightはMakefileベースのビルドシステムを採用しており、ArduinoのようなGUI環境とは異なり、コマンドラインとテキストエディタが主戦場となる。ここでは、Visual Studio Code(VSCode)を中心に、必要なツールを整備する。
1.1 必要なソフトウェアのインストール
- OS:Windows 10/11(macOS/Linuxでも可能)
- エディタ:Visual Studio Code
- コンパイラ:ARM GCC Embedded Toolchain(
arm-none-eabi-gcc) - ビルドツール:GNU Make
- バージョン管理:Git
- 書き込み・デバッグ:STM32CubeProgrammer または OpenOCD + ST-Link
手順:
- ARMツールチェーンのインストール
公式サイトからGNU Arm Embedded Toolchainをダウンロードし、インストール時に環境変数への登録を必ず有効にする。インストール後、PowerShellまたはCMDで以下を実行:
arm-none-eabi-gcc --version
正常に登録されていれば、GCCのバージョン情報(例: 10.3.1)が出力される。
- GNU Makeの導入
WindowsではChocolateyを使用すると簡単:
choco install make
またはGnuWin32などを手動でインストールし、PATHに追加。確認コマンド:
make --version
- Gitの設定
公式インストーラでインストール後、環境変数を正しく設定。
git --version
- VSCodeプラグインの追加
以下の拡張機能をインストールすることで、開発効率が大幅に向上する:
- C/C++(Microsoft提供):シンボルジャンプ、補完、型定義表示
- Cortex-Debug:OpenOCDとの連携によるステップ実行
- Makefile Tools:GUIから直接ビルドタスクを実行可能
重要:すべてのパスに日本語やスペースを含まない。たとえばC:\Users\田中\projectsではなく、D:\dev\betaflightのように英数字のみのパスを使用すること。
1.2 ソースコードの取得
BetaFlightのリポジトリはGitHubで公開されている。最新のメインブランチをクローンしよう。
cd D:\dev
git clone https://github.com/betaflight/betaflight.git
cd betaflight
主要なディレクトリ構成は以下の通り:
src/main/:飛行制御アルゴリズム、IMU処理、PID計算などの中核コードsrc/main/target/:ボード固有のピン配置、周辺機器設定(例: STM32H743)src/main/drivers/:SPI/I2Cドライバ、センサー通信処理Makefile:ビルド対象の選択やターゲット指定の起点
特にsrc/main/target/内のサブフォルダ(例: NAZE, STM32F7, STM32H7)は、使用するハードウェアによって異なるため、自分のボードに対応するものを確認することが必須である。