PR

NanoVNA、PCソフトで使う ~ NanoVNASaver

「NanoVNAを使ってみる」シリーズ、前回まではNanoVNA本体単体での使い方を見てきた。NanoVNAはディスプレイが付いているので単体で使えて手軽なのだけど、画面が小さすぎて見づらいのが正直なところ。PCのソフトからも使えるという話を聞いているので、今回は、それを試してみる。NanoVNA本体とPCの接続は、付属してきたUSBケーブルを使えばOK。本体バッテリは使わないので、電池切れの心配もない(接続すれば充電もされる)。

ソフトは二種類。

  • NanoVNA
  • NanoVNASaver

結論から言うと、後者のNanoVNASaverがお勧め。ということで、ここでは、NanoVNASaverを紹介。もう一つの方は、こちらの記事で。


【追記】最近はもっぱらNanoVNA-App。こっちのほうが使いやすいと思う。

NanoVANSaverの入手方法

NanoVNASaverはGitHubで公開されている。

Windows、Linux、MacOSで使用できる。Windows版はコンパイル済みのものも公開されている。

上のリンクにアクセスすれば、公開ページが開く。現時点(2019年10月3日)では、0.1.0が最新版のようだ。

nanovna-saver.v0.1.0.exe」クリックしてダウンロード。

ダウンロードしたファイルを起動すれば、直接ソフトが立ち上がる(インストール不要)。最初の起動時には、Windowsによるセキュリティ警告が出るかもしれない。

この場合は、「詳細情報」をクリックする。

これで「実行」ボタンをクリックすればOK。

これが起動した様子。画面は非常に大きい(クリックで拡大、以下同様)。ぱっと見ただけでも、かなり機能が多そう。

なお、一緒にコンソール画面も立ち上がる(正確には、先にこっちの画面が表示される)。特段、使うものでもないようだけど。

では、ここからは、NanoVNASaverを実際に使ってみる。

この記事を書き始めた時点ではリリースされていたNanoVNASaverはバージョン0.0.12だったが、途中で0.1.0がリリースされたため新しいものに入れ替えた。この記事内の説明の図は0.0.12の物を流用しているものもある(変更がなさそうなもの)。

NanoVNA本体と接続

NanoVNA本体をUSBケーブルで接続し、電源を入れる。

NanoVNASaverを起動する。

NanoVNASaverとNanoVNA本体との接続は、NanoVNASaverの左下の方にある「Serial port control」で行う。

NanoVNA本体が接続されているCOMポートは自動認識されているはず。もし、本体の電源投入よりも先にNanoVNASaverを起動していたなら自動認識されないので、「Rescan」ボタンを押してポートを認識させる。COMポート認識されたら「Connect to NanoVNA」ボタンを押す。これで本体とリンクする。と同時に、本体からデータを取得してグラフ等を描画してくれる。

この時点では、スイープ範囲はNanoVNA本体に設定されているものになっているようだ。なお、このときの状態はアンテナをCH0につないでおり、CH1には何もつながっていないので、S11のグラフ(上の二つ)だけが有効。

NanoVNASaverの操作中に、まれにエラーを起こすことがある(以前のバージョン0.0.12ではときどき起きていた。0.1.0はしばらく使ったが今のところ発生していない)。

「OK」を押すしかない。NanoVNASaverは閉じてしまうので、改めて立ち上げる。バージョン番号からわかるように、NanoVNASaverはまだ開発途中のような段階のものなので多少の不安定さは仕方ないか。

【雑感】NanoVNAをPCで使うとは言え、PCの支配下にNanoVNが入るのではないようだ。PCがNanoVNAを完全に制御するという形式ではなく、PCからNanoVNAに制御コマンドを送り、それによってNanoVNAが測定を行う。そして、その結果をPCが引き取って画面に表示するという感じ。動作の主体はNanoVNA本体。クライアントサーバ方式と言うか。これがわかっていると、ソフトの動作が理解しやすいかも。FA-VA5やSARK100だと、PCモードの場合はPCが完全に主体。測定器本体はセンサみたいに扱われる(ように見える)。

測定範囲の設定

Connect to NanoVNA」ボタンを押したときに、NanoVNA本体からその時点のスイープ範囲(周波数)が読み込まれている。

