Arduino Pro Mini: The Tiny Powerhouse for Embedded Projects
A compact and versatile microcontroller board based on the ATmega328P, ideal for projects where size and power efficiency are critical.

The Arduino Pro Mini is a small form-factor microcontroller board developed by SparkFun Electronics in collaboration with Arduino. Released around 2008, it was designed to be a cost-effective and compact solution for embedded applications that didn't require the USB-to-serial converter found on larger Arduino boards like the Uno. Its small size makes it perfect for integration into custom enclosures and portable devices.
At the heart of the Arduino Pro Mini is the Atmel ATmega328P microcontroller. This 8-bit AVR RISC architecture microcontroller offers a good balance of processing power, memory, and peripheral capabilities for a wide range of embedded tasks. It features 32KB of Flash memory for program storage, 2KB of SRAM for data, and 1KB of EEPROM for persistent configuration data. The ATmega328P operates at either 3.3V or 5V, with the Pro Mini typically available in both variants.
The Pro Mini occupies a niche between the larger, more beginner-friendly Arduino boards and more powerful, complex microcontrollers. It's suited for makers, students, and engineers who need a reliable and small platform for projects that are either space-constrained or require a low power footprint. Its lack of onboard USB-to-serial conversion means it requires an external programmer (like an FTDI adapter) but also contributes to its smaller size and lower cost.
This board is an excellent choice for projects such as wearable electronics, compact sensor nodes, remote control systems, and custom automation devices. Its simplicity, combined with the vast Arduino ecosystem of libraries and community support, makes it accessible even for those new to embedded systems, while its capabilities satisfy more experienced engineers looking for a dependable, small-footprint solution.
Watch
Related video, embedded from YouTube.
Specifications
| Microcontroller / SoC | Atmel ATmega328P |
| Architecture | 8-bit AVR RISC |
| Clock speed | 16 MHz (for 5V version), 8 MHz (for 3.3V version) |
| Flash / Storage | 32 KB (2 KB used by bootloader) |
| RAM / SRAM | 2 KB |
| EEPROM | 1 KB |
| Operating voltage | 3.3V or 5V (board variant specific) |
| Digital I/O pins | 14 |
| Analog / ADC | 8 (6 usable as digital pins) |
| PWM | 6 pins (digital pins 3, 5, 6, 9, 10, 11) |
| Connectivity | ICSP header for ISP programming, I2C, SPI |
| USB | None onboard (requires external programmer) |
| Power input | External 3.3V or 5V regulated supply, or via VIN pin (with onboard regulator on some variants) |
| Dimensions | Approximately 18mm x 33mm |
Pinout & pin functions
| Pin | Function |
|---|---|
| GND | Ground |
| RAW / VIN | External power input (connect to voltage regulator output or battery) |
| VCC / 3.3V / 5V | Regulated power output (3.3V or 5V depending on board variant) |
| RST | Reset pin (active low) |
| D0 (RX) | Serial Receive (UART RX) |
| D1 (TX) | Serial Transmit (UART TX) |
| D2 | Digital I/O |
| D3 | Digital I/O, PWM |
| D4 | Digital I/O |
| D5 | Digital I/O, PWM |
| D6 | Digital I/O, PWM |
| D7 | Digital I/O |
| D8 | Digital I/O |
| D9 | Digital I/O, PWM |
| D10 (SS) | Digital I/O, PWM, SPI Slave Select |
| D11 (MOSI) | Digital I/O, PWM, SPI Master Out Slave In |
| D12 (MISO) | Digital I/O, SPI Master In Slave Out |
| D13 (SCK) | Digital I/O, SPI Serial Clock |
| A0 | Analog Input, Digital I/O |
| A1 | Analog Input, Digital I/O |
| A2 | Analog Input, Digital I/O |
| A3 | Analog Input, Digital I/O |
| A4 (SDA) | Analog Input, Digital I/O, I2C Data |
| A5 (SCL) | Analog Input, Digital I/O, I2C Clock |
| AREF | Analog Reference pin |
| GND | Ground |
Wiring & circuit basics
Powering the Arduino Pro Mini requires careful attention to its operating voltage (3.3V or 5V) and the power input method. If your Pro Mini is a 5V variant, you can typically power it with a regulated 5V supply connected to the VCC pin or via the RAW/VIN pin if the board has an onboard 3.3V regulator (check your specific board's documentation). For 3.3V variants, use a regulated 3.3V supply. Avoid applying voltages higher than the board's rated operating voltage directly to the VCC pin, as this can damage the ATmega328P. The RAW/VIN pin can often accept a higher voltage (e.g., 7-12V) which is then regulated down by an onboard regulator to the board's operating voltage, but this is not present on all Pro Mini variants.
Logic levels are crucial when interfacing external components. A 5V Pro Mini operates at 5V logic, while a 3.3V Pro Mini uses 3.3V logic. Ensure that any sensors or modules you connect are compatible with these logic levels. For example, connecting a 5V sensor to a 3.3V Pro Mini might require a logic level shifter to prevent damage. Conversely, connecting a 3.3V sensor to a 5V Pro Mini might result in unreliable readings if the sensor's output voltage is too low for the Pro Mini's input threshold.
A basic example is lighting an LED. Connect the anode (longer leg) of an LED to a digital pin (e.g., D9) on the Pro Mini. Connect the cathode (shorter leg) of the LED through a current-limiting resistor (typically 220-330 ohms for a 5V system, slightly lower for 3.3V) to a GND pin. When you set D9 as an output and HIGH, the LED will turn on. For an I2C sensor like a BME280, connect its VCC to the Pro Mini's VCC (3.3V or 5V), its GND to a GND pin, its SDA pin to the Pro Mini's SDA (A4), and its SCL pin to the Pro Mini's SCL (A5).
Programming & getting started
The most common way to program the Arduino Pro Mini is using the Arduino IDE. Because it lacks an onboard USB-to-serial converter, you will need an external USB-to-TTL serial adapter, such as an FTDI adapter or a CH340-based module. Connect the adapter's TX pin to the Pro Mini's RX (D0) pin, the adapter's RX pin to the Pro Mini's TX (D1) pin, the adapter's GND to a GND pin on the Pro Mini, and the adapter's VCC to the Pro Mini's VCC (ensure voltage compatibility, usually 5V for programming 5V boards). Select the correct board (Arduino Pro or Pro Mini) and processor (ATmega328P) in the Arduino IDE, choose the correct serial port for your adapter, and upload your sketch.
To upload your first program (e.g., the Blink sketch), open the Arduino IDE, select the Pro Mini board and the correct COM port for your FTDI adapter. Paste the Blink code, modify the LED_BUILTIN pin if necessary (the Pro Mini doesn't have a built-in LED connected to a standard pin, so you'll typically use a digital pin like D9), and click the Upload button. You may need to press the reset button on the Pro Mini just before or as the IDE indicates it's compiling or uploading to synchronize the upload process.