2013年12月08日

UART端子の電圧について

FT232Rの設定電圧を間違えて、もう一寸でWiPortを昇天させかねない状態だったことが判明。USBポートに接続する前に気づいたのが幸いだった。 対策は簡単で、FT232Rの基板上にあるランドを結びなおして、3.3Vへの変更を行っておいた。

製作予定のmonomeを直結するサテライト側の電源電圧は、V2DIPの仕様通りの5V運用を想定しているので、Vinculum2とWiPortの間にはレベルシフト回路が必要となる。

幸い、手持ちにSparkFun製のLevelShifterがあったので、これを使って3.3Vと5Vのハンドリングを行うことにする。

Webでは、電圧差を気にせずに接続している製作例を見掛けるが、規格上はアウトらしいので大事を取っておいたほうが良いだろう。

追記: データシートによると、5.5VまではOKらしい。 現在、信号のやりとりを3.3Vにコンバートした状態で接続を失敗しているので、5Vに戻すことも考えているのだが、、、。
posted by Yasuski at 07:17| WiPort

2013年12月07日

WiPortをケースに組み込む

HostPC側に設置するWiPortとSerial/USB変換ボードをケースに組み込んだ。

IMG_4544.JPG

当初は電源ラインにレギュレーターICを挿入していたが、電圧降下が激しかったためにバイパスさせることになった。

電源が5Vしか用意できない場合は容易に復活させることが出来るように、基板からICを撤去せず温存する形にしてある。

ラウンド型のシルエットを持つケースはアルミ製だが、板が薄いので強度は期待しないほうが良さそう。 アクセスランプや予備のスイッチポートは実験段階なので実装を行っていない。

IMG_4552.JPG

接続試験は無事終了しているが、WiPort同士のPierToPier接続の実験はV2DIPを搭載したサテライト側の完成を待たねばならない。

これを機会にWiportのFirmwareを最新に書き換えておいたが、中古で購入した物には対応出来ないモデルがあった。
posted by Yasuski at 23:53| WiPort

2013年12月03日

WiPortを復活させるための備忘録

WiPortを復活させるための備忘録。 

556487_445433408820456_1984727005_n.jpg  

WiPortと有線で接続するために必要な通信アプリ、HyperTerminalはWin7ではサポートが終了しているため、OSがデフォルトの状態ではインストールされていない。

従って、XP等他の旧いOSからサルベージしてきたものを使うことになるのだが、サポート外のアプリだけあって動きには怪し気なところがある。 アプリを立ち上げて最初に必要な儀式として、プロパティーからモデムを選択し、通信スピードを9600baudに、フローコントロールを無し、、、といった風にその都度設定を行わなければならない。 

Win7で使用できるアプリにはTeraTerm等があるので、

WS000477.JPG

これらのアプリを使用するのがスマートだろう。

ターミナル・アプリを起動しモデムポートの接続を確認した後、WiportのEvalBoardの電源を入れて、Wiportをリセットを行う。 リセット後数秒間以内にキーボードの "x" を連打しながら、反応を待つ。 

WiPortから表示が返ってきて即座にエンターキーを押すとこのような設定画面に入ることが出来る。 (画像は、HyperTerminalで作業を行った場合の例)

WS000474.JPG

WiPortへの接続が完了したら、まず無線の設定を直結のAdhocModeに変更し、各ポートのbaudrateを115200にセットする。 WiPortはシリアルポートを2つ持っているので、Vinculum2を一度に2個接続することが出来る。 ネットワーク名は各自使いやすそうな名前を設定すること。 実験の利便性を追求するため、今回は暗証番号の設定は行わずにおく。

次に、WiPortDeviceInstallerを起動してネットワーク経由で本格的な設定を行うが、その前にLaptop側にWiPortとの通信を行うためAdhock専用の接続を完了しておく必要がある。TCP/IPは事前にIPアドレスを固定に設定しておくこと。

既に構成済みのAdhocネットワークに接続した後、WiPortDeviceInstallerを起動してWiPortの検索を行うと、左のウインドウにアクセス可能なWiPortがリストアップされる。

この時に、IPの設定に不具合が発生したというアラートが表示された場合は、 

WS000476.JPG

先にPCに設定したIPアドレスを基準に、最下位の値をデバイス毎に違う数値に書き換える形に、WiPortのIPを再アサインする。 混乱を避けるためにメモを取った後、各デバイスに設定値の差分を明記しておいたほうが良いだろう。

ついでに、緊急時に対応できるように、modemコマンドでトリガー信号を発生させるスイッチを、ActiveLowの形で双方向に通信が可能な状態に増設しておいた。 これは独立した回線なので、PhotoMosRelayを介して独立した機材のリモートコントロールに使うこともできる。

EvaluationBoardは既に端子が引き出されていて色々と便利なのだが、シリアル接続した場合に通信速度が9600baudに固定されてしまうので、端末に使用することは出来そうにない。

