ATmega 32U4はArduinoとして使用できるマイコンの一つであるが、USBデバイスとして動作出来ると言う特徴がある。
USBマウスやUSBキーボード、その他USBデバイスとして動かす事が可能だ。上手く使えば非常に便利なマイコンだが、悪用にも使う事が出来る為BadUSBとも呼ばれる。
色々なタイプが存在するが、写真の様にUSBメモリの要にUSBに直接挿す事が出来るタイプもある。PCに接続するとArduinoの様にUSBシリアルとして動作するが、同時にスケッチによりUSBマウスやキーボードとしても動作する。一つのUSBで複数の役割を持つUSB Composite Deviceと呼ばれる機能を持つ。
USBデバイスにはメーカーやデバイス種別の識別IDがあり、この情報を元にデバイスドライバーが読み込まれたりする。Arduino IDEでスケッチをビルドし書き込む場合デフォルトではベンダーID 0x2341 プロダクトID 0x8037に設定されている。通常使う際にはこのIDを変更する必要は無いが、なんらかの理由により変更が必要であれば下記設定を編集する事で任意のIDに変更出来る。
なお、32U4はスケッチ書き込み時と動作時で異なるモードで動作し、本手順で変更出来るのはスケッチ動作時のIDである。
Arduino IDEのboards.txtファイルがprogram files下に入っているので、開く。そのままでは編集できないので、デスクトップ等に移動かコピーして編集後、ファイルを戻す。修正後、Arduino IDEが起動していれば起動しなおす。
C:\Program Files (x86)\Arduino\hardware\arduino\avr\boards.txt
390行目あたりがArduino Microのビルド情報になっており、ここにIDが記述されている。このIDを修正すればOK。
micro.build.mcu=atmega32u4
micro.build.f_cpu=16000000L
micro.build.vid=0x2341
micro.build.pid=0x8037
micro.build.usb_product="Arduino Micro"
micro.build.board=AVR_MICRO
micro.build.core=arduino
micro.build.variant=micro
micro.build.extra_flags={build.usb_flags}