11月25日発売 書籍『Arduinoと3Dプリンタでロボットを作ろう』を出させて頂きました!

【TinyWhoop】Silverwareファームウェアの書き換え手順!(NFE_Silverware)

Silverwareの事を少し勉強しようと思い先日お手軽Silverware搭載機を1機組んでみました。
Betaflightもまだまだ勉強中ですが、Silverwareを使うのはEachine E011以来かなりご無沙汰となります。

Silverwareといってもいろいろ枝分かれしてBoldClash-BWHOOP-B-03やNFE_Silverwareなどがあるようで・・・
E011や開局後初めて組んだ機体はSilverwareにファームウェアを書き換え、AngleモードのほかAcroモードでも飛ばせるようにして練習していました。

そして最近、Armor65 Liteがお仲間に加わり、技適を取得済みでデフォルトでNFE_Silverwareが搭載、これからTiny Whoopをはじめようとお考えの方やはじめたばかりの方などに非常に最適な機体になるかと思います。

【Makerfire Armor65 Lite】技適取得!716モーターでパワフル、これからはじめるTinyWhoop練習機として最適!

そしてこのArmor65 Liteもある程度飛ばし込んでみたので、自分好みの機体調整もやってあげたいなと・・・

しかしいきなりArmorくんのファームウェアを書き換えるのが少し抵抗がありまして・・・
というのも、Eachine E011やはじめての自作機(Beta Lite FC使用)ではBoldClash-BWHOOP-B-03では飛んでくれるのにNFE_Silverwareではうまく飛んでくれなく・・・1年ほど経ちましたが問題解決には至っていませんでした。

そこで前回、Silverware環境をテスト出来る機体を組んでみてようやく問題が解決できました!

【Tiny Whoop】Silverware勉強用にBeta Lite FCでお手軽機体を1機作ってみました!

非常に簡単なことでしたが解決したことで、これからSilverwareをいろいろ試すことができます。
またArmor65 Liteでもファーム書き換えにより好みの機体調整が出来そうです。

ということで今回、ST-LINK V2を使ってSilverware搭載FCのファームを書き換える作業をご紹介します。

今回、ソースの変更等にKeil uVision5を使い、FCにファームウェアを書き込むのにSTM32 ST-Link utilityというソフトを使いました。
ともにWindows環境での動作となります。
Mac環境でも同様な事が出来るソフトはありますが今回はこちらを使っていこうと思います。

【TinyWhoop】Silverwareファームウェアの書き換え手順!

まずはファームウェア書き換えを行うために必要なソフトを事前にPCにインストールしておきます。(Windowsのみ対応)
あとFCのファームを書き換えるためにPCと接続するST-LINK V2が必要となってきます。
前回、FCのSCLK・SDIO・GND端子にコネクタ(1.25ピッチ3ピンコネクタ)を取り付けました

また、ST-LINK V2側(1.5mmピッチ)からFC側(FCに取り付けた1.25ピッチコネクタ)に変換するケーブルもあると便利です。

必要なソフトウェアをインストール!

①STM32 ST-Link utility

STM32 ST-Link utility】は、ST-LINK V2を使用しFC内のファームウェアを書き換えるために使用します。

②Keil uVision5

Keil uVision5】は、Silverwareのソースを修正するために使用します。

MEMO
①②のダウンロードには簡単なユーザー登録が必要となります。

③NFE_Silverware

NFE_Silverwareは、Silverwareのソースファイルとなります。
今回こちらを修正していきますが、事前にダウンロードしてフォルダを解凍しておいて下さい。

FCに入っているファームウェアを消去する!

上記必要なソフトウェアのダウンロード&インストールが完了したら実際にFCのファームウェアの書き換え作業をやっていきます。

まずはFCに入っているファームウェアを一旦消去します。
この作業ははじめての場合のみ1度だけ実行する必要があります。
もともと入っているファームには保護?がかけられているようで一度元のファームを消去することにより、以後自由に書き込みが出来る状態になります。

注意
FCからファームウェアを消去するので新しくSilverwareファームを書き込まないと使えなくなるので注意して下さい!

ST-LINK V2を接続!

今回使っているFCは「BETAFPV Lite Brushed Flight Controller」となり前回ST-LINK V2を接続出来るようにプラグを取り付けました。
他のSilverware対応FCでも同様の作業手順で問題ないかと思います。

使う端子は、SWCLK・SWDIO・GND端子となります。
ST-LINK V2の対応する端子に接続しPCに繋ぎます。

STM32 ST-LINK utilityを起動!

STM32 ST-LINK utilityを起動。
FCにバッテリーを接続し[コンセントマーク]をクリックしコネクトします。

MEMO
FCにバッテリーを接続後、すぐにコネクトボタンを押さないと認識されない事がよくあるようです!

はじめて接続するFCの場合、[Can not read memory!]と表示されるかと思いますがそのまま[OK]で次に進みます。

次に【Target】から【Option Bytes】を選択。

