2015/12/19

[nucleo]AndroidでUSB Serialからログを見ようとしたが失敗した

うまく行かなかったシリーズだ。

先週、お客さんのところでNUCLEOのログを見る機会があった。
NUCLEOは、mbed enabledの基板は全部そうなのかもしれないが、USBクライアントとして接続することができ、USB Mass Storageとして見えつつも、USB Serialとしても見える。
STM32のシリアルポート接続を、NUCLEO側のシリアル接続とつなげることで、間にコンバータを入れずともUSB接続だけでログを確認できる。
便利だ。

ただ、作業が長引いてしまったため、私のノートPCの充電が切れてしまい、ログを見届けることができなかった。
この辺は、お客さんのところに出向いて作業するというスタイルが確立していないがために発生した失敗だ。
反省して、ACアダプタは持っていくことにしよう。

 

とはいえ、ログだけ見たいのにノートPCをわざわざかついでいくのも、四十肩の私にはつらい。
お客さんのとこに行くときはNexus5を持ち歩いているので、それだけでログを見れるようになっておくと緊急時にも役立ちそうだ。


そういうわけで、まずはWireSharkを使って、どういう制御をすればNUCLEOとシリアル通信できるか調べようとした。
いつものようにWireSharkでログを取った。
もしかしたら、単なるWinUSBドライバにしていてもデータが流れてくれないかなー、と期待して、zadigでドライバを差し替えようとした。
Windowsの場合、zadigでWinUSBに切替え、libusbであれこれ操作すれば、だいたいのことができるのだ。

が、NUCLEOをWindowsはUSBシリアルの標準デバイスとして認識しているようなのだ。
USBシリアルの標準といえば、CDC。
であれば、わざわざプロトコルを調査したり、アプリを作ったりしなくても、Androidアプリが存在するんじゃなかろうか?

 

いくつかアプリを試したが、だめだった。
一番有力だったのが、こちら。
https://github.com/mik3y/usb-serial-for-android
そのままではデバイス自体見えなかったので、VID/PIDを指定して接続したものの、JNIのところで「init」「close」を繰り返している。
ネットで検索すると、そういう人がいたのだけど、Androidのバージョンが上がったら直ったとか、そういうのしか見つけられなかった。
電源が足りないのかと思って、セルフパワーなUSBハブを使ったけど、症状変わらず。
むぅ。

めんどくさくなって、スイッチサイエンスさんから購入していたProfilicの変換ケーブルを使うと、USB Serial Terminal Liteというアプリでログを見ることができた。
もう、これでいいや。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。