Arduino Pro Mini

A tiny ATmega328P board without USB, sold as 5 V/16 MHz and 3.3 V/8 MHz versions, programmed through an FTDI-style USB-serial adapter.

  • MicrocontrollerATmega328P, 16 MHz on the 5 V version, 8 MHz on the 3.3 V version
  • Why 8 MHz at 3.3 VThe chip is rated 0 to 10 MHz at 2.7 V to 5.5 V and 0 to 20 MHz only at 4.5 V to 5.5 V
  • Memory32 KB flash (30,720 bytes for sketches), 2 KB SRAM, 1 KB EEPROM
  • USBNone on board: a 5 V or 3.3 V USB-serial adapter on the 6-pin header
Arduino Pro Mini, A tiny ATmega328P board without USB, sold as 5 V/16 MHz and 3.3 V/8 MHz versions, programmed through an FTDI-style USB-serial adapter.
In short

The Arduino Pro Mini is an 18 x 33 mm (0.7 x 1.3 in) ATmega328P board in two versions: 5 V at 16 MHz and 3.3 V at 8 MHz, with 32 KB of flash and 2 KB of SRAM (Arduino Pro Mini docs). It has no USB, so you upload through a USB-serial adapter on its 6-pin BLK-to-GRN header, choosing the 5 V or 3.3 V adapter to match (Arduino Pro Mini guide). Its regulator takes up to 12 V on RAW and supplies 150 mA (Arduino docs; SparkFun graphical datasheet).

The Pro Mini is the Uno's ATmega328P with everything that isn't needed in a finished project removed: no USB chip, no connector, no headers. SparkFun designed it for Arduino for installations where space matters (Arduino Pro Mini docs). Clones of the SparkFun layout are everywhere, so this pinout applies to most boards sold as Pro Mini.

Pick the version for your peripherals. The 5 V board runs at 16 MHz like an Uno; the 3.3 V board runs at 8 MHz because the ATmega328P is only rated to 10 MHz below 4.5 V (ATmega328P datasheet, p. 2), and its pins must only see 3.3 V signals. Selecting the wrong clock in the IDE makes every delay and baud rate off by two.

Programming goes through the 6-pin header on the short edge, labelled BLK, GND, VCC, RXI, TXO and GRN to match an FTDI cable's wire colours. The GRN pin reaches RESET through a 100 nF capacitor, so the adapter's DTR or RTS line resets the board for each upload (Arduino Pro Mini docs). A4/A5 (I2C) and the analog-only A6/A7 are inner holes, not on the edge rows (SparkFun tutorial).

Arduino Pro Mini pinout