StartとStopに数値が反映されている。単位はHz。例えばこの例だと50kHz~900MHz。

スイープ範囲を変更するにはこの枠内に希望する周波数を直接書き込めばいいのだけど、Hz単位はちょっと面倒。そう言う場合は、「M」を使うと楽(大文字)。これはNanoVNA本体での入力方法と同じ。

上の例ではStartとStopにそれぞれ400MHzと500MHzを設定した状態。CenterとSpanには自動的に反映される。

もちろん、CenterとSpanに入力してもいい。

この場合は、StartとStopに自動的に反映される。

「M」の他に「k」も使える。こちらは(もちろん)小文字。

キャリブレーション

NanoVNA本体の電源を入れると「0」に保存されている条件で起動する。キャリブレーションデータもここに入っているものが使われる。これは本体単体での操作で見てきた通り。このまま使うならNanoVNASaverでのキャリブレーションは不要。

また、NanoVNASaverでもキャリブレーションを行うことができるので、やってみる。

キャリブレーションの範囲も測定範囲として設定されているものが使われる。また、後述の詳細スイープ連続スイープ等の設定の影響を受けることに注意。

キャリブレーションに関してのボタンは左下にある。

Calibration …」ボタンを押す。

今の時点では、NanoVNA本体のキャリブレーションデータを使用しているので、左上の「Active calibration」の欄には「Device calibration」と表示されている。

ここで「Short」、「Open」、「Load」、…、などのボタンを直接押してキャリブレートできるようだけど(ボタンの並び順が本体のそれとは異なっているので注意)、それよりも、その下にある「Calibration assistant」を使う方が簡単。

なお、右側の「Calibration standards」は校正データ。用意しているopen、short、loadコネクタのデータがあるならここに入力する。でも、NanoVNAに付属しているコネクタにはそうした校正データは付いていなかったので「Use ideal value」にチェックを入れて「理想的なもの」として扱う(しかない)。

キャリブレーションを行う前にリセットした方が良いかもしれない。ウィンドウ左側の真ん中あたりに「Reset」ボタンがある。

では、「Calibration assistant」ボタンを押す。次のメッセージがポップアップする。

「キャリブレーションのコネクタを用意してね」とか、そう言う話。「OK」を押して続行。

port 0(CH0)に「open」コネクタを接続する。このあたりは、本体単体でのキャリブレーションの場合と同じ。接続したら「OK」を押す。

スイープが行われて、次の手順に進む。

「shot」コネクタに付け換えて、「OK」を押す。

同様に、「load」コネクタに付け換えて、「OK」を押す。

1ポート用のキャリブレーションはこれで終了。アンテナアナライザとして使うならここまででOK。「Apply」を押す。

フィルタの測定など、2ポート使用する場合は「Yes」を押してキャリブレーション作業を継続。ここでは、こちらの「Yes」を押してみる。

「load」コネクタをport 1(CH1)につなぎ替える。可能なら、port 0(CH0)にも「load」コネクタをつなぐ。用意ができたら、「OK」を押す。

port 0とport 1をケーブルで接続し、「OK」を押す。

キャリブレーション終了。「Apply」を押す。

左上に「Application calibration」と表示されると同時に、「shot」、「open」などのボタンの横に「Calibrated」と表示されている。余談ながら、先程も書いたように、このボタンの並びはNanoVNA本体でのキャリブレーションのボタンの順序とは違う。また、「Calibration assistant」での操作の手順は本体のボタンの順序だった。細かいけど、合せて欲しい。

せっかくキャリブレーションを行ったので、この結果をファイルに保存しておく。左下に保存等のボタンがある。

Save calibration」を押すとファイル保存のダイアログが出てくるのでそれに従う。

保存したキャリブレーションデータを呼び出すのもこの画面の「Load calibration」を押す。後は、ファイル選択のダイアログに従って読み込む。

データが読み込まれ「Loaded」という表示なっている。「Apply」を押して読み込んだデータをNanoVNA本体に反映させる(必要な作業かどうか不明だけど、やっておいた方が安心)。

NanoVNASaverでキャリブレーションした状態で、NanoVNA本体を操作して本体側にもセーブさせることも可能。