403809_445432912153839_1969978332_n.jpg

ひとまず、1ペアの設定を終えたので、これをVinculum2/FT232Rの通信ラインに挿入して実験を行う予定。

追記:

インフラストラクチャーモードに無線を設定すると、ネットワーク上にOSCのデータストリームを共有出来て便利っぽいのだが、受信側のMaxPatchをいじらねばならず、期日内の検証は時間切れとなった。
posted by Yasuski at 20:00| WiPort

2012年08月03日

WiPortを使ったWirelessMidi機器の開発(其ノ四)

ダメ元でWiPortのI/Oの接続実験を行ったが、結果はアウトだった。

親戚の有線接続デバイスxPortの記事を読むと専用のjavaアプリを内装する必要があるらしい。

簡単に実行できるメソッドとして、本に載っていたmodemコマンドによるトリガーの送信を実験してみたところ、こちらは動作を再現できた。

ポートの仕様を確かめると、チャンネルあたり割振れるのは1つが限界。つまり2ルートをリザーブするとSerial2chに跨ってしまうということになる。WiPortのポテンシャルを考えると物凄く勿体無い使い方だ。

555661_448319485198515_1902697382_n.jpg

コレは上り線/下り線のイメージなので、いっそのことここにmidi信号を乗っけられないか?というのがアナログ感覚丸出しの間抜けな発想が出た。サンプリングレート的には、31kの信号を230kのラインに流すのだから何とかなりそうな雰囲気ではあるのだが、、、結果はやっぱりダメだった。

使い道としては、緊急用のスイッチ入力回線の確保といった程度の利用法が最適かもしれない。
posted by Yasuski at 05:40| WiPort

WiPortを使ったWirelessMidi機器の開発(其ノ参)

以前、Macの楽器系Wifiのアドホックモードでいろいろとトラブったことを思い出して、別個にサーバーを立てる方法を考える。これは、他の楽器との通信にも使えるので敢えてセキュリティー無しの危なっかしい仕様のものをデッチあげてみた。

306845_445429955487468_576339561_n.jpg

セキュリティーに関しては、旧いデバイスはセキュリティーの対応がマチマチなのでとりあえずWEPのみを掛けても良いのだが、実験中にイロイロと問題が発生すると手間なので、ここは敢えて目をつぶることにした。WiPort側にサーバー名をインプットし、インフラストラクチャーモードに設定したが、結果的に安定した接続が得られたのはラッキーだった。 

アドホックモードは電波の干渉が問題になるのか?かなり状態が不安定だったが、サーバーを噛ませた後は通信が格段に安定した。 

403809_445432912153839_1969978332_n.jpg

写真は、デバイスの設定を行なっているところ。ネットワーク経由で設定を行う前に、HyperTerminalを使ってRS232C経由でサーバーの名称を書き込んでおく。画面は汎用入出力端子の設定画面。デバイスの設定はこのようなブラウザを使って行う。手前の赤い基板が評価ボード。
posted by Yasuski at 05:26| WiPort

WiPortを使ったWirelessMidi機器の開発(其ノ弐)

無線LANのデバイスWiPortをとりあえず発掘してきた。

556487_445433408820456_1984727005_n.jpg

評価ボードを使って、まずは通信設定を行う事から始めてみる。

1対1で動作させる場合はアドホックモードが推奨なのか?ざっとマニュアルを流し読みしたが、設定はアドホックでないと行えない雰囲気。OSCで通信させる場合はインフラストラクチャーモードに設定することになるが、事前にネットワークの登録が必要。仕込みはRS232Cの有線で行った方がパソコン側のWiFiをアドホックに設定し直す手間が省けそう。

通信プロトコルをmidiモードに準拠させる場合は、通信データの発信元を限定できるアドホック接続でWiPort搭載分のシリアル2chを31250bpsで並行運用するのがスピードの点でも有利か。 ネットワーク化したほうが効率は良いのだが、受け側のデータの捌き方が判らんのがちと心配。アドホックモードの理解がイマイチなので、いま一度資料を漁ることにする。

が、最終目的であるmonome2台を捌く仕様とするには、インフラモードで運用するしかなさそう。通信モードがOSCだからmidi的なボトルネックには陥らないんだろうけど、その場合の通信スピード設定とか解らんことが多い。

結局、WiPort側のビットレートの設定がプリセット値なのがネックで、対応していないビットレートのmidi直結は無理っぽい。midi信号をやり取りする場合は、間にH8を噛ませてレート変換することになるんだが、一寸大げさなシステムになってしまう。 ハンドリングするデータがOSCの場合は何も考えんで良いので、時代遅れのmidiに拘る必然はあまりない。代わりに怪談スイッチのファームを書き換えねばならんのが手間ではあるが、、、。

