知的好奇心 for IoT

IoT関連の知的好奇心を探求するブログです

いつの間にかMacでドライバのインストールが不要になってWindowsの方が面倒になっていた件

※2022年10月28日追記

macOS 13.0 Venturaで、ドライバのインストールをしなくてもCH9102Fが使えるようになっていました!

ただ、「Upload Speed」を「460800」にする必要があります。

 

※2022年6月12日追記

M5Stack Basic V2.6などに使われているCH9102Fは、Macでもドライバをインストールする必要があります。

ドライバは次のURLの「Driver Installation」セクションからダウンロードできます。

https://docs.m5stack.com/en/quick_start/m5core/arduino

逆にWindowsだとドライバが自動でインストールされました...。

 

ESP8266やESP32を使ったボードをArduinoで使うときに、一番ハマりやすいポイントがUSBシリアルドライバのインストールだと思います。

 

2、3年前までは、ボードをWindows 10のPCに繋げるとドライバが自動でインストールされて使えるようになっていましたが、ここ1、2年ぐらいのWindows 10のアップデートで、動作するドライバが自動でインストールされなくなってしまいました

f:id:IntellectualCuriosity:20210116201348p:plain

最近はこのメッセージが表示されても実際には使えません。

※2021年10月25日追記

Windows 11だと、一部のボード(モジュール)でドライバーがインストールされていなくても自動でインストールされるようになりました!

  • 自動でインストールされるもの
    USB Serial Port (M5StickC, Atom Lite, Atom Matrix, UnitV AI Camera)
    USB シリアル デバイス (Wio Terminal)
  • 自動でインストールされないもの
    Silicon Labs CP210x USB to UART Bridge (M5Camera, M5Stack Basic)

 

逆に、MacはHigh Sierraまではドライバのインストールに物凄く苦労する状態だったのですが、MojaveからOSに主要なUSBシリアルドライバが内包されるようになってドライバのインストールが不要になっていたんです。知ってました?

 

CatalinaがプリインストールされていたMacBook Proを購入したときに、ドライバをインストールしなくても使えることはわかっていたのですが、そのときはラッキー!ぐらいにしか思っていなくてキチンと調べていなかったんです。

いざ、この辺りのことを調べようとすると驚く程情報が少なくて、やっと見つけたのがWeMos D1 miniなどに使われているWCH製のCH340GというUSBシリアルICのトラブルシューティング記事です。

この記事にMojave以降はドライバがOSに内包されていることが書かれていました。

実際にCatalinaとBig Surでは次のコマンドでドライバーパッケージのリストを表示できます。
ls -l /System/Library/DriverExtensions/

drwxr-xr-x  6 root  wheel  192  1  1  2020 com.apple.AppleUserHIDDrivers.dext
drwxr-xr-x  6 root  wheel  192  1  1  2020 com.apple.DriverKit-AppleEthernetE1000.dext
drwxr-xr-x  6 root  wheel  192  1  1  2020 com.apple.DriverKit-AppleUSBCHCOM.dext
drwxr-xr-x  6 root  wheel  192  1  1  2020 com.apple.DriverKit-AppleUSBFTDI.dext
drwxr-xr-x  6 root  wheel  192  1  1  2020 com.apple.DriverKit-AppleUSBPLCOM.dext
drwxr-xr-x  6 root  wheel  192  1  1  2020 com.apple.DriverKit-AppleUSBSLCOM.dext
drwxr-xr-x  6 root  wheel  192  1  1  2020 com.apple.DriverKit-AppleUSBSerial.dext
drwxr-xr-x  6 root  wheel  192  1  1  2020 com.apple.DriverKit.AppleUserECM.dext
drwxr-xr-x  6 root  wheel  192  1  1  2020 com.apple.DriverKit.AppleUserECMData.dext
drwxr-xr-x  6 root  wheel  192  1  1  2020 com.apple.DriverKit.AppleUserEthernetASIX.dext

 

各製品に使われているUSBシリアルIC

では、実際にどの製品にどのドライバが必要なのかを把握するために、どのUSBシリアルICが使われているかMacのシステム情報を使って調べてみました。 