アンテナアナライザとして使う

ここからは実際に活用方法。キャリブレーション済みなことが前提。まずは、アンテナアナライザ。

測定

基本的には、スイープ範囲を指定して「Sweep」ボタンを押せばOK。

測定が終ると、PCの画面に描画される。

表示グラフの変更

アンテナアナライザではS11だけの測定なので、それに合わせて表示するグラフを変更する。

左下の「Dispray setup …」を押すと、設定ウィンドウが出てくる。

一番下がグラフ(チャート)の種類の指定部分。全部で六つ表示できるらしい。

ドロップダウンリストになっているので、希望のものを選ぶ。「OK」ボタンのようなものはなく、選択するだけで即座に反映されるので分かりやすい。

グラフは測定点に合せて点で表示されている。これを線にしたい。これも先程の設定ウィンドウで行う。

一番上のOptionsの中の「Show lines」にチェックを入れると線で描画される。その下の「Dark mode」はグラフの地の色が黒になる。「Sweep color」などの色のところクリックするとグラフの色を指定できる。

Chart colorsはグラフの罫線に関する指定。

Font sizeも変えられるのは老眼には嬉しい。

その下の「Show bands」にチェックを入れると設定されている「バンド」がグラフ上に表示される。「Manage band」をクリックすると設定されているバンドが表示される。

日本のアマチュアバンドとは微妙に異なっているようなので修正した。

以上の設定を行って表示させたのがこちら。

よく見ると、フォントサイズを大きくしたせいで、左上のスイープ範囲の周波数の値が枠の外に出て隠れてしまっている。カーソルを持っていって左右に動かせは見えるけど、ちょっと残念。

また、SWRの縦軸が大きな値になっているのが気になる。刻みをもう少し小さくしたい。目的のグラフ(ここではSWRのグラフ)の上で右クリックすると設定画面が出てくる。

縦軸、ここでは「Data axis」を選択するとサブメニューが出る。

Fixed span」を選択すると共に、「Maximum」を5にした。

同様に、横軸(周波数範囲)も変更してみる。

420~450MHzを指定。

さらに、R+jXのグラフも縦軸を変更。

Rの最大値を500に、jXを±200にしてみた。

これらの変更を行った結果がこれ(途中でうっかりスイープしてしまったのでグラフの形が先ほどとは少し違っている)。

SWRの縦軸の最大値が5になったが、小数点以下の目盛は出てこないようだ(最大値を2にしてもダメだった)。0.1とか0.2刻みにしたいところだけで、できないみたい。ここはちょっと残念。これについては、最初に紹介した「NanoVNA(ソフト)」の方が使いやすいと思う。

また、jXに関しては0の罫線が欲しいところ。それに、こちらも(Rも含めて)罫線の刻みを自由に行いたい。罫線は中途半端な数値よりも、ピッタリした数値の方がいい。

「Fixed span」に設定できないことがあった(バージョン0.1.0)。おそらく、ソフトウェアがまだ不安定なのだろう。NanoVNASaverを起動し直したら治った。

それから、各グラフを画像として保存できる。

Save image」を選択して、あとはダイアログに従えばOK。

マーカの操作

NanoVNASaverでは、マーカを三つ設定できる。

ここに数値(周波数)を書き込むと各グラフにマーカが表れる(空欄にすると消える)。

それぞれのマーカ位置の詳しいデータも表示される。

バージョン0.0.12ではマーカに周波数を設定したら、ウィンドウが振動のような状態になった(小刻みに大小を繰り返す)。ウィンドウの端を掴んでサイズを少し変えてやったら治まった。バージョン0.1.0では今のところこの現象には遭遇していない。

マーカを動かすには周波数を書き換えてもよいが、マウスでも動かせる。

チェックが入っているマーカがアクティブなもの。目的のグラフの上にマウスカーソルを持っていき、左ボタンを押しながらマウスを移動させるとマーカが付いてくる。

すべてのグラフのマーカは連動する。

マーカ位置の情報を消すこともできる。

Hide data」をクリックすると情報が消えて、その分、グラフが大きく表示される。

再び表示させるには同じボタン(「Show data」に変っている)を押す。

