RN4020でIoT その2 〜Firmwareバージョンアップ〜

ファームウェアのバージョンアップですが
Microchip社ではWindowsのアプリ
で行うようになっています

iBeaconに対応しているバージョンは
1.33BEC
ですが、現在のバージョンを調べると
1.23.5
になっています

Developer Helpのサイトに
詳しいやり方がありますが
ここから辿れるのは、1.23.5への
バージョンアップツールのみ

何かおかしい

RN4020 Firmware Update
でググると、Developerのフォーラムに
たどり着くことができて、
そこに、1.33BEC対応のWindowsソフト
のリンクにたどり着ける

ダウンロード元のドメインは
microchip社のもののようなの
間違いない

これで、ようやくUpdateできると
おもいきや、ソフトはWindowsのみ

しかたないのでWindowsのPCを
立ち上げインストール

しかし・・・

エラーで止まるではありませんか
シリアル通信でエラーを起こしている
ように見える
1.23.5しか対応していないHelpサイト
だが、よく読むとこんなことが書いてある

* UART hardware flow control (RTS/CTS) must be used

いわゆるUARTのハードウェア制御を使え!と
このハードウェア制御を使うケースは非常に稀で
(過去お目にかかった記憶がない)
Windowsのシリアルポートもデフォルトでは
無効になっている

なるほど、と思い、Windowsの
シリアルポートを設定してみた

しかし、うまくゆかない・・・

前回の記事で参考にさせていただいたサイト
ではモジュール自身がRN4020のCTS端子が
部分の結線がされていないため
工作しなければなりませんが
秋月のモジュールは既に結線されて
いるので工作は不要

では、なんでだ?

よくよく読むと
参考にさせてもらったサイトに
RN4020 Firmware Updateの記事もあり
以下のようなおまじないが必要だとのこと

 

RN4020のサービスの
SR,32000000
とは、マニュアルに直接書いてない

ビット毎に機能が割り振られている
のから推測すると

02000000UARTのハードウェアフローセット
(これは、Update時のUARTの指定)

30000000

10000000(UART)へのオートアドバタイズと

20000000MLDPの設定の合わせ技
だと思われる

確かに、エラーメッセージが

*Unable to communicate with RN4020

なのでシリアル通信がコミュニケート
できていないとは言ってない

RN4020さんとのやりとりすることを
考えればMLDPが必要で、自動でUARTに
レスポンス(アドバタイズ)が必要になる
ということで理屈は合うが
こんなのわかるわけない

どうも、Updateをさせまい、という気が
してならない

とにかく、これでUpdateができたので
Beaconの発信ができる

次は、I2CでBME280にアクセス

6年前