Pro Micro is a SparkFun board (33 × 18 mm) with the ATmega32U4 chip – the same one as in the Arduino Leonardo and Micro. Thanks to native USB it is a popular base for custom keyboards, macro pads and game controllers.
Most boards on sale are cheap 5 V / 16 MHz clones; a 3.3 V / 8 MHz version also exists.
Specifications
- ATmega32U4: 8-bit AVR with USB, 16 MHz (5 V version) or 8 MHz (3.3 V version)
- 32 kB flash (4 kB used by the bootloader), 2.5 kB SRAM, 1 kB EEPROM
- 18 GPIO on the headers (5× PWM), 9 analog inputs
- UART (Serial1), I2C (pins 2/3) and SPI (pins 14, 15, 16)
- native USB (keyboard, mouse, MIDI), micro USB (USB-C on some clones)
- powered from USB or via RAW (up to 12 V)
- 33 × 18 mm
In the Arduino IDE select the Arduino Leonardo board, or the SparkFun Pro Micro from SparkFun’s board package (required for the 3.3 V / 8 MHz version). With the wrong frequency selected, the board drops off USB after uploading and can only be revived with a double reset.
Pinout and pin table
Hover over a pin in the diagram or a table row; use the filter to highlight a bus. You can download the pinout as PNG or SVG.
| Name | Chip port | Direction | UART | I2C | SPI | PWM | ADC | Note |
|---|---|---|---|---|---|---|---|---|
| D0 | PD2 | input/output | RX1 | UART RX (Serial1) – hardware UART. Serial in Arduino is USB, not these pins. External interrupt INT2. | ||||
| D1 | PD3 | input/output | TX1 | UART TX (Serial1), TXO on the silkscreen; external interrupt INT3 | ||||
| D2 | PD1 | input/output | SDA | I2C SDA (Wire); external interrupt INT1 | ||||
| D3 | PD0 | input/output | SCL | PWM | I2C SCL (Wire); PWM (OC0B); external interrupt INT0 | |||
| D4 | PD4 | input/output | A6 | Analog input A6 (ADC8) | ||||
| D5 | PC6 | input/output | PWM | PWM (OC3A) | ||||
| D6 | PD7 | input/output | PWM | A7 | PWM (OC4D); analog input A7 (ADC10) | |||
| D7 | PE6 | input/output | External interrupt INT6 | |||||
| D8 | PB4 | input/output | A8 | Analog input A8 (ADC11) | ||||
| D9 | PB5 | input/output | PWM | A9 | PWM (OC1A); analog input A9 (ADC12) | |||
| D10 | PB6 | input/output | PWM | A10 | PWM (OC1B); analog input A10 (ADC13) | |||
| D14 | PB3 | input/output | MISO | SPI MISO (14 on the silkscreen) | ||||
| D15 | PB1 | input/output | SCK | SPI SCK (15 on the silkscreen) | ||||
| D16 | PB2 | input/output | MOSI | SPI MOSI (16 on the silkscreen) | ||||
| A0 | PF7 | input/output | ADC7 | |||||
| A1 | PF6 | input/output | ADC6 | |||||
| A2 | PF5 | input/output | ADC5 | |||||
| A3 | PF4 | input/output | ADC4 | |||||
| GND | – | |||||||
| GND | – | |||||||
| VCC | input/output | Regulated board voltage – 5 V on the 16 MHz version, 3.3 V on the 8 MHz version. It is an output, but it can also power the board from a regulated supply. Jumper J1 (closed on the 5 V version) connects USB directly to VCC. | ||||||
| RST | input | The board has no reset button: short RST to GND. Shorting it twice quickly starts the bootloader for 8 s – this revives a board that an uploaded program has "locked". | ||||||
| GND | – | |||||||
| RAW | input | Unregulated power input to the regulator (MIC5219, 500 mA). The safe maximum is 12 V, and the voltage should be at least 1 V above VCC. When powered from USB, RAW is about 4.8 V. |
What to watch out for
- The board has no LED on pin 13 –
LED_BUILTINlights nothing. You can blink the RX and TX LEDs instead. - The classic Pro Micro has no reset button: short RST to GND twice quickly = bootloader for 8 s.
- Apply at most 12 V to RAW, and at least 6 V for the 5 V version.
- The board version (5 V / 16 MHz or 3.3 V / 8 MHz) must match the setting in the Arduino IDE.
- Clones vary: the J1 jumper, the regulator and the LED colors may differ from the original.
ATmega32U4 and small Arduinos on chiptron.eu/
Projects and guides on chiptron.eu/:
- PICO (15.2 × 15.2 mm) – a miniature ATmega32U4 Arduino with micro USB
More pinouts
See all pinouts on the Pinouts page.