Windows 11でいにしえのUSBオシロスコープPS40M10を使う
ある人が、秋月の福袋に入っていたというUSBオシロスコープPS40M10を押し付けて譲ってくれた。かなりの年代物のようだが、インストールCDも付属しており、Windowsの互換性なら動くだろうと思いもらってみた。いろいろ回り道をしたが、Windows 11でもとりあえず動くようになったのでその過程を記録する。
とりあえず32bitで動かしてみる
同梱されていたCDには「USB Instruments 2005」の表記があり、なんと20年前のものらしい。含まれていたドライバはWin98とか2000とか書かれたものしかなかった。32bit版しかないためか、このドライバを通常のWin10や11にインストールすることはできなかった。また、公式サイトらしきURLは滅びており、軽く調べただけでは現在ドライバを配布しているようなサイトも見つからなかった。
ドライバ以前にそもそもハードウェアが生きているどうかを確かめたかったため、ひとまず32bitのWin10で試してみることにした。ちょうど仕事のないPC(以前Win11をインストールした)があるのでそこにインストールした。UEFIでは64bitのOSしか動作しないのでレガシBIOSモードに切り替える必要があるなど面倒だったが、さすがWindowsというべきか、32bitならWin10でも20年前のドライバとEasyScope II(オシロスコープ風の画面のアプリ)、EasyLogger(電圧のログを取れるアプリ)が、後述する問題はあるもののとりあえず動作することを確認できた。
新しいソフトウェアの入手
ハードウェアが生きていることが分かったので、普段使う64bitのPCでも使えるようにする方法を調べることにした。結果から言えば、公式サイトのアーカイブ、現行の公式サイト、Windows Update、またはUSBシリアル変換ICの製造元からドライバやアプリを入手できることが分かった。
公式サイトから入手
公式から直接ドライバを入手できるのであればそれに越したことはないので、最初にその可能性を調べてみた。
まず、秋月電子のページや付属CD内にあるドキュメントに記載されていた公式サイト(usb-instruments.com)をあたってみた。現在は滅びていたのでInteret Archiveを探してみると、ドライバの配布ページもEasyScope IIの配布ページも残っており、Windows Vista 64bit版というかなり新しめ(錯乱)のOSに対応した形跡も確認できたが、残念ながら本体(zipファイル)のアーカイブは残っていなかった。
買収やらなんやらで名前が変わっているだけで、現行の公式サイトが別に存在する可能性を考え沿革を調べようとしたが、「USB Instruments」などという一般名詞すぎる名前のために検索が困難だった。幸い、Internet Archiveは302リダイレクトも記録してくれていて、2010年9月30日時点でEasySYNCのサイトwww.easysync-ltd.comに飛ばされていることが分かった。どうやらUSB Instrumentsは会社ではなくEasySYNCのブランドの一つのようである。言われてみれば、秋月電子のページではメーカーはUSB InstrumentsではなくEasySYNCと書いてあるし、ドキュメントにもEasySYNCの名前があった。
このEasySYNCのサイトも滅びていたが、アーカイブはドライバの配布ページ、アプリの配布ページに加え、ドライバ(2.08.28(2013年))とEasyScope II(1.2.4)、EasyLogger(1.0)の本体も残っていた。また、EasyScope IIをインストールするとしれっとドライバのファイルも展開され、古めのバージョン2.00.00(2006年)のものなら手に入るようであった。なお、EasyScope IIのインストーラの実行ファイルを7-zipを用いて展開しようとすると、Linux用のファイル群のみが出現する奇妙な現象が発生した。インストールせずにWindows用のファイル群を確認できないのは面倒である。
EasySYNCの成れの果ても探ってみた。easysync-ltd.comが滅びる瞬間のアーカイブによると、EasySYNCのサイトは技術的な問題で破壊され、“our global company”のConnective Peripheralsのほうに統一されたらしい。またまた一般名詞な名前で血脈を感じる。このサイトは現在も生きており、さらにドライバも配布されていた。これは若干新しい製品のDS60M10のドライバが共通で使えるだけであり、PS40M10専用のEasyScope IIとEasyLoggerの配布はなかった。バージョンは2.08.28で変わりない。
Windows Updateから入手
ドライバが入手困難であるという先入観から確認を忘れていたが、後からWindows Updateでドライバが提供されていることに気付いた。勝手に入るわけではなく、オプションの更新プログラムとして提供されているタイプである。バージョンは若干古めの2.08.14(2011年)だが、Microsoft Update Catalogによれば最新の2.08.28も存在しており、なぜかインストール対象がWindows 8までになっているためにWin11には降ってこないだけのようである。入手できるのはドライバのみで、EasyScope IIやEasyLoggerは含まれていない。
ICの製造元から入手
純正ドライバのinfファイル等を確認すると、PS40M10ではFTDI製のUSBシリアル変換IC、FT2232を使用しているらしいことが分かる。これに対応したドライバはFTDIからも直接提供されており、無理矢理適用して使うことができる(後述)。当然だが、アプリのほうは含まれていない。
Windows 11で使う
ドライバのインストール
そんなこんなでドライバを入手することができたので、あとはこれをインストールするだけ……なのだが、これも一苦労であった。
公式サイトから入手したドライバは、デバイスに対応するドライバとして認識されてインストールが試みられたものの、「%hsはWindows上では実行できないか、エラーを含んでいます」などという怪文書が現れた。これはドライバがWindows 11の「コア分離」の「メモリ整合性」機能と互換性がないために発生するようで、無効にすることで使うことができるようになった。また、Windows Updateからドライバをインストールした際はそうするよう提案が表示された。
一方、FTDIのドライバは正式にWindows 11に対応しており、セキュリティを落とすことなくインストールすることができる。ただし、PS40M10は独自のIDを持っているため自動では適用されない。デバイスマネージャから「USB Serial Converter A/B」(ハードウェアIDがMI_00
で終わるほうがA)を強制的に適用すると使えるようになる。インストールするドライバはデバイスの種類で絞り込めるが、「ユニバーサル シリアル バス コントローラー」を選ぶ(デバイスじゃないんだ)。
なお、FT2232のようなUART以外に対応する高機能なUSBシリアル変換ICにおいては、このようなドライバがAPIを提供し、アプリ側で様々に機能を制御できるようになっていて、ドライバ自体はアプリ固有のものではないことが多い。以前使用したCH341Aもこのタイプである。
アプリケーションのインストール、使用
公式サイトのアーカイブからダウンロードしたEasyScope IIもEasyLoggerも特に問題なくインストールできた。
EasyScope IIは通常のオシロスコープのようにトリガをかけ、その前後の波形を表示することができるアプリである。しかし、表示の更新頻度が低く、垂直軸、水平軸の設定の反映も時間がかかる(何か一ついじるたびに秒単位で待たされる)ため使いにくい。それぞれを自動設定する「Auto」も存在するが、遅すぎて使い物にならない。32bitで動かしたときも同じだったため、64bit版のドライバが原因というわけではなさそうである。互換モードも試してみたが、改善はなかった。しかし、さすがに仕様とは思えない実用性の低さのため、正常に動作していない可能性がある。
EasyLogger IIではリアルタイムにパソコンに電圧が送信され、パソコン側のバッファに記録される。サンプリングレートを高くしすぎると転送が間に合わず欠測が生じるが、2.5 μs/S(400 kS/s)以下であればほぼ問題ない。バッファは最大で1,000,000サンプルで、2.5 μs/Sでも2.5秒間の波形を記録できる(バッファが尽きてもファイルに記録してくれるようだが、負荷が増えるためか欠測が増える)ため、波形によらずこの設定のままにできる。トリガの概念もないため、設定するのは垂直軸だけで済み、EasyScopeに比べ使いやすい。400 kS/sというサンプリングレートは低いが、サーボモータのPWM波形などの観測には十分である。
Windows XPで使ってみる
EasyScope IIの動作の遅さが仕様かどうか判断に困っていたが、20年前のレビューによれば、「波形もリアルタイムで表示されるので普通のオシロを使っている感じです」とのことで、やはり手元の動作は正常ではない可能性が高いと考えられる。
そこで、確実に動作するであろう同年代のOSであるWindows XPで動かしてみることにした。32bitのWin10を動かしていたPCにXPをインストールしようと試みたが、うまくいかなかったのでVMware Workstation Pro上で動かしてみた(Hyper-VではUSBのパススルーができないらしい)。すると、32bit版でも64bit版でも、Win11のときとは比べ物にならないくらい快適に動作した。操作性はさすがに物理ダイヤルのある本物のオシロには敵わないが、操作に対する応答のよさで言えば安物のデジタルオシロよりも快適かもしれない。どうやらWin11での動作は仕様ではなく、なんらかの問題が発生しているようである。
Win11でもこのくらい快適に動作させることができれば実用性があるが、互換モードを設定してみたりしても改善されず、ひとまず諦めることにした。なんだか描画関連の問題な気がする。
なお、EasyLoggerのほうの動作はあまり変わらず、サンプリングレートの限界は少し低いくらいだった。このことからも、問題はドライバではなくアプリ側にあると考えられる。
FT2232について
FT2232などの多機能なUSBシリアル変換ICにおいては、アプリがドライバのAPI経由で制御できるようになっていることは前述した。このような変換器では、内蔵か外付けのEEPROMにカスタムの設定やベンダID、プロダクトIDなどの情報を保存できるようになっていることも多い。FTDIのICでは、FT_Progというツールを用いてこのEEPROMの内容を読み書きできる。
PS40M10に対してFT_Progを用いてEEPROMの内容を確認してみると、独自のIDやシリアル番号のほか、ICがFT2232Dであること、「245 FIFO」モードで動作していることが分かった。このモードはFT245なるものと同様の動作をするモードで、8ビットのパラレル通信ができるらしい。ADCからのデータを転送する方法としては自然である。そんなに複雑なことをしているわけではなさそうだし、よく使われているICなので、Win11でもドライバ側に問題が生じることは考えにくい。
また、もしかしたらVIDとPIDをFTDI標準のものに変更することで自動でドライバが適用されるようにできるかもしれないが、それでもアプリ側が認識できるのかどうか、また、このEEPROMの書き換えが安全であるのかどうかよく分からないので試していない。
あとがき
一度取ったドメインは捨てるな、一般名詞を固有名詞として使うな、常々思っていることだが、今回はまさにその負の側面に触れることとなった。
また、めちゃくちゃひさびさにXPを触ったが、仮想環境でも快適ではあるものの、デバイスマネージャを開くのにnクリック必要などあらゆる面で気が利かず、さすがに利便性の面では現代のOSには敵わないと感じた。改悪されまくったWin11でもXPよりははるかに使いやすい。
あとHyper-VはUSBのパススルーができるようになってほしい。Hyper-Vで対応することはWSL2で対応することと同義なので、まあまあ需要はあると思うのだが。なお、独自APIではなく通常のCOMポートであればHyper-Vゲストでも(RDP経由で?)使えるらしい。