AA-30(3)

日本列島を襲った巨大地震。亡くなられた方には哀悼の意をささげます。また、被災された方の一刻も 早く復旧される事を願ってやみません。

私の住む所も、朝の揺れに起こされて、町の防災無線にちょいといらつきながら、再び眠るわけにも いかず、起きるはめになっちゃいました。帰宅難民の方からすれば、贅沢と言われそう。

とりあえず防災って事で、水の汲み置き、食料の備蓄、卓上コンロとボンベの点検。ボンベはY2Kで 脅された時に用意したものだった。

電池の確認、携帯の充電(ひょっとして気休めかしら)、無線機の電池充電量確認等をしておいたよ。 朝の新聞が来ない。特別体制になっちゃったから? それとも、輸送の遅延? 道路が寸断されたら 外から何も届かないな。

地産地消で、今の時期なら ふきのとう かな。これなら、実家の庭にいっぱいあったな。ふき味噌 にすると、これだけでご飯を何杯もおかわり出来る。自然からの季節のギフトですな。つつしんで頂くと しよう。あっ、大事な事を忘れていたわ。

非常通信周波数一覧

3525KHz±5KHz (3500~3540をクリーンに) 特に夕方以降
7030KHz±5KHz (7025~7035をクリーンに) 特に日中
14.100MHz±10KHz (14.090~14.110をクリーンに)
21.200MHz±10KHz (21.190~21.210をクリーンに)
28.200MHz±10KHz (28.190~28.210をクリーンに)
50.100MHz、51.000MHz、51.500MHz
144.100MHz、145.000MHz、145.500MHz
430.100MHz、433.000MHz、433.500MHz

特に東北エリアは通信インフラが寸断されています。
アマチュア無線が唯一の通信手段との事。

ワッチしましょう。

Windows 7 で動かん!

前回、AA-30付属のソフトが動かんと書いた。それなら、もっと易しいと思われる、ListRE.exeを 試してみよう。こやつは、Windows上に作成される仮想COMのポート番号だけを表示するプログラムだ。

何でこんなソフトが付属してるか言うと、あの悪名高い、プラグ・アンド・プレイ(挿してから祈れ) で、Windows様がどんな番号を付与なさったか、確認するプログラムなんだ。Windowsの悪い癖で USBを挿す度に、COMポート番号がインクリメントする不思議な仕様への対向手段だ。

マニュアルによると、小さなWindowにポート番号が表示されるはずなんだけど、実際に実行してみると ちょっと実行アイコンが出て、すぐに終了してしまう。/var/log/messages相当を閲覧する、こけ 脅しのプログラムでエラーリストを表示させてみると、やっぱり有ったよ、クラッシュしましただと。

AA-30のマニュアルには注意書きとして、COMポート設定で困ったら なんて案内が出てたので、 仰せに従って確認。デバイスとプリンターを開いてみると、RigExpert AA-30 なんて書かれた デバイスが出現してて、そのアイコンをクリックしたら、ドライバーが2つ見えた。

一つは、USB機器とのやり取り用だな。こやつをロードする時に、仮想ドライバもインストール するかと言うチェックマークが有った。もう一つは仮想COMのドライバーっぽい。hardwareのTAGを 見ると、お馴染みの 9600ボーとかSTOPビットは幾つとかパリティーは使う? なんてのが有ったよ。 いずれも、FTDIと言うメーカー製みたい。

FTDIを見て、きっと石はFT245Rぐらいではないかと 想像した。念のためHow to install FTDI's device driver を見て、ドライバーを更新してみたよ。

でも、相変わらず、アプリは動かず。ひょっとして、ワクチンソフトが、悪さをしてるんかなと 思って、殺してみたけど、ダメだったわい。おいらの乏しい知識に、もう一つWindowsの悪い癖が Inputされてたので試してみた。えっとそれは、アプリの居座るdir(Full Path)名に、空白が 含まれていると、アプリが動かん事があるという奴。何度、これで泣かされてきたやら。 これ検証してみたけど、やはりダメだった。

後は、パソコン自体を別の物にしてみるか。簡単に言っても容易ではない。甥っ子が持っている パソコンで試させてもらうかなあ。でも甥っ子は、今の季節だとスノボに夢中で家に居ないだろうし 、サッカーもやってるからなあ。そのうちに、予定を組んで、実家へ移動してみっか。

Linuxとかで、どうだ

待てよ。代わりのWindowsが無くたって、ひょっとしてLinuxあたりで動かんかのう。 RigExpert - Downloadを探ってみたら、 MAC版やらWINE版に混じって、aa-analyzerなんてのが 紹介されてた。これはもう試してみる鹿。

中身を確認してみると、perlのスクリプト1本とREADME他が有った。READMEを読んでみると、 どうやらAA-XXとはシリアル通信をやってるようだ。そのために /dev/ttyUSB0が要るとな。 作成者がどんなディストロを使っているか調べたら、 Kubuntu 9.10. だった。おいらの所は うぶの10.04が有る。(Windows上のVMWareだけど)ラッキー。