グラフの比較

アンテナの調整などを行っていると、前の測定結果と比較したくなることがある。

Set current as reference」を押すと、今の状態がリファレンスとして表示される。この状態で改めてスキャンを行うと、リファレンスのグラフと共に新しくスイープしたグラフが表示される。

これはとても嬉しい。リファレンスのグラフを消去するには、先程のボタンの下の「Reset reference」を押せばOK。

リファレンスグラフの色は、この画面で変更できる。

Reference color」のところ。

 

詳細スイープ

NanoVNAでは測定範囲の101点を測定する。NanoVNASaverを使うとより細かく測定できる。と言っても、一回の測定点は101点で固定のようなので、その代りに測定範囲を分割することで実現している。

「Start」、「Stop」の下、デフォルトでは「1」と設定されいる値を変更する。

これだと、5分割して測定する。1回のスイープで101点の測定を行うので、この場合は505点の測定を行う。また、測定点の刻みが「198.02kHz」であることも表示されている。

後は「Sweep」ボタンを押すだけ。分割回数に従ってグラフが少しずつ表示される。また、NanoVNA本体画面のスイープもそれに従って行われるので、見てみると面白い。なお、測定回回数が多くなる分、時間がかかる。

測定点を線でつないだものよりも太く見える。補間の先よりも測定点表示の方が太いのかな?

 

連続スイープ等

これまで見てきたものは、一度スイープすると自動で停止していた。連続して繰返しスイープさせることもできる。

Sweep settings」を押す。

Single sweep」なら、一回スイープして自動停止。

繰返しスイープさせるには「Continuous sweep」を選択する。

また、「Averaged sweep」を選択すれば、複数回スイープしてその平均を取ってくれる。その下の枠に測定回数と廃棄数を指定する。廃棄数は外れた値をどれだけ捨てるかというもの。外来ノイズ等で突発的に外れた値が計測されるような場合に役立つ。3、0だと三回測定、廃棄なし。お勧めは、3/0、5/2、9/4、25/6とのこと。当然、測定回数が多くなれば、それだけ時間がかかる。

いずれを選択した場合も、「Sweep」ボタンでスイープ開始。停止させるには「Stop」ボタンを押せばOK。

なお、NanoVNASaverでのスイープが停止している状態でも、NanoVNA本体では常時スイープしている(フリーラン状態)。本体側のスイープをNanoVNASaverから停止させることはできないようだ。

ケーブル長の測定

TDR機能を使うと同軸ケーブルの長さを測定できる。

測定対象は、NanoVNA本体で損失の測定にも使った秋月のRG-58C/U 10m

測り方はアンテナアナライザの場合と同じで、CH0に測定対象のケーブルをつないで「Sweep」ボタンを押すだけ。直ぐに結果が表示される。

「10.078m」との計測結果。概ね合っていると言っていいと思う。

TDRの測定では測定範囲の分割はしないように。正しい結果が得られない。「1」を設定しておくこと。

Time Domain Reflectometry …」ボタンを押すと、グラフ表示される。

上のドロップダウンリストを開くと、いくつかの素材や代表的なケーブルを選択して速度係数を設定できるようになっている。

RG-58A/Uって50Ωで、速度係数は0.66だと思うんだけど…。ま、ともかく、ここは同軸ケーブルの名称はどうでも良く、設定すべきは速度係数。

試しに、ケーブル先端を、オープン、ショート、50Ω終端でも測定してみた。

  • オープン
  • ショート
  • 50Ω終端

オープンでもショートでも大体正しい値で計測できている。これで、同軸ケーブルが切れている個所、または、ショートしている個所の見当がつく。また、50Ω終端した場合は二倍の長さで表示されるようだ。

それから、「Dispray setup …」の中にもTDRの選択肢がある。

今気づいたので、試してはいない。必要に応じて。

フィルタの測定

S21の測定例として、NanoVNA本体単体でも測定してみたLPFをここでも測ってみる。