WiPortにはConfigurationPinが11個あるので、これを使ってちょっとしたリモコンスイッチを組むこともできる。アウトプットでmidi機器のスイッチをオンオフすれば転送レートの問題も解決する。 が、これもJAVAコードによる事前の設定が必要ということで、容易に実現できる雰囲気ではない。

で、、、ひとまず、HyperTerminalでPCとデバイスを接続することは出来た。

483359_445177925512671_65782194_n.jpg

Win7にはHyperTerminalが入ってなかったので、ネコ部屋の監視カメラを繋いでいるXPからサルベージして動かしたところ、なんとか接続を行えた。 何故かアプリが設定を覚えられないので起動する度に通信先をモデムからCOMポートに、ビットレートを2400bpsから9600bpsに変更しなければならないところがなんともマヌケだ。

558230_445180005512463_2045491135_n.jpg

次に、デバイスインストーラーを起動してWebベースの設定画面に辿り着くのに物凄く手間がかかった。 デバイスを無線で認識できない状態が暫く続き、なんとか接続が安定するも、一寸様子が怪しい。 アドホック以外では無線が停止してしまう現象がイマイチ理解できない。 しかも、古い機種故にファームの書き換えを受け付けてはくれない。 故にWPA2のセキュリティー設定が出来ず、ウチのメインサーバーには接続することが出来なかった。 

翌日、手持ちのVersion違いのWiPortを評価ボードに接続して挙動を確かめてみた。 

一番旧いのは評価ボードに付いてきた製品で、これはWebで見掛ける資料とはインターフェイスの仕様が微妙に異なっている。 3年前に購入したモデルは比較的新しいのだが、NationCordが打ち込めなくなっているものもあった。 

何れにしても、Wireless接続環境が不安定で、家中で稼働している無線LANの干渉の所為なのだろうか、設定を行うアプリへの接続が行えない。また、HyperTerminal経由ではイジれない項目もあって混乱することしきり。 現時点ではネットワーク名を独自のものに変更しつつ、アドホックモードのデバイスを並立させてConfigPinの相互接続を実験するのが動作確認の最短距離かと思われた。 

posted by Yasuski at 05:23| WiPort

WiPortを使ったWirelessMidi機器の開発(其ノ壹)

行動に制約のあるステージ上からkymaを基幹としたDSP音響システムをリモートする必要が生じたため、急遽制御データをWiFiで飛ばす機器の開発を始めることになった。

484605_450331348330662_1143315815_n.jpg

が、いろいろ調べてみると実現化はなかなか難しそうだ。 当初はUSB接続タイプの楽器から出力される通信データを直接飛ばすつもりだったが、すぐにコレは無理筋と判明。 結局は汎用性の高いmidiを扱うことになった。 

シリアル通信を扱えるWifi機器は幾つか製品が出てはいるが、何れもmidi規格の通信レート31250baudには対応していない。 近いレートは38400baudだが、midiデータを転送する場合は通信レートを変換しなければならない。

baudRateを変換するメソッドとしては、1)sciを複数持ったH8等を使う 2)PICを使ってシンプルな変換システムを構築する の2点が候補となった。 

特に後者はスイス人のホビイストがWeb上にコードを発表していて即実現が可能と思えた。

165816_445586145471849_853287689_n.jpg

使用するPIC、12F683はフットプリントがDIP8Pとかなり小さいので、組み込みにはピッタリだ。 弱点は通信バッファを64biteしか確保できない点にあり、この件は追試が必要だ。

事前の準備として専用の開発ツール、MPLabXIDEを落としてコードのコンパイルを試みたが、難度試みてもエラーが発生してしまう。

原因はアセンブルコードに記されていたRESコマンドが仕様変更で使用不能なことにあった模様で、これをEQUに書換えることでとりあえず問題は解決した。 

559195_446339422063188_1597587875_n.jpg

予め、コンパイラの選択項目 CompilerToolChains を mpasm に指定しておくこと。 

残念ながら、PICの資材調達が期日内に間に合いそうになかったので、この件はペンディングとなってしまった。

一方のH8だが、これにBaudRateConverterを実装できないか急遽検討することになった。 

H8に関しては既に2chのmidiをmargeする機能を持たせてあるので、その部分のシリアルポートを切り離して34800baudのデータを扱えるように改装すればよい。 もちろん、単なるデータコンバーターとしてH8を使うのは勿体無いので、従来のmidiインターフェイスとしての機能を確保しつつ、32150baudの出力を追加してたすき掛ける形でBaudRateConverterを実装する。 

信号の流れは、WiPortSerial/USB と WiPortH8midi の2系統になる。 このうちH8の構成は、38400baudで受けたデータを32150baudに変換しmidiポートから出力する。 midiインプットは32150baudで、受信データをH8に実装したインターフェイスとミックスしたものを38400baudでWiPortに送出する。 

これが当初の予定だった。
posted by Yasuski at 04:50| WiPort