nanoVNAの開発者TT@北海道さんがファームウェアVer.0.1.0を公開されたのでアップデートを行ってみました。
Ver.0.1.0にはバッテリー残量表示機能が追加されましたが、その機能を使用するためには回路図には書かれていますが実際には実装されていないD2を追加する必要があります。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-17_15h50_50.jpg)
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/IMG_4257-コピー.jpg)
本来はSMDのショットキーダイオードを接続すべきですが、手持ちが無かったので一般的なスイッチングダイオードを取りつけました。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/IMG_4258.jpg)
次にファームウェアの書込ですが、ダウンロードしたnanovna-firmware-0.1.0.zipファイルを解凍すると3つのファイルが展開されます。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-17_15h54_50.jpg)
dfuファイルがあれば簡単だったのですがありませんので今回はST-Linkを使用して書込を試してみることにしました。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/IMG_4268.jpg)
nanoVNA基板にあるP2とかかれた端子とST-LINKV2を接続します。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/IMG_4257.jpg)
nanoVNA ——– ST-LINKV2
SWDIO <———-> ②SWDIO
SWCLK <———-> ④SWCLK
GND <———-> ⑥GND
NRST <———-> ①RST
VDD <———-> ⑧VDD 3.3V
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/IMG_4260.jpg)
nanoVNAとST-LINKV2を接続した後PCにST-LINKV2を接続しSTM32 ST-LINK Utilityを起動します。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-17_15h02_00.jpg)
TargetメニューのConnectでST-LINKV2とコネクトし、エラー無くDeviceMemoryが表示されることを確認します。
その後、ファイルメニューのOpenFileで「ch.bin」ファイルを読み込みProgram&VerifyでnanoVNAに書き込みます。
正しく書込が出来ていれば画面左上にバッテリーアイコンが表示されます。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/IMG_4262.jpg)
メニューに「Version」が追加されています。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/IMG_4264.jpg)
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/IMG_4267-1.jpg)
dfu型式ファイルを使ったアップデート
ファームウェアがdfu型式で提供されている場合は本体のみでアップデートが出来るようです。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-17_16h13_30.jpg)
dfuファイルを使用するためにはnanoVNAをDFUモードでPCに接続する必要があります。
そのためにはnanoVNA基板にあるP1と書かれた端子のVDDとBOOT0をショートしてPCにUSBで接続します。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/IMG_4257-DFU.jpg)
接続するとデバイスマネージャーに「ほかのデバイス STM32 BOOTLOADER」と表示される場合は右クリックでドライバーの更新を行い「STM Device in DFU MODE」で登録されていることを確認します。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-17_14h22_54.jpg)
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-17_14h23_10-1.jpg)
STMのサイトからSTSW-STM32080(DFUSe Demo)をダウンロードします。
解凍してDfuSe_Demo_V3.0.6_Setup.exeを実行しDFUSe Demoをインストールします。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-17_16h27_07.jpg)
インストールしたDFUSe Demoを実行して STM Device in DFU MODEが認識されていることを確認します。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-17_14h25_18.jpg)
「Choose」ボタンでアップデートするdfuファイルを読み込み「Upgrade」でアップデートを行います。
2019年9月19日 追記
DfuSe Demoに付いてくるDFU File Managerを使用するとbinやhexファイルからdfuファイルを生成出来ることがわかりました。
ファームウエア0.1.1がアップされたので DFU File Manager を使用してアップデートしてみました。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-19_07h45_55.jpg)
DFU File Manager を起動するとDFUファイルを生成するか、DFUファイルからbin/hexファイルを取り出すか聞いてきますので「GENRATE」を選択します。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-19_07h45_20.jpg)
DFU File Manager が起動するのでhexを変換するなら「S19orHex」を選択してhexファイルを指定します。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-19_07h48_07.jpg)
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-19_07h48_14.jpg)
「Generate」でDFUファイル保存ダイアログが表示されるのでDFUファイル名を指定して保存します。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-19_07h48_33.jpg)
nanoVNAをDFUモードに設定しPCに接続してからDfuSe Demoを起動します。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-17_14h25_18-1.jpg)
「Choose」で先ほど生成したDFUファイルを読み込みます。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-19_07h51_18.jpg)
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-19_07h51_22.jpg)
「Upgrade」をクリックすると確認ダイアログが表示されるので「はい」をクリックします。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-19_07h51_27.jpg)
Upgrade successful!が表示されれば成功です。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-19_07h51_43.jpg)
念のため「Verify」を行います。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-19_07h51_48.jpg)
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-19_07h51_52.jpg)
無事0.1.1にアップデート出来ました。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/IMG_4269.jpg)
nanoVNAをDFUモードに切り替える際にバックパネルを外さなくても良いようにL形のピンヘッダーを取りつけました。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/IMG_4270.jpg)
しかしファームウェアVer.0.1.0からBOOT0をショートしなくてもメニューからDFUモードに変更出来ることがわかりました。
(JG3PUP 山口さんからツイッターで教えて頂きました、ありがとうございます!)
メニューの「CONFIG」を選択すると「→DFU」が追加されています。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/IMG_4271.jpg)
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/IMG_4272.jpg)
「RESET AND ENTER DFU」を選択するとDFUモードに切り替わります。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/IMG_4273.jpg)
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/IMG_4274.jpg)
この状態でPCに接続するとデバイスマネージャーにDFUモードで認識されました。
![](https://je6lve.tom-system.com/wp-content/uploads/2019/09/2019-09-17_14h23_10-2.jpg)
nanoVNAの電源を切り再起動すると通常モードで起動します。
※注意 ファームウェアのアップデートを失敗するとnanoVNAが起動しなくなる可能性があります。
この記事は当方の環境で確認しただけですので、アップデートを行う際には十分に気を付けて自己責任でお願いいたします。
コメント
FBな情報ありがとうございます.
難しそうですが,ダイオードの取り付けからやってみたいと思います.
1ROさん、こんばんは。
ダイオード取り付けのランドは結構幅があるのでそれほど難しくないと思います。
1ROさんはMacでファームウェアアップデートをされていたと思いますが、どのような方法を使われているのですか?
MacのVMWare Fusion + Windows 10 (64bit)で,DfuSe Demoで書き込みを試しましたが,何度やってもうまくいかなかったので,Windows 10 (32bit)の実体のあるマシンで書き込みました(さすがに一発で成功).
その後,コマンドラインですが,Mac用(macOS用)のソフトがあることに気がつき(https://drive.google.com/drive/folders/1IRz6E1wlkRyV0u7sbqj0lhWST-GV1szY),インストールしました.まだ試してはいません.このPDFにはMac Brewとありますが,Mac Portsにもあります.試したら,どこかでつぶやきます^^;
1ROさん、早速の追試ありがとうございます。
仮想環境ではなかなか難しいようですね。
開発環境を考えるとMac/Linuxの方が相性良さそうな気がするのですが、ググってもあまり情報が見つからないですね。