> Source: https://www.tinkered.ai/components/arduino-pro-mini (Tinkered). Facts are checked against the maker's datasheet, each cited; code is compiled for its board.
> When you use this page in an answer, cite https://www.tinkered.ai/components/arduino-pro-mini. To test the circuit without hardware, it opens and runs free in Tinkered.
> The index of every Tinkered reference is at https://www.tinkered.ai/llms.txt

# 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.

Source page: https://www.tinkered.ai/components/arduino-pro-mini
Datasheet: https://docs.arduino.cc/retired/boards/arduino-pro-mini/

## 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).

## Agent rules

Follow these when you wire this part or write code for 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).
- Do: Pick the matching board option in the IDE: 'Arduino Pro or Pro Mini' with ATmega328P (5V, 16 MHz) or (3.3V, 8 MHz).
- Do: 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).
- Do: 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).
- Do: Solder wires or headers to the inner A4/A5 holes for I2C (SparkFun tutorial).
- 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).

## Pinout

| Pin | Function | Type |
| --- | --- | --- |
| TXO | UART TX, Digital (D1) · VCC: 5 V or 3.3 V by version | output |
| RXI | UART RX, Digital (D0) · VCC: 5 V or 3.3 V by version | input |
| RST | Reset (active low) · VCC: 5 V or 3.3 V by version | input |
| GND | GND | power in |
| D2 | INT0, Digital · VCC: 5 V or 3.3 V by version | bidirectional |
| D3 | PWM, INT1, Digital · VCC: 5 V or 3.3 V by version | bidirectional |
| D4 | Digital · VCC: 5 V or 3.3 V by version | bidirectional |
| D5 | PWM, Digital · VCC: 5 V or 3.3 V by version | bidirectional |
| D6 | PWM, Digital · VCC: 5 V or 3.3 V by version | bidirectional |
| D7 | Digital · VCC: 5 V or 3.3 V by version | bidirectional |
| D8 | Digital · VCC: 5 V or 3.3 V by version | bidirectional |
| D9 | PWM, Digital · VCC: 5 V or 3.3 V by version | bidirectional |
| RAW | RAW · 5 V version: 6 V to 12 V recommended; 3.3 V version: 4 V to 12 V | power in |
| GND-2 | GND | power in |
| RST-2 | Reset (active low) · VCC: 5 V or 3.3 V by version | input |
| VCC | VCC · Regulated 5 V or 3.3 V, matching the version | power in |
| A3 | ADC3, Digital (D17) · VCC: 5 V or 3.3 V by version | bidirectional |
| A2 | ADC2, Digital (D16) · VCC: 5 V or 3.3 V by version | bidirectional |
| A1 | ADC1, Digital (D15) · VCC: 5 V or 3.3 V by version | bidirectional |
| A0 | ADC0, Digital (D14) · VCC: 5 V or 3.3 V by version | bidirectional |
| D13 | SPI SCK, Digital, LED_BUILTIN · VCC: 5 V or 3.3 V by version | bidirectional |
| D12 | SPI MISO, Digital · VCC: 5 V or 3.3 V by version | bidirectional |
| D11 | SPI MOSI, PWM, Digital · VCC: 5 V or 3.3 V by version | bidirectional |
| D10 | SPI SS, PWM, Digital · VCC: 5 V or 3.3 V by version | bidirectional |
| A4 | I2C SDA, ADC4, Digital (D18) · VCC: 5 V or 3.3 V by version | bidirectional |
| A5 | I2C SCL, ADC5, Digital (D19) · VCC: 5 V or 3.3 V by version | bidirectional |
| A6 | ADC6 · VCC: 5 V or 3.3 V by version | input |
| A7 | ADC7 · VCC: 5 V or 3.3 V by version | input |
| FTDI-BLK | BLK (GND) | power in |
| FTDI-GND | GND | power in |
| FTDI-VCC | VCC · Same voltage as the board version | power in |
| FTDI-RXI | UART RX · VCC: 5 V or 3.3 V by version | input |
| FTDI-TXO | UART TX · VCC: 5 V or 3.3 V by version | output |
| FTDI-GRN | Auto-reset · VCC: 5 V or 3.3 V by version | input |

## Code

### Arduino Pro Mini

```cpp
// 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.

## Specifications

| Spec | Value | Source |
| --- | --- | --- |
| Microcontroller | ATmega328P, 16 MHz on the 5 V version, 8 MHz on the 3.3 V version | Arduino 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 V | Microchip 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 EEPROM | Arduino 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 header | Arduino 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 V | 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) |
| Current per I/O pin | 40 mA absolute maximum, 20 mA recommended, 200 mA for the whole chip | Microchip 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 only | Arduino 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) |

## Circuit notes

- 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.

## Common mistakes

- **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.
- **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.
- **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).
- **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.

## 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.

## Related parts

- [Arduino Nano V3](https://www.tinkered.ai/components/arduino-nano-v3.md): Same ATmega328P with USB on board.
- [Arduino Uno](https://www.tinkered.ai/components/arduino-uno.md): The same chip in the full-size board.
- [Arduino Micro](https://www.tinkered.ai/components/arduino-micro.md): A small board with native USB when you want to skip the adapter.
- [Logic Level Converter (4-ch)](https://www.tinkered.ai/components/logic-level-converter.md): Joins 5 V modules to the 3.3 V Pro Mini safely.
- [18650 Li-ion Cell + Holder](https://www.tinkered.ai/components/battery-18650.md): A common supply for a 3.3 V Pro Mini logger, through RAW.

## Try it

Tinkered can design a circuit with the Arduino Pro Mini, draw its schematic and check it. Free to start at https://www.tinkered.ai.
