🦔
自転車のライト付属のケーブルでマイコンを動かしてはいけない
結論
充電用のケーブルは電源の線しか残してないので、マイコンを動かすことはできない。
もし買うときはデータ転送が可能なケーブルを買いましょう。
背景
家にESP32が届いたので、早速動かすために手元にあった自転車のライトを充電するために置いてあったmicroB to Aケーブルを使ってLinuxマシンを接続した。
パソコンと接続し、ESP32のLEDが光ったので接続されてると思った。
LinuxマシンのArduino IDEからプログラムを書き込もうと思ったその時、シリアルポートに何も来ていないことがわかった。
更に、 lsusb
を叩いてESP32がデバイスとして認識されているか確認したが、抜き差ししても表示されるデバイス一覧は変わらなかった。
これを手元のMacbookでも同様に試したが、マイコンは光るがシリアルポートは認識しない結果となった。
試したこと
- マシン側に必要とされているドライバを入れた
- Arduino Microで試した -> ESP32と同様にシリアルポートを認識しない
- Twitterで相談した
- 「そのケーブルは通信できる?」という話になった。ケーブルが悪い説。
解決策
ケーブルが充電用だったため、データ通信ができない可能性が高いとみて、AmazonでmicroB to Aのケーブルを購入した。
なぜ充電用のケーブルだと動かないのか
USB Type-Aには4本の配線がある。
そのうち2つが電源系統(Vcc, GND)で、もう2つがデータ通信系統だった。充電用ケーブルは通信系統の線が短絡しているらしい。
シリアルポートは認識しないのにマイコンのLEDが光ったのは電源系統は生きていたからっぽい。
動くケーブルと動かないケーブルでマイコンに光るLEDが変わるのか見てみたが、どちらも同じだったので見た目で判断することは不可能だった。
Discussion