USB HID / implementation

ATmega32U4 / Pro Micro: macropad guide

ATmega32U4またはPro Micro互換ボードでUSB HIDマクロパッドを作る前に、MCUとボード版、電圧、bootloader、key matrixを確認する実装ガイドです。最初に確認するのは、MCU名ではなく実際のボード型番、搭載品種、回路図、給電方法、書き込み・デバッグ経路です。評価ボードで動くことと、独自基板や量産候補で同じ条件が成立することを分けて判断します。

対象ATMEGA32U4
用途macropad
Review2026-08-03

追加調査で押さえる実務ポイント

ATmega32U4またはPro Micro互換ボードでUSB HIDマクロパッドを作る前に、MCUとボード版、電圧、bootloader、key matrixを確認する実装ガイドです。最初に確認するのは、MCU名ではなく実際のボード型番、搭載品種、回路図、給電方法、書き込み・デバッグ経路です。評価ボードで動くことと、独自基板や量産候補で同じ条件が成立することを分けて判断します。

先に結論

ATmega32U4はUSB Device機能を内蔵する8-bit AVRです。PCからUSB keyboardとして認識させる用途に向きますが、Pro MicroはMicrochip公式ボード名ではなく、ATmega32U4搭載小型ボード形式の通称です。5V/16MHz版と3.3V/8MHz版、USB connector、pin label、regulator、bootloaderが異なる互換品があります。

購入前の判断表

項目確認
MCUATmega32U4の完全な表記
ボード電圧5V/16MHzまたは3.3V/8MHz
USBnative USB配線か
bootloaderCaterina等。復旧方法も確認
header実装済みか
key数直接配線かmatrixか
diodeghosting対策
firmwareArduino、QMK等のboard対応

最初は1キーで確認する

  1. ボード単体をUSB接続する。
  2. 正しいboard profileで最小sketchを書き込む。
  3. serialまたはLEDで起動を確認する。
  4. switchを1個だけ接続する。
  5. internal pull-upを使用する。
  6. 押下時に1文字、解放時にreleaseを送る。
  7. 問題がなければmatrix化する。
#include <Keyboard.h>

const int keyPin = 4;
bool previous = HIGH;

void setup() {
  pinMode(keyPin, INPUT_PULLUP);
  Keyboard.begin();
}

void loop() {
  bool current = digitalRead(keyPin);
  if (previous == HIGH && current == LOW) {
    Keyboard.press('a');
  }
  if (previous == LOW && current == HIGH) {
    Keyboard.release('a');
  }
  previous = current;
  delay(5);
}

pin番号はボード図で確認してください。誤動作に備え、書き込み直後に無限入力しない構成から始めます。

matrix化の判断

方式長所制約
直接配線単純GPIOを多く使用
row/column matrixkey数を増やせるscan、diodeが必要
I/O expanderGPIO節約I2C/SPI依存
shift register安価scanと配線が増える

USB keyboardとしての注意

USB DeviceとUSB Hostを混同しません。ATmega32U4はPCへkeyboardとして接続する側です。USB keyboardを接続して読むHost用途ではありません。

bootloader復旧

Pro Micro互換品はreset操作で短時間bootloader portが現れる場合があります。誤ったboard電圧・clock設定や壊れたsketchで認識しない場合に備え、reset pin、ISP header、外付けprogrammerの可否を確認します。

安全

5V版と3.3V peripheralを直結しません。USB shield、GND、external powerの逆流を確認します。keyboard shortcutはtest用accountで試し、削除・送信などの危険操作を最初から割り当てません。

検証記録として残す項目

最初の成功だけでは、別PC、別個体、別担当者で再現できません。少なくとも次の項目を同じ記録へ残します。

項目記録内容
hardwareボード名、revision、MCU marking、serial
firmwarerepository、commit、release tag
buildcompiler、SDK、option、board target
programmingprobe、boot mode、runner、接続pin
power給電点、入力電圧、無負荷・動作時電流
observationUART、USB、LED、logic analyzer
result成功条件、失敗条件、再現回数
recovery戻したfirmwareと手順

成果物はsourceだけでなく、ELF、map、binary、configuration、console logを保存します。生成物だけを残すと、後から同じbinaryを作れません。

配線を追加する順序

  1. 電源とGNDだけを確認する。
  2. debuggerまたはbootloader経由で書き込む。
  3. consoleまたはLEDを確認する。
  4. GPIOを1本だけ追加する。
  5. I2C/SPI/UART deviceを1個追加する。
  6. interruptやDMAを追加する。
  7. sleep、USB、networkなど複雑な機能へ進む。

複数の外付け部品を同時に接続すると、電源、pin mux、software、配線のどれが原因か分からなくなります。

電源と測定

USB給電、外部5V、3.3V rail、debugger給電を同時に接続する前に回路図を確認します。電流計は電源へ直列に接続し、電流rangeのまま並列接続しません。logic analyzerやoscilloscopeのGND clipも回路GNDへ接続し、商用電源や非絶縁回路へ安易に接続しないでください。

受入基準

次のすべてを満たした時点で「first build成立」とします。

  • clean workspaceからbuildできる
  • 新しい個体へ書き込める
  • 電源再投入後も起動する
  • 観測結果が3回以上一致する
  • debuggerなしでも必要な動作をする
  • 書き込み失敗後に復旧できる
  • 使用したpinと電圧を説明できる
  • error logと回避策を保存した

次に進む判断

最小sampleが成立した後は、peripheralを増やす前に、最終製品で必要なmemory、電流、connector、update方法を一覧化します。評価ボード上の便利な回路へ依存している場合は、独自基板へ移す前にその依存を明示してください。

マクロパッドの受入試験

全keyの押下・解放、同時押し、長押し、chattering、USB再接続、sleep復帰、別OSを確認します。keymap更新方法とfactory resetを用意し、誤ったmacroを現場で停止できるようにします。

参考リンク

  • https://www.microchip.com/en-us/product/atmega32u4 - 公式仕様または公式対応資料。
  • https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7766-8-bit-AVR-ATmega16U4-32U4_Datasheet.pdf - 公式仕様または公式対応資料。

Amazonの検索結果

購入リンクにはアフィリエイトリンクを含む場合があります。仕様・在庫は購入前に販売ページとメーカー公式情報で確認してください。

次に読むとよい記事

PR