Many Arduino boards can appear to a computer as a native:
- USB keyboard;
- USB mouse;
- macro pad;
- button box;
- custom controller;
- Human Interface Device.
But not every Arduino board supports USB HID in the same way.
The classic:
|
1 2 3 4 5 6 |
UNO R3 Mega 2560 classic Nano |
do not provide native USB HID from their main microcontroller in the same straightforward way as boards designed around native-USB MCUs.
Current Arduino HID-capable families include:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
The best board depends on whether your priority is:
- simplicity;
- small size;
- 5 V logic;
- Wi-Fi/Bluetooth;
- large I/O count;
- more RAM;
- advanced analogue inputs;
- USB-C;
- CAN;
- large HID applications.
Quick HID Board Comparison
| Board | Main MCU | Logic | USB connector | Best use |
|---|---|---|---|---|
| Leonardo | ATmega32U4, 16 MHz | 5 V | Micro-USB | Simple full-size HID |
| Micro | ATmega32U4, 16 MHz | 5 V | Micro-USB | Compact HID |
| UNO R4 Minima | RA4M1 Cortex-M4, 48 MHz | 5 V | USB-C | Modern simple HID |
| UNO R4 WiFi | RA4M1 + ESP32-S3 | 5 V | USB-C | HID + Wi-Fi/BLE |
| Nano R4 | RA4M1 Cortex-M4, 48 MHz | 5 V | USB-C | Compact modern 5 V HID |
| Nano ESP32 | ESP32-S3 | 3.3 V | USB-C | Compact wireless HID |
| GIGA R1 WiFi | STM32H747 M7+M4 | 3.3 V | USB-C | Large high-performance HID system |
| Due | SAM3X8E Cortex-M3, 84 MHz | 3.3 V | Native USB | Large legacy 32-bit HID |
| Zero | SAMD21 Cortex-M0+, 48 MHz | 3.3 V | Native USB | SAMD HID / debugging |
| MKR family | Mostly SAMD21 family | 3.3 V | Native USB | Compact connected HID |
What Makes an Arduino Board Good for HID?
The key requirement is:
|
1 2 3 4 |
native USB device capability |
on the processor or board architecture running the application.
A board that can expose a native USB HID endpoint can present itself directly to a computer as a:
- keyboard;
- mouse;
- composite USB device;
- custom HID device.
Leonardo: The Classic HID Arduino
Leonardo uses:
|
1 2 3 4 5 6 7 8 9 |
ATmega32U4 16 MHz 32 KB Flash 2.5 KB SRAM 1 KB EEPROM 5 V logic |
The ATmega32U4 includes native USB hardware, which is why Leonardo became one of the original Arduino HID boards.
It can appear as:
|
1 2 3 4 5 6 7 8 |
USB CDC serial + keyboard + mouse |
without an external USB-to-serial processor handling the application interface.
Why Leonardo Still Makes Sense
Leonardo remains useful for:
- simple macro keyboards;
- sim-racing button boxes;
- control panels;
- full-size shield projects;
- 5 V peripherals.
Its main limitations are:
|
1 2 3 4 5 6 7 |
16 MHz AVR 2.5 KB SRAM 32 KB Flash Micro-USB |
Micro: Best Classic Compact HID Board
The Arduino Micro uses the same:
|
1 2 3 4 |
ATmega32U4 |
and therefore has essentially the same HID capability as Leonardo.
Its major advantage is physical size:
|
1 2 3 4 |
48 × 18 mm |
with a breadboard-friendly layout.
Micro Is Ideal for Embedded Button Boxes
For a controller that only needs:
- buttons;
- rotary encoders;
- switches;
- USB HID;
the Micro is still difficult to beat for simplicity.
You do not need a much faster processor just to send keyboard reports.
UNO R4 Minima: Modern 5 V HID
The UNO R4 Minima uses:
|
1 2 3 4 5 6 7 8 9 10 11 |
Renesas RA4M1 32-bit Cortex-M4 48 MHz 256 KB Flash 32 KB SRAM 8 KB data memory 5 V logic USB-C |
Arduino explicitly supports keyboard/mouse HID on this board.
Compared with Leonardo/Micro, it gives:
- much more Flash;
- much more SRAM;
- higher CPU performance;
- 14-bit ADC capability;
- 12-bit DAC;
- CAN controller;
- RTC;
- USB-C.
UNO R4 Minima Is the Cleanest Modern Full-Size HID Upgrade
For a new full-size Arduino HID project that does not need wireless, Minima is a very strong choice.
It retains:
|
1 2 3 4 5 6 |
5 V logic UNO form factor USB-C |
without adding another wireless processor.
UNO R4 WiFi: HID Plus Wireless
UNO R4 WiFi uses the same:
|
1 2 3 4 |
RA4M1 |
but adds:
|
1 2 3 4 5 6 7 8 |
ESP32-S3 Wi-Fi Bluetooth LE 12×8 LED matrix Qwiic |
This makes it attractive for a controller that needs both:
|
1 2 3 4 5 6 |
USB HID and network connectivity |
UNO R4 WiFi Has a More Complex USB Architecture
The USB data path involves the RA4M1, ESP32-S3 and onboard switching/routing.
Arduino documents that when HID is enabled the board may appear as a:
|
1 2 3 4 |
different USB port |
and recommends:
|
1 2 3 4 |
double-tap RESET |
if the IDE loses the expected port.
Serial Can Remap on UNO R4 WiFi
Arduino also documents that when:
|
1 2 3 4 |
<HID.h> |
is included, serial handling can switch to:
|
1 2 3 4 |
SerialUSB |
This is worth remembering during debugging.
Nano R4: Compact Modern 5 V HID
The newer Nano R4 brings the same RA4M1 architecture into the Nano format:
|
1 2 3 4 5 6 7 8 9 10 |
RA4M1 48 MHz Cortex-M4 256 KB Flash 32 KB SRAM 8 KB data memory 5 V GPIO USB-C |
Arduino explicitly advertises:
|
1 2 3 4 |
Mouse/Keyboard Emulation (HID) |
for Nano R4.
Nano R4 Is a Strong Micro Replacement
If you like the compact Arduino Micro concept but want:
- much more RAM;
- much more Flash;
- USB-C;
- CAN;
- RTC;
- DAC;
- 14-bit ADC;
Nano R4 is a natural modern alternative.
Nano ESP32: Compact Wireless HID
Nano ESP32 uses an:
|
1 2 3 4 |
ESP32-S3 |
inside the u-blox NORA-W106 module.
Arduino’s HID compatibility documentation lists Nano ESP32 as supported.
It also adds:
- Wi-Fi;
- Bluetooth LE;
- ESP-NOW;
- much higher CPU performance;
- large Flash;
- optional/available PSRAM depending module configuration;
- native USB capability.
Nano ESP32 Uses 3.3 V Logic
This is a major difference from:
|
1 2 3 4 5 6 |
Micro UNO R4 Nano R4 |
which operate with 5 V GPIO.
Do not migrate a 5 V peripheral circuit directly to Nano ESP32 without checking voltage compatibility.
GIGA R1 WiFi: HID for Large Systems
GIGA R1 WiFi provides:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
STM32H747 Cortex-M7 480 MHz Cortex-M4 240 MHz 1 MB internal RAM 8 MB SDRAM 16 MB external Flash 76 GPIO Wi-Fi Bluetooth USB-C HID USB-A host |
Arduino explicitly documents HID support through the:
|
1 2 3 4 |
USB-C |
connector.
GIGA Is Overkill for a Simple Macro Pad
A six-button keyboard emulator does not need:
|
1 2 3 4 5 6 |
480 MHz M7 8 MB SDRAM 76 GPIO |
But GIGA becomes useful when the HID device is also:
- a large control panel;
- a machine interface;
- a data logger;
- a camera/display system;
- a CAN gateway;
- a USB host;
- a networked controller.
Due: Large Legacy 32-Bit HID Board
The Arduino Due uses:
|
1 2 3 4 5 6 7 8 9 |
SAM3X8E Cortex-M3 84 MHz 96 KB SRAM 512 KB Flash 3.3 V logic |
Arduino’s current HID compatibility page includes Due among supported boards.
Due is still capable, but for a new design GIGA or UNO/Nano R4 will often provide a more modern software and hardware path.
Due Has Two USB Connections
The board distinguishes between:
- programming USB;
- native USB.
HID and USB OTG work is associated with the native USB-capable interface.
Zero: SAMD21 HID
Arduino Zero uses:
|
1 2 3 4 5 6 7 |
SAMD21 Cortex-M0+ 48 MHz 3.3 V logic |
and supports native USB HID.
It is especially interesting if you already have:
- SAMD libraries;
- Zero hardware;
- debug workflows using EDBG.
MKR Family: Compact SAMD HID
Arduino’s current HID compatibility table also lists:
|
1 2 3 4 |
MKR Family |
as supported.
Many MKR boards use the:
|
1 2 3 4 5 6 |
SAMD21 48 MHz Cortex-M0+ 3.3 V logic |
and combine native USB with specialised connectivity.
MKR WiFi 1010 Example
MKR WiFi 1010 combines:
|
1 2 3 4 5 6 7 8 9 |
SAMD21 48 MHz 256 KB Flash 32 KB SRAM native USB Wi-Fi |
making it useful for a compact:
|
1 2 3 4 5 6 |
USB HID + IoT |
project.
MKR Logic Is 3.3 V
Unlike Leonardo/Micro and the R4 5 V boards, MKR boards are generally:
|
1 2 3 4 |
3.3 V logic |
so older 5 V accessories may need level shifting.
What About Classic UNO R3?
The UNO R3’s main:
|
1 2 3 4 |
ATmega328P |
does not have the same native USB-device architecture as the ATmega32U4.
The board uses a separate USB interface processor.
That means normal UNO R3 sketches cannot simply use the standard Keyboard/Mouse workflow in the same way as Leonardo.
What About Mega 2560?
The Mega’s:
|
1 2 3 4 |
ATmega2560 |
also lacks native USB HID in the main application MCU.
Its USB connection is provided through a separate interface chip.
For a new HID project, choose a board with native HID support instead.
What About Classic Nano?
The classic Nano’s:
|
1 2 3 4 |
ATmega328P |
uses a USB-to-serial interface and does not provide straightforward native Keyboard/Mouse HID from the main MCU.
Use:
- Micro;
- Nano R4;
- Nano ESP32;
for a compact native-HID project instead.
Simple Keyboard Example
For boards supported by Arduino’s Keyboard library, the high-level structure is:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
#include <Keyboard.h> const int buttonPin = 4; void setup() { pinMode( buttonPin, INPUT_PULLUP ); Keyboard.begin(); } void loop() { if ( digitalRead(buttonPin) == LOW ) { Keyboard.write('A'); while ( digitalRead(buttonPin) == LOW ) { } } } |
Mouse Example
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <Mouse.h> void setup() { Mouse.begin(); } void loop() { Mouse.move( 1, 0, 0 ); delay(20); } |
Always Add a HID Safety Mechanism
A bad HID sketch can:
- type continuously;
- move the mouse continuously;
- trigger shortcuts;
- make the PC difficult to control.
Use a:
- physical enable switch;
- startup delay;
- safe-mode input;
- button that must be held before HID starts.
Best Board for a Simple Macro Pad
Arduino Micro remains one of the simplest choices.
It is:
- small;
- 5 V;
- native USB;
- well-supported;
- easy to mount inside a controller.
Best Modern 5 V Full-Size HID Board
UNO R4 Minima is a strong fit.
It provides:
|
1 2 3 4 5 6 7 8 9 10 11 |
USB-C 48 MHz Cortex-M4 32 KB SRAM 256 KB Flash 5 V GPIO CAN DAC RTC |
without the additional wireless processor.
Best Compact Modern 5 V HID Board
Nano R4.
It gives the RA4M1 architecture in a compact form factor while keeping 5 V GPIO.
Best Compact Wireless HID Board
Nano ESP32 is the most obvious fit if you also need:
- Wi-Fi;
- BLE;
- ESP-NOW;
- high CPU performance.
Remember that it is a 3.3 V platform.
Best Full-Size Wireless HID Board
UNO R4 WiFi fits projects that need:
- 5 V GPIO;
- USB HID;
- Wi-Fi;
- Bluetooth;
- UNO shield layout.
Best HID Board for Huge I/O Count
GIGA R1 WiFi.
Its:
|
1 2 3 4 |
76 GPIO |
makes it suitable for very large:
- control consoles;
- simulator panels;
- industrial HMIs;
- test fixtures.
Best Board for HID Plus USB Host
GIGA also has an unusual advantage:
|
1 2 3 4 5 6 7 8 |
USB-C → HID/device USB-A → USB host |
So a GIGA project can potentially behave as a USB HID device toward a PC while also hosting another supported USB peripheral through its USB-A port.
Best Board for Existing SAMD Projects
If you already use the SAMD ecosystem:
- Zero;
- MKR family;
remain perfectly valid HID choices.
Logic Voltage Matters
| Board family | Typical logic voltage |
|---|---|
| Leonardo / Micro | 5 V |
| UNO R4 | 5 V |
| Nano R4 | 5 V |
| Due | 3.3 V |
| Zero | 3.3 V |
| MKR | 3.3 V |
| Nano ESP32 | 3.3 V |
| GIGA R1 WiFi | 3.3 V |
USB Connector Matters Too
Older HID boards commonly use:
|
1 2 3 4 |
Micro-USB |
while newer Arduino boards increasingly use:
|
1 2 3 4 |
USB-C |
For a permanent controller, USB-C can be more convenient because cables are now easier to source and the connector is reversible.
Decision Table
| Requirement | Better fit |
|---|---|
| Classic simple HID | Leonardo |
| Compact classic HID | Micro |
| Modern full-size 5 V HID | UNO R4 Minima |
| Modern compact 5 V HID | Nano R4 |
| HID + Wi-Fi/BLE + UNO layout | UNO R4 WiFi |
| Compact HID + Wi-Fi/BLE | Nano ESP32 |
| Maximum GPIO / large controller | GIGA R1 WiFi |
| HID + USB host | GIGA R1 WiFi |
| Existing SAMD ecosystem | Zero / MKR |
| Legacy large 32-bit board | Due |
Quick Reference
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
Official Arduino HID-compatible families documented in the current ecosystem: Leonardo Micro Due Zero UNO R4 Minima UNO R4 WiFi GIGA R1 WiFi Nano ESP32 MKR family Current Nano R4 documentation: Mouse/Keyboard HID supported Classic UNO R3: main MCU has no native USB HID Mega 2560: main MCU has no native USB HID Classic Nano: main MCU has no native USB HID |
Final Thoughts
There is no single best Arduino HID board because keyboard and mouse emulation is usually not the demanding part of the application.
The board choice should be driven by everything around the HID interface.
For the simplest compact USB controller:
|
1 2 3 4 |
Arduino Micro |
is still excellent.
For a new full-size 5 V design with USB-C and much more processing headroom:
|
1 2 3 4 |
UNO R4 Minima |
is the cleaner modern option.
For a compact modern 5 V board:
|
1 2 3 4 |
Nano R4 |
is extremely attractive.
For wireless HID:
|
1 2 3 4 5 6 |
UNO R4 WiFi or Nano ESP32 |
add connectivity.
For a very large controller with dozens of I/O and substantial application logic:
|
1 2 3 4 |
GIGA R1 WiFi |
has far more resources than the classic ATmega32U4 boards.
For more detail, see our Arduino Leonardo pinout, Arduino Micro pinout, Leonardo/Micro vs UNO R4 HID comparison and Arduino Nano R4 pinout guide.