Armadilloフォーラム

Armadillo-IoT BT00のファームアップデートについて

ume_tsu

2015年4月10日 20時38分

始めて投稿します。ume_tsuと申します。お世話になります。

Armadillo-IoTにてアドオンモジュールのBT00を利用し開発を行っています。

このたびファームウェアのアップデートを行った際に、
シリアルでのファイル転送を行いましたが、

DFU -----この後ファイル転送
ERR
var1="ERR"

END
var2="
END"

と出てしまい、その後まったく反応しなくなってしまいました。

ファームアップデート中は成功するまで電源を切らないとのことでしたので、
繰り返しファイルを転送するも無反応でした。

これはもう利用が不可能な状態なのでしょうか?
この状態から復旧する方法はありませんでしょうか?

よろしくお願いいたします。

コメント

at_takenoshita

2015年4月15日 14時15分

竹之下です。

反応遅くなりまして申し訳ありません。

BT00搭載のRN4020のファームウェアについて、アップデートがあったので
こちらでもファームの書き換えをしようとしているのですが、現状上手くいって
いません。

メーカーからは、純正キットだと書き換えはできるということを聞いているので、
ハードの問題なのか、手順の問題なのか調査中です。

申し訳ありませんが、もう少しお時間いただけますでしょうか。

ume_tsu

2015年4月15日 16時21分

ume_tsuです。

返信ありがとうございました。

Armadilloとアドオンモジュールとのやり取りや、ファームウェアのアップデート時の挙動から、
ファームイメージの転送に失敗しているのではないかと推測いたしました。

Armadilloとアドオンモジュール間のやり取りでは、キーをバッファにプールし、
enterキー押下時にバッファを転送しているよう見受けられます。

ファームイメージを転送する際にはrawのデータを直に転送する必要性があるかと
思われますので、いったんバッファにプールしそれを転送する動作では、難しいように
感じます。

仮にバッファにファームイメージサイズ分のキーが積めるのであればファイル転送後に
enterキー押下で書き込みが可能なのでしょうか。

以上、私見となります。
見当違いな内容でしたら申し訳ありません。

at_takenoshita

2015年4月27日 9時50分

返信が遅くなり、申し訳ありません。

BT00のファームウェアアップデートの方法について、うまくいかない理由と、うまく行く方法が分かりました。
基本的には手順の問題なのですが、気を付けないとモジュールが動作不能になりますので、現在スクリプトを作成しています。

スクリプトでき次第、こちらでも公開したいと思いますので、もう少々お時間ください。

at_takenoshita

2015年6月8日 20時37分

竹之下です。

回答遅くなりまして申し訳ありません。

RN4020のファームウェアをアップデートするスクリプトを用意しました。
http://download.atmark-techno.com/misc/forum/1334/rn4020-fw-upgrade.exp

ファームウェアをアップデートするには、下記手順に従い作業をお願いします。
1. ユーザーランドイメージの更新
スクリプトはexpectで記述していますが、現在のAtmarkDistに含まれているexpect
では、対向がアスキーではなくバイナリを吐き出すとsegmentation faultで落ちるという
問題があるようです。そこで、より新しいバージョンのexpectを含んだユーザーランド
を用意しました。アップデートスクリプトを実行する前に、下記のユーザーランドに
更新してください。
http://download.atmark-techno.com/misc/forum/1334/romfs-ble-update-2015…

2. ファームウェアの入手
Microchip社のWebサイトから最新のファームウェアを入手してください。
http://www.microchip.com/wwwproducts/Devices.aspx?product=RN4020

3. アップデートスクリプトの実行
アップデートスクリプトをダウンロードし、実行権限を付けたうえで、実行してください。

実行例は下記のようになります。

[armadillo ~]# wget http://download.atmark-techno.com/misc/forum/1334/rn4020-fw-upgrade.exp
[armadillo ~]# chmod +x rn4020-fw-upgrade.exp
[armadillo ~]# expect rn4020-fw-upgrade.exp /dev/ttymxc3 RN4020-120-DFU.bin

"/dev/ttymxc3"の部分は、アドオンモジュールの接続先により、適宜読み替えてください。
(CON1の場合/dev/ttymxc3となり、CON2の場合は/dev/ttymxc0となります)

"RN4020-120-DFU.bin"の部分は、Microchip社のサイトから入手したファームウェアの
ファイル名に適宜読み替えてください。

4. リトライ
もし、以下の表示が出たのち、本スクリプトがエラー終了した場合、
Armadillo-IoTの電源を切らずに、"Upgrade Retry Mode"での
書き込みを実施してください。
一度でも電源を切ると、BLEアドオンモジュールが動作しなくなります。

Enter the RN4020 firmware update mode
...OK
 
error: <エラーメッセージ>

"Upgrade Retry Mode"でスクリプトを実行するには、3番目の引数に"1"を指定します。

[armadillo ~]# expect rn4020-fw-upgrade.exp /dev/ttymxc3 RN4020-120-DFU.bin 1

スクリプトのより詳しい説明は、下記ドキュメントを参照してください。
http://download.atmark-techno.com/misc/forum/1334/readme

at_takenoshita

2015年6月8日 20時51分

> 下記のユーザーランドに
> 更新してください。
> http://download.atmark-techno.com/misc/forum/1334/romfs-ble-update-2015…
ライセンス上、ソースのありかも示しておく必要がありますので、上記イメージを作成した
元となるAtmarkDistのアーカイブを下記に置いておきました。
http://download.atmark-techno.com/misc/forum/1334/atmark-dist-ble-updat…

アップデートされたexpectは、AtmarkDist本体に取り込まれる予定です。
(次回移行のアップデートになると思われます。)