reference Posted on :: Updated on ::

The SparkFun Pro Micro is an ATmega32U4 board in a Pro Mini footprint. The 32U4 has USB built into the microcontroller, so there is no separate USB-serial chip — the board can present itself as a keyboard, mouse, or serial device directly.

Pinout

SparkFun Pro Micro graphical datasheet: pinout diagram showing PWM, analog, SPI, I2C, serial, Arduino, and power pin assignments

Source: SparkFun — graphical datasheet from the Pro Micro & Fio V3 Hookup Guide (original image). SparkFun tutorials are CC BY-SA 4.0.

Broken-out pins

Left side, top to bottom:

PinAlternate functions
1TXO (Serial1 transmit)
0RXI (Serial1 receive)
GND
GND
2SDA (I²C data)
3SCL (I²C clock), PWM
4A6
5PWM
6A7, PWM
7
8A8
9A9, PWM

Right side, top to bottom:

PinAlternate functions
RAWUnregulated supply input, ahead of the regulator
GND
RSTReset, active low
VCCRegulated rail — output, or input if bypassing the regulator
21A3
20A2
19A1
18A0
15SCLK (SPI clock)
14MISO
16MOSI
10A10, PWM

Summary of what that leaves available:

  • Digital I/O: 0–10, 14–16, 18–21 (18 pins)
  • PWM: 3, 5, 6, 9, 10 (5 pins)
  • Analog in: A0–A3 on 18–21, plus A6–A10 on 4, 6, 8, 9, 10 (9 pins)
  • I²C: SDA on 2, SCL on 3
  • SPI: SCLK 15, MISO 14, MOSI 16. Chip select is up to you — the 32U4's hardware SS is on the same line as the RX LED and is not broken out.

Specifications

MCUATmega32U4
Variants5 V / 16 MHz and 3.3 V / 8 MHz
Flash32 KB, ~4 KB consumed by the bootloader
SRAM2.5 KB
EEPROM1 KB
USBNative (micro-USB on current revisions)
RAW inputRegulator input; 5 V boards tolerate roughly 5–12 V
Arduino board typeSparkFun Pro Micro (5 V or 3.3 V — pick the right one)

Notes and gotchas

  • Two Serial objects. Serial is the USB CDC connection to the host; Serial1 is the hardware UART on pins 0 and 1. They are not the same, and code written for an Uno that expects Serial on the TX/RX pins will need changing.
  • The serial port disappears on reset. Because USB is implemented by the same chip running your sketch, the port enumerates and de-enumerates across resets and uploads. Sketches that hang or reconfigure USB can make the board hard to program.
  • Bootloader entry: tap reset twice quickly to force an eight-second bootloader window, then upload. This is the recovery path when a sketch has made the board unreachable.
  • Pick the right variant in the IDE. Selecting 5 V when the board is 3.3 V (or vice versa) gives a working upload with a clock off by 2Ɨ, which shows up as garbled serial and wrong timing rather than an obvious failure.
  • 3.3 V boards run at 8 MHz. Not a separate consideration from the above — the clock rate is tied to the variant, so any timing-critical code has to know which board it is on.

References

Used in

Table of Contents