プロポについて(その2) 〜 firmwareの書き換え 〜

書き込み用アプリケーションとDeviation(Nightly build)のダウンロード

Deviation - Homeを開き、"Downloads"リンクをクリック。

DeviationTXのページ

"DFU USB Tool"をクリックしてファームウェア書き込み用アプリケーションのダウンロードページへ。

DFU USB Toolのダウンロードページへのリンク

"Download"ボタンをクリックして、"DeviaionUpload-0.9.0.jar"をダウンロードし適当なディレクトリーに保存。

Deviation Uploaderのダウンロード

"Downloads"リンクからダウンロードページへ戻る。

Downloadsページへ

"Nightly Builds"リンクをクリックしてダウンロードページへ

Nightly Buildsダウンロードページへのリンク

Nightly Buildの日付を選択

Buildされた日付の選択

T8SG-V2用(plusはOLEDディスプレイ用なので使用できない)のダウンロードボタンをクリックしてダウンロードし、
適当なディレクトリに保存する。

対象機種選択

ダウンロードしたファームウェア(deviation-t8sg_v2-v5.0.0-xxxxxx.zip)は適当な作業用ディレクトリーに解凍する。

myname@myhost:~/tmp$ unzip ~/Downloads/deviation-t8sg_v2-v5.0.0-c84450e.zip -d 2021-06-11/
Archive:  /home/myname/Downloads/deviation-t8sg_v2-v5.0.0-c84450e.zip
  inflating: 2021-06-11/deviation-t8sg_v2-v5.0.0-c84450e.dfu  
  inflating: 2021-06-11/UPDATING.md  
  inflating: 2021-06-11/datalog.bin  
 extracting: 2021-06-11/errors.txt   
  inflating: 2021-06-11/hardware.ini  
   creating: 2021-06-11/language/
  inflating: 2021-06-11/language/lang.af  
  inflating: 2021-06-11/language/lang.nl  
  inflating: 2021-06-11/language/lang.pt  
  inflating: 2021-06-11/language/lang.ja  
  inflating: 2021-06-11/language/lang.it  
  inflating: 2021-06-11/language/lang.es  
  inflating: 2021-06-11/language/lang.fr  
  inflating: 2021-06-11/language/lang.de  
  inflating: 2021-06-11/language/lang.ru  
  inflating: 2021-06-11/language/lang.cn  
  inflating: 2021-06-11/language/lang.ro  
  inflating: 2021-06-11/language/lang.hu  
  inflating: 2021-06-11/language/lang.tw  
   creating: 2021-06-11/layout/
  inflating: 2021-06-11/layout/empty.ini  
  inflating: 2021-06-11/layout/default.ini  
   creating: 2021-06-11/media/
  inflating: 2021-06-11/media/toggle2.bmp  
  inflating: 2021-06-11/media/toggle0.bmp  
  inflating: 2021-06-11/media/5x7.fon  
  inflating: 2021-06-11/media/splash.bmp  
  inflating: 2021-06-11/media/10narrow.fon  
  inflating: 2021-06-11/media/noicon.bmp  
  inflating: 2021-06-11/media/48normal.fon  
  inflating: 2021-06-11/media/04b03.fon  
  inflating: 2021-06-11/media/sound.ini  
  inflating: 2021-06-11/media/18bold.fon  
  inflating: 2021-06-11/media/12normal.fon  
  inflating: 2021-06-11/media/toggle3.bmp  
  inflating: 2021-06-11/media/config.ini  
  inflating: 2021-06-11/media/10normal.fon  
  inflating: 2021-06-11/media/14bold.fon  
  inflating: 2021-06-11/media/toggle1.bmp  
   creating: 2021-06-11/modelico/
  inflating: 2021-06-11/modelico/plane.bmp  
  inflating: 2021-06-11/modelico/multi.bmp  
  inflating: 2021-06-11/modelico/heli.bmp  
   creating: 2021-06-11/models/
  inflating: 2021-06-11/models/model16.ini  
  inflating: 2021-06-11/models/model11.ini  
  inflating: 2021-06-11/models/model24.ini  
  inflating: 2021-06-11/models/model17.ini  
  inflating: 2021-06-11/models/model30.ini  
  inflating: 2021-06-11/models/model15.ini  
  inflating: 2021-06-11/models/model13.ini  
  inflating: 2021-06-11/models/model21.ini  
  inflating: 2021-06-11/models/model3.ini  
  inflating: 2021-06-11/models/model27.ini  
  inflating: 2021-06-11/models/model28.ini  
  inflating: 2021-06-11/models/model12.ini  
  inflating: 2021-06-11/models/default.ini  
  inflating: 2021-06-11/models/model20.ini  
  inflating: 2021-06-11/models/model2.ini  
  inflating: 2021-06-11/models/model6.ini  
  inflating: 2021-06-11/models/model10.ini  
  inflating: 2021-06-11/models/model1.ini  
  inflating: 2021-06-11/models/model26.ini  
  inflating: 2021-06-11/models/model29.ini  
  inflating: 2021-06-11/models/model5.ini  
  inflating: 2021-06-11/models/model23.ini  
  inflating: 2021-06-11/models/model19.ini  
  inflating: 2021-06-11/models/model4.ini  
  inflating: 2021-06-11/models/model7.ini  
  inflating: 2021-06-11/models/model8.ini  
  inflating: 2021-06-11/models/model22.ini  
  inflating: 2021-06-11/models/model18.ini  
  inflating: 2021-06-11/models/model9.ini  
  inflating: 2021-06-11/models/model14.ini  
  inflating: 2021-06-11/models/model25.ini  
   creating: 2021-06-11/template/
  inflating: 2021-06-11/template/4ch_dr.ini  
  inflating: 2021-06-11/template/4chsmpl.ini  
  inflating: 2021-06-11/template/6chplane.ini  
  inflating: 2021-06-11/template/6ch_heli.ini  
  inflating: 2021-06-11/template/heli_std.ini  
  inflating: 2021-06-11/tx.ini       
 extracting: 2021-06-11/debug-t8sg_v2-v5.0.0-c84450e.zip  