早速、AA-30を繋いで、うぶを起動するも、肝心のttyUSB0が生えてこない。

sakae@ubuntu:~/aa-analyzer-0.05$ dmesg|tail
[   19.843894] vmci: disagrees about version of symbol module_layout
[   20.056345] vmblock: disagrees about version of symbol module_layout
[   25.049295] eth0: no IPv6 routers present
[  167.541511] usbcore: registered new interface driver usbserial
[  167.546853] USB Serial support registered for generic
[  167.548441] usbcore: registered new interface driver usbserial_generic
[  167.548472] usbserial: USB Serial Driver core
[  167.566374] USB Serial support registered for FTDI USB Serial Device
[  167.567902] usbcore: registered new interface driver ftdi_sio
[  167.567926] ftdi_sio: v1.5.0:USB FTDI Serial Converters Driver
sakae@ubuntu:~/aa-analyzer-0.05$ lsusb
Bus 002 Device 002: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

いろいろ、ごちゃごちゃやってたら、ttyUSB0が見えたので、こりゃラッキーとばかり、スクリプトを走らせてみたら、

Can't locate Device/SerialPort.pm in @INC (@INC contains: /usr/lib/perl5/site_perl /usr/share/perl5/site_perl /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl .) at ./aa-analyzer.pl line 45.
BEGIN failed--compilation aborted at ./aa-analyzer.pl line 45.

こんな文句を言われた。しゃーない、探してみるか。

sakae@ubuntu:~/aa-analyzer-0.05$ sudo apt-cache search SerialPort
libdevice-serialport-perl - emulation of Win32::SerialPort for Linux/POSIX
libserialport-ruby - library to control RS-232 serial ports from ruby programs
libserialport-ruby1.8 - library to control RS-232 serial ports from ruby programs

へぇー、rubyにも同じような機能を作ってる人が居るのね。3大スクリプトの一つが欠けている ようだけど、まあいいか。早速Perl版を入れて、走らせる。

sakae@ubuntu:~/aa-analyzer-0.05$ ./aa-analyzer.pl -i /dev/ttyUSB0 -aaver

これで、製品名とファームウェアのVerを報告してくるはずなんだけど、無しのつぶてですよ。 一体どうなってるの? その後、何度かうぶを再起動してみたけど、ttyUSB0は2度と出現しな かった。あれは幻だったのだろうか?

どうも、Linuxは訳が分からないので、10年前のPCに入れたFreeBSD6.4を引っ張り出してきた。 あの頃は、USB1.1しかサポートしてなかったので若干心配だけど試してみる。 結果、チップは認識してるようなんだけど、Linuxと同じでシリアルポートのデバイスは 出現せず。(代わりに、ugenなんてのが生まれた)

USBデバイス報告 によれば、ucom0が生えてきても良さそうなんだけど。。。ソースを当たってみたら、NetBSDからの 輸入品がuftdi.cと言う名前で置いてあった。暇な時に眺めてみるかな。

資料漁り

READMEをつらつらと読んでいくと

6) MANY THANKS to Denis Nechitailov from Rig Expert Ukraine Ltd. who was
   kind enough to document the data exchange protocol on the following
   website:

        http://www.rigexpert.com/index?f=aa_commands

7) Please do not contact Rig Expert Ukraine Ltd. for questions or assistance
   with this software.  Be sure to direct such inquiries to the author:

        Andy Stewart - KB1OIQ
        kb1oiq@arrl.net

こういうのに出くわした。7)は、お約束として、RegExpertのDenisさん、なかなかやるな。 こうでなくちゃ。早速、 コマンドと、ご対面!

   2. Find the corresponding virtual COM port number. This port corresponds to 
      the USB device with VID=0403 and PID=6001. Product descriptor of this device
      is the model of the analyzer (example: "RigExpert AA-230PRO").
   3. Open COM port with following parameters: 38400, 8N1.

これ重要。VID=0403って、FTDIの登録番号で、PIDはチップセットになるのかな。余りusbの事は 詳しくないんで嘘かも知れないけど。自信を持って説明できるのは、3. の部分だな。あれ、Windowsで ドライバーの所を調べた時、9600になってたよ。

手動で、38400にセットしてからアプリを動かしてみたけど、やっぱりエラー。と言う事は、アプリの ごくごく初期の段階で落ちているんだな。 しょうがないので、取りあえず、どうやってAA-XXからデータを引っ張り出すか見ておくと

Usage:

   1. Send the ON command to turn on the RF board of the analyzer.
   2. Set center frequency with the FQ command.
   3. Set scan range with the SW command.
   4. Send the FRX command and collect data.
   5. Send the OFF command to turn off the RF board of the analyzer.

Example:

ON
FQ145000000
SW10000000
FRX10
OFF

AA-XXは知能的に振る舞うので、大枠を与えてあげるだけで良い訳ね。結果の例が出ていた。