tinkered.ai/components/arduino-pro-miniArduino Pro MiniTXOUART TX · Digital (D1)RXIUART RX · Digital (D0)RSTReset (active low)GNDGroundD2INT0 · DigitalD3PWM · INT1 · DigitalD4DigitalD5PWM · DigitalD6PWM · DigitalD7DigitalD8DigitalD9PWM · DigitalRAWPowerGND-2GroundRST-2Reset (active low)VCCPowerA3ADC3 · Digital (D17)A2ADC2 · Digital (D16)A1ADC1 · Digital (D15)A0ADC0 · Digital (D14)D13SPI SCK · Digital · LED_BUILTIND12SPI MISO · DigitalD11SPI MOSI · PWM · DigitalD10SPI SS · PWM · DigitalA4I2C SDA · ADC4 · Digital (D18)A5I2C SCL · ADC5 · Digital (D19)A6ADC6A7ADC7FTDI-BLKGroundFTDI-GNDGroundFTDI-VCCPowerFTDI-RXIUART RXFTDI-TXOUART TXFTDI-GRNAuto-reset
PinFunctionType
TXOUART TX, Digital (D1)VCC: 5 V or 3.3 V by versionoutput
RXIUART RX, Digital (D0)VCC: 5 V or 3.3 V by versioninput
RSTReset (active low)VCC: 5 V or 3.3 V by versioninput
GNDGNDpower in
D2INT0, DigitalVCC: 5 V or 3.3 V by versionbidirectional
D3PWM, INT1, DigitalVCC: 5 V or 3.3 V by versionbidirectional
D4DigitalVCC: 5 V or 3.3 V by versionbidirectional
D5PWM, DigitalVCC: 5 V or 3.3 V by versionbidirectional
D6PWM, DigitalVCC: 5 V or 3.3 V by versionbidirectional
D7DigitalVCC: 5 V or 3.3 V by versionbidirectional
D8DigitalVCC: 5 V or 3.3 V by versionbidirectional
D9PWM, DigitalVCC: 5 V or 3.3 V by versionbidirectional
RAWRAW5 V version: 6 V to 12 V recommended; 3.3 V version: 4 V to 12 Vpower in
GND-2GNDpower in
RST-2Reset (active low)VCC: 5 V or 3.3 V by versioninput
VCCVCCRegulated 5 V or 3.3 V, matching the versionpower in
A3ADC3, Digital (D17)VCC: 5 V or 3.3 V by versionbidirectional
A2ADC2, Digital (D16)VCC: 5 V or 3.3 V by versionbidirectional
A1ADC1, Digital (D15)VCC: 5 V or 3.3 V by versionbidirectional
A0ADC0, Digital (D14)VCC: 5 V or 3.3 V by versionbidirectional
D13SPI SCK, Digital, LED_BUILTINVCC: 5 V or 3.3 V by versionbidirectional
D12SPI MISO, DigitalVCC: 5 V or 3.3 V by versionbidirectional
D11SPI MOSI, PWM, DigitalVCC: 5 V or 3.3 V by versionbidirectional
D10SPI SS, PWM, DigitalVCC: 5 V or 3.3 V by versionbidirectional
A4I2C SDA, ADC4, Digital (D18)VCC: 5 V or 3.3 V by versionbidirectional
A5I2C SCL, ADC5, Digital (D19)VCC: 5 V or 3.3 V by versionbidirectional
A6ADC6VCC: 5 V or 3.3 V by versioninput
A7ADC7VCC: 5 V or 3.3 V by versioninput
FTDI-BLKBLK (GND)power in
FTDI-GNDGNDpower in
FTDI-VCCVCCSame voltage as the board versionpower in
FTDI-RXIUART RXVCC: 5 V or 3.3 V by versioninput
FTDI-TXOUART TXVCC: 5 V or 3.3 V by versionoutput
FTDI-GRNAuto-resetVCC: 5 V or 3.3 V by versioninput

Arduino Pro Mini code

Every example here compiles for its board.

No library needed
// Arduino Pro Mini on Arduino Pro Mini: wiring and a free simulation at https://www.tinkered.ai/components/arduino-pro-mini
// Arduino Pro Mini 5 V / 16 MHz: blink the LED on D13 and read A0.
// Connect a potentiometer: ends to VCC and GND, wiper to A0.
// Open the Serial Monitor on the USB-serial adapter's port at 115200 baud.

const int LED_PIN = LED_BUILTIN;   // D13, green user LED
const int ANALOG_PIN = A0;
const float VREF_MV = 5000.0;      // the 5 V board's ADC reference is VCC

void setup() {
  pinMode(LED_PIN, OUTPUT);
  Serial.begin(115200);
  Serial.println("Pro Mini 5V ready");
}

void loop() {
  digitalWrite(LED_PIN, HIGH);
  delay(250);
  digitalWrite(LED_PIN, LOW);
  delay(250);

  int raw = analogRead(ANALOG_PIN);          // 10-bit: 0 to 1023
  float millivolts = raw * VREF_MV / 1023.0;
  Serial.print("A0 raw=");
  Serial.print(raw);
  Serial.print("  ");
  Serial.print(millivolts, 0);
  Serial.println(" mV");
}
Compiled for arduino:avr:pro on 2026-10-30

Before you wire it

