Arduino Micro Pinout: GPIO, PWM, ADC, UART, SPI, I2C and Native USB

Arduino Micro pinout guide: ATmega32U4 GPIO, 7 PWM pins, 12 analog inputs, native USB HID, Serial vs Serial1, I2C, SPI on D14-D17/ICSP, interrupts, 5 V logic and Leonardo differences explained.

The Arduino Micro is a compact, breadboard-friendly Arduino based on the ATmega32U4.

Its biggest feature is the same one that makes the Arduino Leonardo distinctive:

The ATmega32U4 itself handles:

  • USB programming;
  • virtual serial;
  • USB keyboard HID;
  • USB mouse HID;
  • custom USB device classes.

The basic specifications are:

The Micro is essentially a compact Leonardo-class board, but its physical pinout exposes some signals more conveniently for breadboard use.

Arduino Micro Quick Pinout

Function Pins
Main digital I/O D0-D13
PWM D3, D5, D6, D9, D10, D11, D13
Analog inputs A0-A11
Hardware UART D0 RX, D1 TX
I2C D2 SDA, D3 SCL
SPI CIPO/MISO D14
SPI SCK D15
SPI COPI/MOSI D16
SPI SS D17 / RX_LED
External interrupts D0, D1, D2, D3, D7
Built-in LED D13
Logic voltage 5 V
Native USB Micro-USB directly to ATmega32U4

ATmega32U4

The Arduino Micro uses:

running at:

with:

This is an 8-bit AVR architecture, so the programming model remains familiar to users of classic Arduino boards.

Native USB Is the Main Feature

Unlike an UNO R3, the Micro does not need a separate USB-to-serial microcontroller.

The ATmega32U4 directly provides:

on the same MCU.

This makes Micro especially useful for:

  • macro pads;
  • custom keyboards;
  • button boxes;
  • simulator controls;
  • game controllers;
  • assistive USB devices;
  • custom HID interfaces.

Main Digital Pins D0-D13

Arduino pin ATmega32U4 pin Important functions
D0 PD2 RX / INT2
D1 PD3 TX / INT3
D2 PD1 SDA / INT1
D3 PD0 PWM / SCL / INT0
D4 PD4 A6 / ADC8
D5 PC6 PWM
D6 PD7 PWM / A7 / ADC10
D7 PE6 INT6
D8 PB4 A8 / ADC11 / PCINT4
D9 PB5 PWM / A9 / ADC12 / PCINT5
D10 PB6 PWM / A10 / ADC13 / PCINT6
D11 PB7 PWM / PCINT7
D12 PD6 A11 / ADC9
D13 PC7 PWM / LED_BUILTIN

Seven PWM Pins

The current Arduino AVR core defines PWM on:

for a total of:

A typical example is:

No True DAC

As with other classic AVR boards:

generates PWM.

It does not output a true analogue voltage.

For a real DAC, use:

  • an external SPI/I2C DAC;
  • PWM plus a low-pass filter;
  • a dedicated audio DAC.

12 Analog Inputs

The Micro provides:

for a total of:

The first six have dedicated analogue labels.

The remaining six are shared with digital pins.

A0-A5

Analog pin Digital alias ATmega32U4 pin
A0 D18 PF7 / ADC7
A1 D19 PF6 / ADC6
A2 D20 PF5 / ADC5
A3 D21 PF4 / ADC4
A4 D22 PF1 / ADC1
A5 D23 PF0 / ADC0

The Arduino core can therefore use:

as a normal digital pin as well as an analogue input.

A6-A11 Reuse Digital Pins

The additional six analogue channels are:

So if D9 is being used for PWM, for example, the same physical pin cannot simultaneously act as an independent A9 input.

Complete Analog Mapping

ADC Resolution

The ATmega32U4 ADC is:

so:

normally returns:

for an input between ground and the selected analogue reference.

AREF

The board provides:

for an external ADC reference.

Use:

when configuring an alternate analogue-reference source.

Serial vs Serial1

This is one of the most important ATmega32U4 rules.

On the Arduino Micro:

That means you can use USB Serial Monitor and the hardware UART independently.

USB Serial Example

Hardware UART Example

For a GPS, modem or other TTL serial device:

The UART pins are:

D0 and D1 Do Not Carry USB Serial

This is important when migrating from UNO.

You can use:

over USB while D0 and D1 are connected to another serial device through:

I2C

The Micro I2C pins are:

Use them through:

For example:

SPI

The Micro hardware SPI signals are:

SPI Is Also Available on ICSP

The same hardware SPI signals are present on the:

This is important because the ATmega32U4 SPI peripheral is not mapped to:

as it is on the UNO R3.

Micro Exposes SPI More Conveniently Than Leonardo

This is a useful physical difference between the two ATmega32U4 boards.

On the Micro, the board exposes nearby pins labelled:

in addition to the ICSP header.

The Micro also exposes:

as an additional pin compared with Leonardo.

RX_LED / SS Pin

The SS signal is:

and shares the same microcontroller pin used by the:

USB activity indicator.

So D17 can be used as a digital/SS pin, but remember it is also electrically associated with the onboard RX LED circuit.

SPI Example

For a custom chip-select pin, you can use any appropriate digital GPIO, not only the hardware SS pin.

