Arduino Pro Mini (5 V)
Interactive Arduino Pro Mini pinout with RAW vs VCC, the hidden A4–A7 pads and FTDI upload wiring explained, 5 V vs 3.3 V versions, and a compile-checked blink.
Community draft — report a mistake
The Pro Mini is the smallest classic Arduino: an ATmega328P, a crystal, a regulator and a reset button on an 18 × 33 mm board — and no USB. Leaving out the USB chip makes it cheap and lets it sleep at a few µA once you remove the power LED and regulator. That’s why it’s still a favourite for battery sensors, RF433/nRF24 nodes and permanent builds.
Compared with the Nano: same chip and same code, but smaller and lower power. You need a separate USB-serial adapter to program it, plus a bit of soldering. Choose the Nano for breadboard learning; choose the Pro Mini when the board goes into a box and runs on batteries.
Upload wiring (adapter → Pro Mini): GND → GND, VCC (set the adapter to 5 V for this board) → VCC, TXD → RXI, RXD → TXO, DTR → GRN. Most adapters have the same 6-pin order, so they plug straight onto the programming header.
The pinout is drawn with that programming header at the top. Digital pins are printed as bare numbers on the board; we write them D2–D13 to match the Uno and Nano pages. Clone layouts differ slightly — older Mini 03 boards have one GND a pin higher, and some clones put A4–A7 at the far end — so check your silkscreen.
Interactive pinout
Hover or tap a pin for its functions and traps. Filter to light up every I2C, ADC or boot pin.
- Safe for most uses
- Works, with a caveat
- Avoid unless you know why
- Power / control
5 V or 3.3 V? Check the crystal. Read the crystal can or the board marking: 16.000 MHz = the 5 V board, 8.000 MHz = the 3.3 V board. Choose the matching Processor, or uploads fail and Serial prints garbage.
RAW or VCC — never both. Unregulated 6–12 V goes on RAW; a regulated supply goes on VCC. Two supplies on RAW and VCC at once fight each other. The tiny regulator gives about 100–150 mA, so power servos and LED strips separately.
A4/A5 (I2C) are not on the edge rows. They are extra pads inside the board, as are A6/A7. Solder short headers or wires to them before you plan an I2C display or sensor.
Uno-compatible code. Same ATmega328P as the Uno and Nano, so the same sketches and libraries work; only the pin labels on the board are bare numbers.
Set up your computer
- Install Arduino IDE 2.x from arduino.cc.
- Boards Manager → install Arduino AVR Boards (we compile against avr 1.8.8).
- Tools → Board → Arduino Pro or Pro Mini (Tools → Processor → ATmega328P (5V, 16 MHz)), then pick the port that appears when you plug the board in.
Your platformio.ini:
[env:pro16MHzatmega328]
platform = atmelavr
board = pro16MHzatmega328
framework = arduino
monitor_speed = 9600[env:pro16MHzatmega328] platform = atmelavr board = pro16MHzatmega328 framework = arduino monitor_speed = 9600
First program
// First program for the Arduino Pro Mini (5 V, 16 MHz): blink the LED on pin 13 and print to Serial.
// Upload through a USB-serial adapter (FTDI / CP2102 / CH340): GND-GND, VCC-VCC (5 V),
// adapter TXD -> RXI, adapter RXD -> TXO, DTR -> GRN for auto-reset.
// Have the 3.3 V / 8 MHz board? Pick Processor "ATmega328P (3.3V, 8 MHz)" or Serial prints garbage.
void setup() {
Serial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
Serial.println(F("FlashReady: Pro Mini blink"));
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
Serial.println(F("LED on"));
delay(500);
digitalWrite(LED_BUILTIN, LOW);
Serial.println(F("LED off"));
delay(500);
}// First program for the Arduino Pro Mini (5 V, 16 MHz): blink the LED on pin 13 and print to Serial.
// Upload through a USB-serial adapter (FTDI / CP2102 / CH340): GND-GND, VCC-VCC (5 V),
// adapter TXD -> RXI, adapter RXD -> TXO, DTR -> GRN for auto-reset.
// Have the 3.3 V / 8 MHz board? Pick Processor "ATmega328P (3.3V, 8 MHz)" or Serial prints garbage.
void setup() {
Serial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
Serial.println(F("FlashReady: Pro Mini blink"));
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
Serial.println(F("LED on"));
delay(500);
digitalWrite(LED_BUILTIN, LOW);
Serial.println(F("LED off"));
delay(500);
}Components with Arduino Pro Mini (5 V)
Common errors
avrdude: stk500_recv(): programmer is not responding / not in sync
Cross the data lines: adapter TXD → RXI and adapter RXD → TXO. Wire the adapter’s DTR to GRN so the IDE can reset the board; without DTR, press the reset button the moment “Uploading…” appears.
Serial Monitor shows garbage at the right baud rate
The Processor setting doesn’t match the crystal. 8 MHz board compiled as 16 MHz runs everything at half speed. Pick ATmega328P (3.3V, 8 MHz) for the 8 MHz board.
Port not showing
The board has no USB — the port belongs to the adapter. Install its driver (CH340 from wch-ic.com, CP210x from Silicon Labs) and use a data USB cable.
Regulator gets hot or the board resets when a relay clicks
The on-board regulator is tiny. Feed RAW no more than 12 V (9 V is kinder), and power relays, servos and modules from their own 5 V supply with a common GND.