この記事は、自作キーボードのファームウェア作成用フレームワークである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は以下のものです!とてもきれい✨