f:id:IntellectualCuriosity:20210116212924p:plain

M5Atom Matrixの例

"M5Stack"と表示されている所に本来はUSBシリアルIC名が表示されます。M5シリーズの一部の製品はFTDIのICと互換性のあるカスタムICを使っているようで、USBシリアルIC名に変な名前が表示されます。

f:id:IntellectualCuriosity:20210116222217p:plain

手持ちのボードの調査結果

手持ちのボードはSilicon Lab.、FTDI、WCHのどれかを使っていることがわかりました。先のドライバーパッケージと照合すると次のようになります。

 

f:id:IntellectualCuriosity:20210116230042p:plain

ドライバパッケージとの照合

Arduinoでシリアルポートを選択するときにはcu.usbserial-xxxxxx(xxxxxxはUSBシリアルICのシリアル番号)を選びます。

最近のWindows 10の問題

では次に、最近のアップデートが適用されたWindows 10でどうなっているか見ていきましょう。

先に挙げたぼくの手持ちのボード全て、PCに繋いだだけでは動作するドライバが自動でインストールされない状態になっています。

 

f:id:IntellectualCuriosity:20210116232511p:plain

調査したWindows 10の情報

各ボードをPCに繋げたときのデバイスマネージャーの表示はこうなります。

f:id:IntellectualCuriosity:20210116233114p:plain

M5Stack Basic

f:id:IntellectualCuriosity:20210116233153p:plain

M5Camera

f:id:IntellectualCuriosity:20210116233615p:plain

M5StickC

f:id:IntellectualCuriosity:20210116233737p:plain

M5ATOM Matrix

f:id:IntellectualCuriosity:20210116233807p:plain

M5ATOM Lite

f:id:IntellectualCuriosity:20210116233834p:plain

UnitV AI Camera

f:id:IntellectualCuriosity:20210116233856p:plain

M5StickV

f:id:IntellectualCuriosity:20210116234000p:plain

ESP32-DevKitC

f:id:IntellectualCuriosity:20210116234026p:plain

ESP-WROOM-02開発ボード

f:id:IntellectualCuriosity:20210116234104p:plain

ESPr® Developer

f:id:IntellectualCuriosity:20210116234134p:plain

WeMos D1 mini

 では、どうすればいいのかと言うと、Windows Updateの「オプションの更新プログラム」の「ドライバー更新プログラム」をインストールすれば動作するようになります。

 

バイスマネージャーからだと、ビックリマークが出ているデバイス上で右クリックして「ドライバーの更新」を選び、次の様に進めていきます。

f:id:IntellectualCuriosity:20210116235527p:plain

「ドライバーを自動的に検索」を選ぶ

f:id:IntellectualCuriosity:20210116235754p:plain

Windows Updateで更新されたドライバーを検索する」を選ぶ

f:id:IntellectualCuriosity:20210116235919p:plain

「更新プログラムのチェック」を選ぶ

f:id:IntellectualCuriosity:20210117000011p:plain

「オプションの更新プログラムを表示」を選ぶ

f:id:IntellectualCuriosity:20210117000049p:plain

チェックを付けて「ダウンロードしてインストール」を選ぶ

各メーカーのサイトからドライバーをダウンロードしてインストールする必要はなくなっていますが、結構面倒くさいです。

また、M5ATOMやM5StickCは上の手順を2回繰り返さないと動作するドライバーがインストールされません。(まったく、ひどい話です。)

 

このドライバーのインストール作業は、USBの製造元IDと製品IDの組み合わせ毎に行う必要があるものなので、M5ATOM MatrixをPCに繋げたときにドライバーのインストールしていれば、その後にM5ATOM LiteをPCに繋げたときはドライバーが使える状態になっています。

 

※2021年1月18日追記

Windows 10で、動作するドライバーがインストールされなくなった原因を推測できそうな記事を見つけました。

加えて、MicrosoftもARMのベースのWindowsに本腰を入れる気配もあり、当分混沌とした状態が続くような気がします。

 

おわり