0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ArduinoのHID化の際に書き込みができない原因と解決方法

Last updated at Posted at 2025-09-03

はじめに

Arduino Uno R4 WiFiの互換機でKeyboard.hを使い、HID(Human Interface Device)開発をしていると、突然書き込みができなくなりました。
普通はすぐに書き込みが終わりますが、かなり時間がかかり、以下のようなエラーが出ました。
2025-09-03_2.png

Cannot perform port reset: 1200-bps touch: opening port at 1200bps: Invalid serial port
No device found on COM5
Failed uploading: uploading error: exit status 1

右下に表示されているのでArduino IDEに認識自体はされており、シリアル通信は正常にできている状態でした。
2025-09-03_0.png

原因

通常、Upload時にはマイコンが自動で書き込みモードに切り替わります。
しかし、Keyboard.begin()関数が実行されることによりマイコンがHIDとして認識され、自動で書き込みモードに切り替わらないことが原因です。
※厳密にはこの言い方は正しくないかもしれません。

Mouse.hMouse.begin()でも同様のことが起こります。

解決方法

手動で書き込みモードにすることにより、新しいデバイスと認識され、ポートに新たに出てきます。(私の場合COM7)
2025-09-03_3.png
これを選択すると、正常に書き込むことができます。
2025-09-03_4.png

書き込みモードにする方法

公式ドキュメントに以下のような記述があります。
image.png
この通り、RESETボタンを2回押すと書き込みモードにできるようです。
私の場合、1回→2回と押すとできました。

おまけ Keyboard.end()を実行しても書き込めない

KeyboardのドキュメントKeyboard.end()関数があったので実行してみたが、書き込めるようにはなりませんでした。
2025-09-03_8.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?