たねやつの木

Photographs, Keyboards and Programming

avrdude.exe: ser_open(): can't open device アクセスが拒否されました。の解決方法について

この記事は、自作キーボードのファームウェア作成用フレームワークであるQMKで発生するエラーに関しての対処法についてです。

TL:DR

COMポートを占有していそうなプログラムを停止する。

怪しいものとしては、EclipseやAndroid StudioなどのIDE、Curaなどの3Dプリンタ関係のソフト、そしてNXZT CAMやASUS Aura SyncなどのLEDコントロールアプリ(今回の原因はこれらのソフト)。

エラー内容

QMK上で以下のようにしてavrdudeでファームをProMicroに書き込もうとしたときにエラーが発生。ビルド自体は完了してhexファイルは問題なく作成されている。

...
 * The firmware size is fine - 18376/28672 (64%, 10296 bytes free)
Detecting USB port, reset your controller now.........
Device /dev/ttyS3 has appeared; assuming it is the controller.
Remapped MSYS2 USB port to COM4
avrdude.exe: ser_open(): can't open device "\\.\COM4": アクセスが拒否されました。


avrdude.exe done.  Thank you.

make[1]: *** [tmk_core/avr.mk:192: avrdude] エラー 1
Make finished with errors
make: *** [Makefile:584: avion:default:avrdude] エラー 1

原因

ser_open(): can't open deviceなどで調べてみると、起動しているソフトがCOMポートを占有している(複数のソフトが同時に一つのポートを使用することができない)可能性があるとのこと。

対応

まさしく上記のアドバイス通り、3Dプリンタ用のスライサーCuraを起動していたので落としてみましたが、うまくいきませんでした。。

今回QMKの環境を新たに作り直したのも、以前使用していたPCから新しいPCに移行したのでその時にインストールしたソフトで何か悪さをしていないかを探し始めました。

といっても常駐するプログラムなんてNZXT CAMぐらいだよなあ。。。と思っていたらまさにこいつがエラーの原因となっていました!!(笑)

ですのでファーム書き込み時にはこのソフトを落とすようにしてみると問題なくフラッシュすることができました!

自作キーボードに興味ある方は自作PCやLEDライティングにも手を出されている方が多いはずなので、このようなCOMポートを占有しているかもしれない制御ソフトなどにお気を付けください。。🙇

ちなみに作成したPCは以下のものです!とてもきれい✨