PC側の準備

Java ランタイムのインストール

PCからT8SGへファームウェアを書き込むためのソフト"DeviaionUpload-0.9.0"はJavaで書かれているので、
PCにもJavaランタイムをインストールする。

myname@myhost:~$ sudo apt install openjdk-11-jre

Deviation Uploaderの実行時にWarningが出力されるのでcanberra-gtk-moduleもインストールしておく。

myname@myhost:$ apt install libcanberra-gtk-module

udevの設定

DFUモードで起動したT8SGをUSB接続し、読み書きができるように、次の内容のudev rulesファイルを、
"45-stdfu-permisshions.rules"というファイル名で、/etc/udev/rules.d/に保存する。

# DFU (Internal bootloader for STM32 MCUs)
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11",  MODE="0664", GROUP="plugdev" 

保存した後はsystemd-udevdに読み込ませる。

myname@myhost:~$ sudo udevadm control -R

"plugdev"グループに入っていなければ追加する。

myname@myhost:~$ sudo usermod -a -G plugdev myname

<参考>
github.com

ファームウェアの書き換え

DeviationUploader の起動

"DeviationUpload-0.9.0.jar"を保存したディレクトリに移動し、実行。

myname@myhost:~/Deviation$ java -jar ./DeviationUpload-0.9.0.jar

起動したらDFUタブをクリック

Deviation Uploader

T8SGの接続とdfuファイルの書き込み

T8SG(電源OFF)とPCをUSBケーブルで接続。
Exit キーを押しながら電源ボタンを押し、T8SGをDFUモードで起動。

Exitキーを押しながら電源を入れてDFUモードで起動する

"Transmitter"が"Devo 7e"と表示され、"Name"、"Start Address"などが表示されれば接続成功。
"File"の右側の"..."ボタンをクリックしてファイル選択ダイアログを表示。

プロポの認識成功

あらかじめ解凍してあったファームウェアディレクトリの中の"deviation-t8sg_v2-v5.0.0-xxxx.df"を選択し
"OK"ボタンをクリック。

ファイル選択ダイアログ

ファイル名などを確認したら”Send”ボタンをクリック。

ファイル選択後

書き込み完了のダイアログが表示されたら、Debiation Uploaderを終了し、 T8SGの電源を落とす。

書き込み完了

システムファイルの書き込み

T8SGとPCを接続したまま、T8SGの”Confirm key”を押しながら電源をOnにし、USBモードで起動する。
USBモードで起動するとT8SGのディスプレイにはUSBマークが表示され、PC側ではUSBメモリーとして認識される。

USBモードでの起動

ファームウェアを解凍したフォルダ内のファイルをT8SGのストレージにファームウェアを解凍したフォルダの内容を全てコピー(容量が足りない場合はストレージを一度全て消去してかかコピーした方が良いかも)する。
コピーが完了したらPC側でストレージをUnmountしてT8SGの電源を落とし、USBケーブルを抜く。
普通にT8SGの電源を入れて起動できれば完了。