Why UNO SPI Assumptions Fail

A library or wiring guide that assumes:

is describing the UNO-style AVR mapping, not the Micro.

On Micro, use:

for hardware SPI.

External Interrupts

The current Arduino AVR core supports external interrupts on:

Arduino pin ATmega32U4 interrupt
D0 INT2
D1 INT3
D2 INT1
D3 INT0
D7 INT6

Use:

Pin-Change Interrupts

The ATmega32U4 also provides pin-change interrupt support on selected Port B pins, including signals associated with:

For most sketches, the five dedicated external interrupt pins are easier to use.

Built-In LED

The main onboard LED is:

so the standard Blink example uses:

Native USB Keyboard

The Micro can act as a USB keyboard with:

A basic example is:

Use a Safety Condition for HID Sketches

A bad keyboard sketch can continuously type into the host computer.

Use a physical enable input such as:

  • button;
  • jumper;
  • startup switch;
  • safe-mode pin.

This makes HID development much safer.

Native USB Mouse

The board can also emulate a mouse using:

This is useful for:

  • custom pointing devices;
  • simulators;
  • accessibility projects;
  • specialised controls.

USB Upload Behaviour

Because the ATmega32U4 handles both your sketch and USB, resetting the board temporarily disconnects it from the computer.

The Arduino upload process uses the normal ATmega32U4:

behaviour to enter the bootloader.

The USB serial port can therefore disappear and reappear during upload.

Recovering a Difficult USB Sketch

If a sketch repeatedly crashes USB or sends unwanted HID data:

  • press reset to enter the bootloader window;
  • start the upload while the bootloader is active;
  • replace the problem sketch with a simple safe sketch.

The exact timing can vary by operating system and IDE.

5 V Logic

The Micro operates at:

which makes it convenient for classic:

  • 5 V TTL devices;
  • AVR sensor boards;
  • older displays;
  • legacy modules.

Do not assume modern 3.3 V peripherals are 5 V tolerant.

When connecting ESP32-class devices or modern sensors, check their input-voltage limits.

3.3 V Pin

The onboard:

rail is rated by Arduino at:

maximum.

It is suitable for small low-power peripherals, not large 3.3 V loads.

GPIO Current

Arduino’s current store specification lists:

for the Micro.

Older pinout documents and historical ATmega32U4 material may show:

as an absolute per-pin figure.

For new designs, use:

as the Arduino board-level maximum guidance and operate well below it when possible.

Do Not Drive Power Loads Directly

Use external drivers for:

  • relays;
  • motors;
  • solenoids;
  • high-current LEDs.

GPIO pins are logic outputs, not power supplies.

Powering the Micro

The board can be powered through:

  • Micro-USB;
  • VIN;
  • regulated 5 V supply where appropriate.

Arduino’s current specifications give:

although the compact board is most commonly powered from USB or a regulated supply.

Breadboard-Friendly Form Factor

The Micro measures approximately:

and is designed to fit across a standard solderless breadboard.

This is its biggest physical advantage over Leonardo.

Micro vs Leonardo

Feature Arduino Micro Arduino Leonardo
MCU ATmega32U4 ATmega32U4
Clock 16 MHz 16 MHz
Logic 5 V 5 V
Flash 32 KB 32 KB
SRAM 2.5 KB 2.5 KB
EEPROM 1 KB 1 KB
Native USB Yes Yes
PWM 7 7
Analog inputs 12 12
Size 48 × 18 mm Large UNO-style board
Breadboard friendly Yes No
SPI edge pins D14-D16 exposed Primarily ICSP header
RX_LED / SS pin Exposed Not exposed the same way

Micro vs Leonardo Software Compatibility

Because they share the same MCU and Arduino AVR pin variant, most code behaves almost identically.

Examples include:

  • Keyboard library;
  • Mouse library;
  • Serial / Serial1 behaviour;
  • PWM;
  • ADC;
  • Wire;
  • SPI.

The biggest differences are:

Micro vs UNO R3 Pinout Traps

Function Arduino Micro UNO R3
USB Native ATmega32U4 Separate USB interface MCU
USB serial Serial Serial via hardware UART bridge
Physical UART Serial1 on D0/D1 Serial on D0/D1
I2C D2/D3 A4/A5 / SDA-SCL
SPI D14-D16 / ICSP D11-D13 / ICSP
PWM outputs 7 6
Analog inputs 12 6
USB keyboard/mouse Native Not directly from ATmega328P

Quick Digital Reference

Quick Analog Reference

Quick Communications Reference

When Arduino Micro Still Makes Sense

The Micro remains useful when you want:

  • native USB HID;
  • 5 V AVR logic;
  • small size;
  • breadboard compatibility;
  • simple keyboard/mouse emulation;
  • a mature AVR ecosystem.

It is not ideal when you need:

  • Wi-Fi;
  • Bluetooth;
  • large RAM;
  • high CPU performance;
  • 32-bit peripherals;
  • large graphical interfaces.

Final Thoughts

The Arduino Micro is best understood as:

The most important pinout rules are:

If you understand those differences from UNO-style AVR boards, the Micro is straightforward to use and remains one of the simplest choices for compact native-USB Arduino projects.

For the larger board using the same MCU, see our Arduino Leonardo pinout guide.

Share your love