140.000000,58.84,17.28
141.000000,69.74,16.79
142.000000,68.52,5.62
143.000000,62.49,2.79
144.000000,57.51,4.62
145.000000,55.38,9.11
146.000000,56.52,13.56
147.000000,59.40,17.41
148.000000,64.12,20.05
149.000000,71.13,22.01
150.000000,81.57,21.63

これと、installされた、csvheader.txt を見比べれば

"Zplots file generated by AntScope"
"Freq(MHz)","Rs","Xs"

なる程と肯ける。関係ないけど、ケーブル特性表が入っていた。ロシア産のケーブルに並んで 藤倉電線(社名が、フジクラに成ったのかな)のそれも載ってたよ。20D-2Vなんてお化けみたいな 同軸は、誰が使うのでしょうか?

折角 kb1oiq が、perlのスクリプトを書いてくれているので、久しぶりのperlを鑑賞してみる。 えっと、メインがずーっと続いていて、心臓部は

  #============================================================
  # OK, let's get some antenna data from the analyzer.
  #============================================================

  rf_board_on($debug);     # turns on the transmitter
  fq($freq, $debug);       # sets the center frequency
  sw($range * 2, $debug);  # sets the range
  frx($samples, $debug);   # this subroutine writes the CSV file
  rf_board_off($debug);    # turns off the transmitter

久しぶりのPerlだけど、結構覚えているもんだな。素直に書いてあるので読み易い。

まだ試してみる事が有ったよ

朝の散歩の時、ふとWindowsのターミナルから、コマンドを叩いてみたらってアイデアが閃いた。 Windows7には、ハイパーターミナルも無いんで、どこからか取ってくる? 道具箱を漁ってみたら、 TeraTermが入っていた。これって確かCOMポートもサポートしてたな。 確かめてみたら、COM1からCOM255まで選べるようになっていた。Windowsの馬鹿仕様に付き合わされる アプリ作者さん、ご苦労様ですと、思わず頭を下げてしまったよ。

いろいろやってたので現在のCOMポートは、5から8に進化してたので、それに合わせてポート番号やらボーレートを 設定。コマンドを手打ちしてみた。ローカルエコーを設定して無かったので、打ち込んだコマンド は表示されていないけど、ちゃんと動いてる。

AA-30 102

OK

OK

OK

OK
6.950000,109.52,-3388.63
6.955000,0.00,-4048.58
6.960000,225.64,-4660.38
6.965000,392.08,-3668.82
6.970000,214.92,-3674.39
6.975000,127.88,-3711.26
6.980000,768.08,-3501.81
6.985000,977.06,-3455.68
6.990000,915.50,-4725.44
6.995000,410.43,-3249.61
7.000000,0.00,-3402.37
7.005000,296.71,-3616.95
7.010000,19.09,-3599.22
7.015000,101.03,-3846.12
7.020000,384.03,-3110.47
7.025000,100.74,-3823.19
7.030000,261.13,-3731.51
7.035000,337.08,-4028.05
7.040000,14.03,-2999.49
7.045000,1617.23,-3947.62
7.050000,572.10,-3171.05

OK

OK

telnetを使って、メールサーバーと直接お話する感じだな。昔、よくやってたから、 懐かしいよ。

そんじゃ、エコーを効かせてから、自作のMLAを測定してみる。

AA-30 102     ; AA-30に接続すると、向こうから御挨拶してくる、礼儀正しいやつです
fq15000000    ; 中心周波数設定。Hz単位まで設定出来るから、VFOの代わりになるな
OK
sw30000000    ; スキャン幅
OK
on            ; 20mW の電波を発射
OK
frx30 0.000000,0.00,2.55 ; スキャン幅を30等分して、測定します
1.000000,1.82,25.62
2.000000,3.83,63.57
3.000000,18.49,182.85
4.000000,58.39,-443.68
5.000000,3.74,-101.21
6.000000,1.92,-49.93
7.000000,1.97,-25.43
8.000000,2.72,-8.79
9.000000,4.46,4.70
10.000000,5.17,17.73
11.000000,7.02,34.51
12.000000,12.03,58.24
13.000000,27.50,101.29
14.000000,122.61,207.33
15.000000,283.42,-272.31
16.000000,36.90,-127.11
17.000000,13.67,-67.96
18.000000,8.51,-39.53
19.000000,7.04,-21.52
20.000000,6.97,-7.51
21.000001,8.47,4.86
22.000000,11.62,15.63
23.000000,14.53,26.32
24.000000,17.75,40.43
25.000000,25.37,63.87
26.000001,51.29,106.18
27.000000,199.91,170.79
28.000000,211.05,-189.25
29.000000,39.20,-115.83
30.000000,15.01,-66.68

OK
off                       ; 電波の発射停止
OK
h                         ; 無効なコマンドには即、文句を言ってくる。
ERROR

SWRの計算とかは、このデータを元に行っているんだな。

結局、ハードは正常に動いていて、アプリは、作りが脆弱だったので、おいらのWindows環境では 動かなかったって結論になるな。こういうのって、開発元へsend_pr (Bug報告)すべきなんか能。

これから、TeraTermみたいに、AA-30と通信出来るソフトでも作ってみっかな。