ZED-F9Pのファームウェアのバージョンアップが途中で止まる原因と対処方法

ZED-F9Pのファームウェアのバージョンアップは通常u-centerを使って行いますが、処理が途中で止まってしまう事があります。
最悪の場合、USBが認識されなくなったりして、復旧に手こずります。

何故、途中で止まるのかUSBアナライザで調べてみると、ZED-F9Pからの応答が来なくなる事が分かりましたが、その原因は分かりませんでした。

先日、ユーザの方から関連する情報を教えて頂きました。

Can't update firmware on ZED-F9P

この投稿で言っているのは、ファームウェアのバージョンアップを実際に行うプログラムは ubxfwupdate.exe というプログラムであり、通常はu-centerがその実行ファイルを起動しているのだが、それではハングアップする場合があるので、コマンドプロンプトを使って直接実行するという内容です。
そして、直接実行するためにオプションの設定として -p ¥¥.¥COMn の形式でCOMポートを指定するとの事です。

u-centerの次の画面で赤枠の部分が、u-centerが実行する内容です。

この内容で、-p STDIO というオプションがありますが、これは ubxfwupdate.exe というプログラムとu-centerの間のデータのやり取りを「標準入出力」と呼ばれる仕組みで行うという意味です。

この「標準入出力」を使う理由は、バージョンアップの実行状況をu-centerのウィンドウで表示するためと考えられます。
この 「標準入出力」 を使ってデータのやり取りを行う際に何らかの問題が発生して、バージョンアップが途中で止まってしまうようです。
それで、「標準入出力」を使わなければいいので、コマンドプロンプトで ubxfwupdate.exe を実行する事が対処方法となります。

コマンドプロンプト でバージョンアップを行う方法

コマンドプロンプトで ubxfwupdate.exe を実行する方法は次のとおりです。

1.コマンドプロンプトの起動
最初にコマンドプロンプトを起動します。

2.コマンドラインのコピー
実行中のu-centerのCommand line(上のu-centerの画面の赤枠で囲った部分)の内容をコピーします。
コピーした内容をコマンドプロンプトに貼り付けます。

3.-pオプションの設定
-p STDIO の部分を -p ¥¥.¥COMn に変更します。nの部分はZED-F9PのCOMポート番号です。
COMポート番号はu-centerのタイトルバーに表示されています。

4.COMポートの解放
u-centerを閉じるか、u-centerのメニュ Receiver > Connection > Disconnect とクリックし、COMnのポートを解放します。

5.実行
コマンドプロンプトの画面でEnterキーを押して実行します。
実行すると次の画面が表示されます。

開始後、
0.8 Receiver info collected, dowonloading to flash ...
と表示された後、何も表示されませんが、待っていると1分程度で実行結果が表示されます。
Firmware Update SUCCESS と表示されれば正常終了となります。

コメント

コマンドラインで実行すると1分程度でバージョンアップが終わります。
一方、u-centerで実行すると3分以上かかります。

何故、u-centerで実行すると2分も余計に時間がかかるかですが、進行状況の表示と「標準入出力」によるデータのやり取りによるものだと考えられます。
弊社で調査した際は、バージョンアップが途中で止まるのはZED-F9Pからのレスポンスが返ってこないためだったのですが、その原因として2分間で行われている処理が関係している可能性は十分にある気がします。

バージョンアップが途中で止まるのが、コマンドラインで実行すると全て解決されるのかは分かりませんが、有力な解決方法だと思っています。

なお、コマンドラインで実行するとバージョンアップの時間が3分の1で済みますので、ZED-F9Pの数が多い場合は助かります。