Pluto SDR を金属ケースに入れてRESET機能をつける

以前に購入した Pluto-SDRは人工衛星の受信やいろいろな実験にけっこう稼働率が高い。なかなか性能も良いのだが、使いかってかいまいちのところも。
 ・PCとの接続はMicroUSBであり、接触不良となりやすい
 ・SDR#などでSDRソフトの負荷が大きいのか人工衛星追跡ソフトなどと併用して
  使ったりしているときにハングアップする
ハングアップしてしまうとSDRソフトを再起動しても修復されないことが多い。このときは、USBコネクタを抜いて挿しなおすしかない。RTL ドングルではソフトの再起動で復元するのに。Pluto-SDRは内部でLinuxが動いているとのことでそのせいだろうか。
そんなわけで、外部からRESETできる機能を組み込んでシールドも考慮して金属ケースに組み込んでみた。

まずは、RESET回路の検討、USBコネクタを抜き差しするのと同様な機能ということで、Pluto-SDRの電源をON/OFFするように考えた。Arduino NANOなどを使ってリレーで制御するという回路でいいかと。一つのI/Oポートがあれば良いので、なるべくシンプルにということでいろいろと調査した結果、USBシリアルFT232RL USB UARTボードを使えそうなことがわかった。一般的には通信に使うのだが、Bit Bang モードを使うことにより I/O操作ができる。
データシートやWEBでの記事を参照して、回路はこのように。
イメージ 1
一回路しか必要ないのでトランジスタで駆動してもよいのだが、専用のドライバICの手持ちがあり、かつシンプルになる。FT232RL USB UARTからの制御はRX(Bit1)からでイニシャル状態でリレーがOFFつまり、Pluto-SDRの電源ONとなる。これらを基板に組み込んでこんなふうに出来上がった。
イメージ 2

FT232RLボードはMiniUSBPluto-SDRはMicroUSBなのでこれらを頑丈な USB TYPE-B で引出す。ケースに固定するようにAitendoから基板 With USBコネクタのKitを購入、変換延長コネクタとして組立。接続してみると、動作しない。
いろいろと調査した結果、なんとプリント基板の間違い。USBコネクタのシールドがD+と接続されるようになっている。向かい側のGNDと接続するつもりのはずが、コネクタのPIN配置を見間違えたようだ。Aitendo では、この基板をたくさん売っているんだよねー、指摘してあげないといけないだろうか。
イメージ 3

基板を削って D+ とシールドを切り離し、ケースを加工して、両方のUSBはTYPE-B コネクタで接続するようにこんなふうに組み込み。Pluto-SDRの基板はSMAコネクタのみで固定。スペーサも入れてケースに固定してやりたいところだが、加工寸法採りが面倒なのと、日常的に力がかかるような操作をしないので良しとする。この状態で ICの発熱状態を確認したところ、ほとんどのものがほんのりと暖かい程度。ヒートシンクは必要ないようだ。
イメージ 4

ふたは殺風景なので、元箱から切り取って、ロゴを貼り付けた。動作時に点灯するLEDが見える位置に小穴を空けたが、部屋が明るいと青LEDが点灯しているがわかりにくい。
イメージ 5

制御ソフトはサンプルコードもあるので、表示などを考慮した専用のものを作る予定。ネットで見つけた Big Bang Test という、FT232RL USB UARTを使ってI/Oコントロールができるソフトを使ってテストしてみた。
イメージ 6
このように設定して「送信」をクリックすると、リレーが動作して Pluto-SDR の電源がOFFとなる。市場にコントロールできる

が、こんな表示が出て FT232RL USB UART への接続も断となり、
イメージ 7
さらにこんな表示がでて、
イメージ 8
再接続しないと制御できない。

FT232RL USB UART 単独でテストしているときにはこのようなことは無かったので、どこか、配線を間違えたのかと思ったが、このソフトは、USBの入り切りがあると接続をリセットして再検出を行う仕様のようだ。なので、Pluto-SDR のリモートで電源をOFFにするとFT232RL USB UART へ接続もリセットされたわけだ。USBメモリを抜き差ししても同様な動作をする。
わかるのに半日もかかった。ともあれ、動作はうまく行っているので、専用ソフトが完成するまでは、こういうことを念頭において使うことにする。