Do
  • Match the USB-serial adapter to the board: a 3.3 V adapter for the 3.3 V Pro Mini, a 5 V adapter for the 5 V one (Arduino Pro Mini guide).
  • Pick the matching board option in the IDE: 'Arduino Pro or Pro Mini' with ATmega328P (5V, 16 MHz) or (3.3V, 8 MHz).
  • Line up BLK and GRN on the board with the black and green wires of the FTDI cable; some older boards have the header reversed (Arduino Pro Mini guide).
  • Feed unregulated power (a battery pack, 9 V, 12 V) to RAW, and only a regulated supply of the board's own voltage to VCC (Arduino Pro Mini docs).
  • Solder wires or headers to the inner A4/A5 holes for I2C (SparkFun tutorial).
Don’t
  • Never connect 5 V signals or a 5 V-powered module to the 3.3 V Pro Mini's pins: the absolute maximum on any pin is VCC + 0.5 V (ATmega328P datasheet, p. 308).
  • Never load the on-board regulator past 150 mA (SparkFun graphical datasheets); power motors, servos and LED strips separately with a shared ground.
  • Never use A6 or A7 with digitalRead() or as outputs: they are analog inputs only (ATmega328P datasheet, p. 14).
  • The RAW pin feeds the regulator; VCC is its output and can also be the input when you supply a regulated voltage directly (Arduino Pro Mini docs).
  • An adapter that brings out only TX, RX, VCC and GND has no DTR: press RESET just as the IDE finishes compiling to catch the bootloader.
  • On macOS and Linux the board resets each time a program opens its serial port, and the bootloader eats the first bytes sent for about half a second (Arduino Pro Mini docs).
  • For battery projects the power LED and the regulator's own draw dominate sleep current; makers often remove the LED and regulator and feed VCC from the cells.
  • The ADC's reference is VCC by default, so readings scale with whatever voltage the board runs at: 5 V or 3.3 V full scale.

Specifications

Microcontroller
ATmega328P, 16 MHz on the 5 V version, 8 MHz on the 3.3 V versionArduino Pro Mini documentation (docs.arduino.cc, retired boards)
Why 8 MHz at 3.3 V
The chip is rated 0 to 10 MHz at 2.7 V to 5.5 V and 0 to 20 MHz only at 4.5 V to 5.5 VMicrochip ATmega48A/PA/88A/PA/168A/PA/328/P datasheet (DS40002061B), p. 2
Memory
32 KB flash (30,720 bytes for sketches), 2 KB SRAM, 1 KB EEPROMArduino Pro Mini documentation (docs.arduino.cc, retired boards); ArduinoCore-avr boards.txt, pro entry
USB
None on board: a 5 V or 3.3 V USB-serial adapter on the 6-pin headerArduino guide 'Getting Started with the Arduino Pro Mini'
RAW input
Up to 12 V; SparkFun recommends 6 V to 12 V (5 V version) and 4 V to 12 V (3.3 V version)Arduino Pro Mini documentation (docs.arduino.cc, retired boards); SparkFun Arduino Pro Mini graphical datasheet, DEV-11113 (5 V/16 MHz); SparkFun Arduino Pro Mini graphical datasheet, DEV-11114 (3.3 V/8 MHz)
Regulator output
150 mA maximum at 5 V or 3.3 VSparkFun Arduino Pro Mini graphical datasheet, DEV-11113 (5 V/16 MHz); SparkFun Arduino Pro Mini graphical datasheet, DEV-11114 (3.3 V/8 MHz)
Current per I/O pin
40 mA absolute maximum, 20 mA recommended, 200 mA for the whole chipMicrochip ATmega48A/PA/88A/PA/168A/PA/328/P datasheet (DS40002061B), p. 308; SparkFun Arduino Pro Mini graphical datasheet, DEV-11113 (5 V/16 MHz)
I/O and ADC
14 digital I/O, 6 PWM (3, 5, 6, 9, 10, 11), 8 analog inputs on a 10-bit ADC; A6/A7 analog onlyArduino Pro Mini documentation (docs.arduino.cc, retired boards); Microchip ATmega48A/PA/88A/PA/168A/PA/328/P datasheet (DS40002061B), pp. 2, 14
Size
About 18 x 33 mm (0.7 x 1.3 in)Arduino Pro Mini documentation (docs.arduino.cc, retired boards)

