FTDIのD2xxシリーズ(おそらくArduinoとUSBシリアル接続でもっとも使われているであろうチップ)がしばしば繋がらなくなるのでマニュアルからの翻訳。
6.1 インストレーションはうまくいったのに、デバイスをオープンできない。
仮想COMポートで他のデバイスが使っている可能性があります。以下のコマンドでチェック。
kexstat | grep FTDI
AppleUSBFTDIとかFTDIUSBSerialDriverとかが表示されている行があるなら、以下のいくつかの手段をとってください。
- FTDIでない(ベンダー・製品)の表示をもつFTDIに再プログラムしてください。これはOSXが他のドライバーと一緒にしないための方法です。詳細はこちらのドキュメント
- OSX 10.9以降ならば、AppleUSBFTDIとFTDIUSBSerialDriverがFTDIチップと矛盾することを防ぐD2xxHelperをインストールしてみてください。(http://www.ftdichip.com/Drivers/D2XX.htm)
- OSX10.10より前ならば、シリアルドライバーを無効もしくは取り外してみます。FTDIUSBSeiralDriverについてはセクション4,AppleUSBFTDIについてはセクション7
6.2 アプリケーションを数回実行した後、コミュニケーションできなくなる
アプリケーションが存在するうちに、FT_Open / FT_OpenEx で見出されたハンドルをクローズすることを強くお勧めする。マルチスレッドの場合にハンドルをクローズしない影響は次のコミュニケーションが失敗する原因となります。
(言い換えると、Arduino IDEが実行している間にFTDIデバイスをいきなり抜いたりしちゃダメってことですね。)
さらにトラブルが治らない人用の修復経験則。
- 「システム環境設定」「ネットワーク」でUSBシリアルっぽい赤丸付きエントリーを削除してみる。
- MACを一旦、システム終了で完全に電源を落としハードウェアをリセットする
ダメなら、
VCP(仮想コミュンケーションポートドライバー)とFTDIのドライバーの両方をいったん削除。
再起動、VCPだけ再インストールしてみてください。
最近のOSXはFTDIドライバーをすでにもっていることがあり、ドライバーが矛盾していることがあります。