[Read Out Protection]で[Level0]を選択し【Apply】でファームウェアの消去がはじまります。

注意
この作業ははじめてFCに接続の際に一度だけ必要な作業となります。
そして[Read Out Protection]の項目は初期値は【Level1】となっていますが、必ず【Level0】に設定して下さい!
FCが使えなくなる場合があるようです!

FC内のファームウェアの消去が完了したら下図のボタンを押し一旦接続を解除しておきます。

上記作業は初回のみ1度だけ行う必要があります。
次回以降は次の「ソースの修正」の項目からで大丈夫です。

ソースの修正!

次にSilverwareのソースを修正していきます。
事前にインストールしておいたKeil uVision5を起動します。
初回起動時にはパックインストーラーが起動しこのような画面が立ち上がると思います。

「STMicroelectronics」から必要なパック(Keil:STM32F1xx_DFP)をインストールしておきます。

次に[File]から[Open]でSilverwareのソースを選択します。

MEMO
今回、NFE_Silverwareで話を進めていきます。
上記③で事前にダウンロードしておいたNFE_Silverware-master(ZIPファイル)を解凍したフォルダ内のsilverware.uvprojxファイルを選択します。
(NFE_Silverware-master /Silverware/ silverware.uvprojx

ここからソースの修正(変更)を行なっていきます。
今回、バインドして飛ばせる状態になるまでの主要部分を見ていきます。

画面左の[config.h]ファイルをダブルクリックし修正を行います。

ソース修正(FCの選択)

まずは使っているFCの選択です。
使用するFCを選択し頭の(//)を外します。(その他は//を入れ非選択状態に)
今回はBeta Lite FCを使っているので、#define BWHOOPを選択。

#define BWHOOP

ソース修正(プロトコルの選択)

次に送信機のプロトコルの選択。
Beta Lite FCは通信プロトコルにBayangが使われています。
そして今回マルチプロトコルモジュールを搭載した送信機を想定して設定を進めていきます。

【技適モジュール】Frsky Taranis Q X7Sに技適モジュール、『Jumper JP4IN1 Multi Protocal Radio Transmitter Module』をようやく導入できました!

よって送信機のプロトコル選択はこのようになります。

#define RX_BAYANG_PROTOCOL_TELEMETRY_AUTOBIND

そして送信機のタイプは以下を選択。

#define USE_MULTI

上記設定により送信機とFCをバインドし飛ばせる状態となります。(送信機側にCH5 ARMを設定する必要がありますが!)
そのほかにも少し機体設定部分を見ておきましょう。

アングルリミット

CH設定

電圧設定

RATES & EXPO設定

主要部分のみを見てみましたが、フィルターやPID設定など・・・あとはお試し下さい!

ソースをコンパイル!

以上ソースの修正が完了したら[Project]から[Build Target]ボタン(F7キーでも可)を押し、ソースファイルのコンパイルを行います。

エラー等ない事が確認できたら完了です。
次の項目で実際にFCに書き込んでいきます。

MEMO
コンパイルされたファイル(FCに書き込むファイル)は、
「NFE_Silverware-master」フォルダ内の「Silverware」→[Objects]nfe_silverware.hexファイルとなります。
[NFE_Silverware-master/Silverware/Objects/nfe_silverware.hex

FCにファームウェアを書き込む!

以上、ソースの修正が完了したらFCに書き込んでいきます。

ST-LINK V2を使いPCとFCを繋げます。
「STM32 ST-LINK utility」を立ち上げ、FCにバッテリー接続後コネクトボタンを押し接続します。

【Target】→【Program & Verify】から先ほど作成したnfe_silver ware.hexファイルを選択します。

【NFE_Silverware-master/Silverware/Objects/nfe_silver ware.hex】

【Start】でFCにファームウェアを書き込んでいきます。

以上でファームウェアの書き換え作業は完了です。

ペラ&モーターの配置!

これで自分好みの機体設定で飛ばせる状態になりましたが、少しペラの構成を見ておきましょう。
今回ペラ構成に関してはソース部分で変更していません。(できるのかな?)
NFE_Silverwareではデフォルトでペラ構成はProps Outに設定されています。

MEMO
BoldClash-BWHOOP-B-03などではこの構成にはされていないようです。

ペラ構成はProps Out(モーター回転方向を逆転設定)にする必要があります。

【Tiny Whoop】激しいコーナーリングで機体がガクッと落ち込む『Prop wash』。ペラ構成を反転させた『Props Out』で改善したという話!

ペラ&モーターの入れ替えを行い完了となります。

まとめ!

今回、Silverwareを使うにあたりファームの書き換え手順を見ていきました。

初めてだとかなり取っ付きにくいのですが、手順さえ分かれば冒頭にご紹介したArmor65 Liteや今回使った安価なFCで作った機体でも自分好みの機体調整なんて事が出来ますね!

1 COMMENT

yoshi

Keil uVision5でARM-compilerのバージョンが違うってコンパイル出来ない原因って分かりますでしょうか?

返信する

コメントを残す