測定方法も本体単体での場合と同じく、port 0(CH0)とport 1(CH1)に被測定物をつなぐだけ。特別な設定はない。NanoVNASaverで測定周波数の範囲を設定して「Sweep」して、あとは必要なグラフを選択して表示させれば良い(もちろん、事前にキャリブレーションを行っていることが前提)。グラフの選択方法やマーカの操作方法などはアンテナアナライザの項で説明した通り。

早速、測定結果。

椀飯振舞でグラフを六つ、さらにマーカの情報表示させたらものすごく大きくなった。こういう場合は、グラフの「Save image」を活用すると良いかもしれないと思い、S21 Gainのグラフをイメージ保存してみた。

画面に表示されていたサイズそのままで保存されるようだ。グラフのサイズを大きくしたければ、他のグラフ等を出さなくすれば良い。一つだけにしてみた様子。

これで、「Save image」するとこうなる。

こうしてみると、横軸(周波数)は対数にできると良いかもしれないと思う。

それから、余談ながら、S11 Return Loss、S21 Gain、S21 Phaseのグラフは横軸の目盛の刻みが分かりやすい。他のグラフもこんな感じでわかりやすくできればいいのにと思う。

 

LCの測定

NanoVNAでコイルやコンデンサの値を測ることもできる。

手元のNanoVNAはLCDが壊れてしまったけど、NanoVNASaverを使えば本体画面がなくても大丈夫。下は、マイクロインダクタをコネクタに直差ししている様子。固定方法がいいかんげんすぎるが…。

インダクタの測定

330µHのマイクロインダクタを測定してみた。

インダクタンスのグラフは出せないが、マーカを使えばその周波数での値を読むことができる。1, 2, 3MHzにマーカを置いている。画面の中央辺りにマーカに関する情報が表示されている。

グラフはQとR+jXにした。jXのグラフから自己共振周波数を読み取れる。

コンデンサの測定

0.1µFのセラミックコンデンサを測定。

1MHzあたりで約0.07µF、3MHzあたりがほぼちょうど0.1µF、5MHzあたりはなんと1.3µF。これを超えるとリアクタンスが誘導性になって(jX > 0)、コンデンサとしては動作しない。


NanoVNASaver関連記事一覧は、こちらのリンクをクリック ⇒ NanoVNA

コメント

  1. 松田 邦介 より:

    いつもさんコプにさせていただいております。
    最近見つけたnanoVNA V2が出ていたので私のブログでも紹介させていただいております。中でこのページも紹介させていただ来ました。もしよろしければアドレスの掲載許可をいただきたく。よろしくおねがいします。DE:7K2ABV

    • jh4vaj より:

      ぜひリンクしてください。リンクできることがWorld Wide Webの特徴の一つであり、大きなメリットです。そもそも世の中に公開しているものですから、わざわざ問い合わせ頂くまでもありません。
      「〇〇さんのページを参考にしました」と書きつつそこへのリンクがないのは、訪問者にとって不親切ですし、不便以外の何物でもありません。

  2. 白井健治 より:

    質問させていただいて、宜しいでしょうか。

    1200MHzツインクワッドループを製作中です。測定のため、nanoVNA-H4をUSB経由PC(HP Pavilion dv6/Windows10 )に接続しましたが、NanoVNAsaverでConnectできませんでした。COMポートを調べたら、bluetoothリンク経由の標準シリアル(COM3、4)しか見えません(jpg添付)。plug&playを想定していましたが、よく判りません。再起動をしても同じでした。VNA専用ドライバが必要なのでしょうか。初歩的なことですが、アドバイスをお願いいたします。 de 7L2IOD (#1106) 26-JAN-2021

    • jh4vaj より:

      おっしゃる通り、P&Pで認識されるはずです。もし可能であれば、別のPCにつないでみてください。そちらでも認識されないなら、NanoVNA本体かUSBケーブルのトラブルだと思います。

      • 白井健治 より:

        お忙しい中、返信ありがとうございます。その後、USBドライバーを uninstall → 再install し直したら、USBシリアルデバイス(COM3)として認識され、無事 NanoVNAsaver(v.0.3.8) と Connectすることが出来ました。早速、VAJさんのページを参考に、display setup をして使い始めました。TNX! de 7L2IOD

        • jh4vaj より:

          ドライバの問題でしたか。ともかく、解決してよかったです。どうぞ、使い倒してください。