From the Arduino Pro Mini documentation, published by SparkFun Electronics for Arduino (Microchip ATmega328P).

Common mistakes

  1. Choosing the wrong clock in Tools > Processor

    A 3.3 V/8 MHz board compiled as 16 MHz runs at half speed: delays double and the serial output is garbage. Upload also fails because the bootloader listens at a different rate. Pick the option that matches the crystal on your board.

  2. Wiring the 3.3 V Pro Mini to 5 V sensors

    A 5 V module's outputs and pull-ups push the 3.3 V board's pins past VCC + 0.5 V, the absolute maximum (ATmega328P datasheet, p. 308). Power the module at 3.3 V if it allows it, or use a level shifter.

  3. Swapping TX and RX to the adapter

    The board's TXO goes to the adapter's RXI and RXI to TXO. On the 6-pin header this is automatic when BLK and GRN line up with the FTDI cable's black and green wires (Arduino Pro Mini guide).

  4. Running 115200 baud on the 8 MHz board

    At 8 MHz the UART can only reach 115200 baud with a 3.5 % error (8.5 % without double speed), which many adapters reject (ATmega328P datasheet, p. 198). Use 57600 or less on the 3.3 V version.

Arduino Pro Mini questions

How do I program an Arduino Pro Mini?

Use a USB-to-serial adapter on the 6-pin header: an FTDI TTL-232R cable, a SparkFun FTDI Basic or a CH340/CP2102 board of the same voltage (Arduino Pro Mini guide; SparkFun tutorial). Connect DTR (or RTS) to GRN so the IDE can reset the board, select Arduino Pro or Pro Mini with the right voltage and clock, and upload.

What is the difference between the 5 V and 3.3 V Pro Mini?

The 5 V version runs at 16 MHz with a 5 V regulator; the 3.3 V version runs at 8 MHz with a 3.3 V regulator (Arduino Pro Mini docs). The slower clock is because the ATmega328P is only rated to 10 MHz below 4.5 V (datasheet, p. 2). Choose 3.3 V for 3.3 V sensors and single-cell lithium batteries, 5 V for 5 V modules.

What voltage can I put on the RAW pin?

Arduino says up to 12 V (Arduino Pro Mini docs). SparkFun's graphical datasheets recommend 6 V to 12 V on the 5 V board and 4 V to 12 V on the 3.3 V board, and the regulator supplies 150 mA at most.

Where are SDA and SCL on the Pro Mini?

I2C is on A4 (SDA) and A5 (SCL), two holes inside the board rather than on its edge rows (SparkFun tutorial). A6 and A7 sit beside them and are analog inputs only.

Can I use a CH340 adapter instead of an FTDI?

Yes. Any USB-to-serial converter works, including CH340 and CP210x boards, as long as its logic voltage matches the Pro Mini and you install its driver (SparkFun tutorial). Adapters with a DTR pin give automatic reset.

Arduino Pro Mini vs Nano: which should I use?

Both run the ATmega328P. The Nano adds a USB-serial chip and connector, so it programs over a cable; the Pro Mini leaves them out to be smaller and cheaper (Arduino Pro Mini guide). Use the Nano while developing, and the Pro Mini for a finished, battery-powered build.

Build something with the Arduino Pro Mini

  • Battery temperature logger

    A 3.3 V Pro Mini that wakes, reads a sensor and sleeps between readings.

    Build this
  • Wireless sensor node

    A Pro Mini sending readings over an nRF24L01 radio to a base station.

    Build this
  • Embedded LED controller

    A tiny 5 V board driving a short addressable LED strip inside a lamp.

    Build this
For AI assistants

This page as plain Markdown, for ChatGPT, Claude or your own agent. /components/arduino-pro-mini.md

What will you build with it?