Arduino Pro Mini is a small microcontroller board that uses the popular AVR Atmel Atmega328p microcontroller chip just like its other variants popular variants like Arduino UNO and Arduino Nano.
The capability of this microcontroller board is equal to Arduino Uno because it contains the same Atmega328p microcontroller chip. The small size and low prices for this borad are the main factors making it more attractive when compare to the bulky and costly Arduino Uno board.

Arduino Pro Mini Board Variants
There are two very popular versions of arduino pro mini boards they include
- 3.3 board with 8MHz onboard crystal oscillator
- 5V board with 16MHz onboard crystal oscillator
The 5V version of Arduino Pro mini has 5 Volts regulator and 16MHz crystal oscillator clock on the board whereas the 3.3 Volts version of Arduino pro mini has 3.3 volts voltage regulator with an 8MHz onboard crystal oscillator.
You can checkout the following topics for more information on arduino voltage Regulator.
- Difference between 5 Volts and 3.3 Volts Arduino Pro Mini boards.
- How to identify if my Arduino boards support 5 volts or 3.3 volts.
- Can I apply 5Volts on a 3.3 volt Arduino Pro Mini board?
Pin diagram of Arduino Pro Mini Board
The complete, detailed, and cross-verified Pin Diagram of Arduino Pro Mini Board is given in the Figure below. Note the light green represents the associated pin number on the chip. The complete description for each color is provided in the table on the right.

Features of Arduino Pro Mini Board
Following are the features of Arduino pro mini board:
14 digital I/O pins:
There are 14 digital I/O on this board and out of these 14 Pins 6 can be used for PWM output. These pins are clearly marked in the Pin Description Figure that we checked above. You can also find it in the table given below. Pin 0 and 1 can also be used for serial communication using the UART protocol. Two timers T0 and T1 are associated with digital I/O Pin 4 and Pin 5 of the board. Furthermore, Pin 2 and Pin 3 have hardware dedicated interrupt capability however you can use any of the 14 digital I/) pins as interrupts that we will discuss in the future tutorials.

8 Analog Pins:
The SMD Atmel328p chip on this board has 8 channel ADC which can be used for interfacing 8 different analog sensors at the same time. Furthermore, the Analog input Pin A4 and A5 can also be utilized for the I2C communication protocol. Additionally, the first 6 Analog pins can be used as interrupts.

On board Voltage Regulator:
Arduino Pro Mini has either 3.3 volts voltage regulator or 5 volts voltage regulator. Voltage Regulator provides you the flexibility to power your Arduino Pro Mini boards using 5 to 12 volts unregulated voltage source.

Clock Frequency:
The 3.3 volts version of the Arduino pro mini board has an 8MHz onboard oscillator whereas, the 5-volt version has a 16MHz oscillator. Majority of the Arduino Pro Mini boards uses ceramic oscillator however, I have also seen Arduino Pro mini boards with a crystal oscillator. More info on oscillators will be discussed in the upcoming tutorials.
No USB Port:
Arduino Pro Mini Doesn’t come with a USB port and there no onboard programmer on this chip. Therefore you will have to program it using an external USB to TTL programmer.
No Soldered Connectors:
When you buy this board there will be no connectors soldered to the board. This actually provides you the flexibility to solder only those pins that are required for your project making your circuit more compact.
Built in Led:
There is a built-in LED connected to the SPI serial clock (SCLK, Pin 13) of Arduino pro mini. This LED will blink when Arduino Uno is connected to an SPI programmer (Like UBSASP). However, you can also use it as a digital input or output Pin.
Features of Atmega328p Microcontroller:
32KB Flash Memory:
Atmega328 has 32KB of flash memory and it is used to store the program on the board. This is nonvolatile memory which means when power is lost the code (program) that we have flashed remains there and the program will again start executing when the power is restored.
1KB of EEPROM:
The Atmega328p Chip comes with 1KB of Electrically Erasable read-only memory. This memory can be utilized for storing data over time by the microcontroller. It is a nonvolatile memory which means the data stored in the EEPROM will stay there even if the power is lost.
1KB of RAM:
The Atmega328p Microcontroller has 2KB of SRAM. This memory is used by the program while it is executing. The information on is memory is lost when the power is turned off. When the power is restored the program starts executing from the beginning and the contents of RAM are repopulated again.
32 8-bit Register
This Chip has 32 8-bit general-purpose registers. More information about the atmega328 architecture and program execution will be covered in the upcoming tutorials.

Software Required to program Arduino Pro Mini:
There are 2 methods by which you can program arduino pro mini.
The Easy Way:
The easiest way to program Arduino pro mini is by using the opensource Arduino IDE (integrated development environment). This software includes a compiler to convert your C code in binary and an uploader (avrdude) to upload the hex binary file onto the board.
My Favorite Way:
You have to compile the code separately using Avr-Gcc compiler to generate the executable file and then using Avr-ObjCopy to convert it into HEX file. Finally, Avrdude is used to upload the Hex file onto the board. Furthermore, Arduino IDE itself uses Avr-Gcc and Avrdude to compile and upload program onto the board.
How to connect Arduino Pro Mini to Computer:
In order to program the board, you will have to connect Arduino pro mini with the computer via a USB. However, this board doesn’t have any USB port and onboard programmer. So you need a USB to serial converter or another Arduino board serving as a programmer.
You can program Arduino pro mini using the following three methods.
- Programming Arduino Pro Mini via SPI port using a USBASP programmer.
- Programming Arduino Pro Mini via SPI port using another Arduino Uno or Mega board.
- Programming Arduino Pro Mini via USART using an FTDI, USB to TTL serial module.

Pin Description:
Lets talk about the different pins on the Arduino Pro mini board.
GND Pins:
GND Pins provide ground connections to the different sensors interfaced with the Arduino Pro Mini board and All of these pins are shorted together. To power Arduino Pro Mini with an external power source, connect the negative terminal of the battery to any of the ground pin.
Raw Pin:
This pin is used to power the Arduino pro mini and you can connect this pin to an unregulated power supply between 5 to 12 volts.
Vcc Pin:
These pins are connected to the output of the onboard voltage regulator. You can use them to power sensor or actuator modules. These pins can also be used to power your Arduino Pro Mini board however the voltage to the power source should be fixed 5V or 3.3V depending on the type of Arduino Pro Mini board.
PWM Pins:
The pins labeled as 3,5,6,9,10 and 11 provide PWM output functionality. This will comes in handy for controlling the speed of a motor or for producing analog outputs using this board.
Analog Pins:
Arduino Pro Mini has 8 analog pins labeled as A0 to A7. These pins are used to input analog signals to the microcontroller. The analog input applied on these pins is converted into a 10-bit digital value using its internal ADC.
Reset Pin:
This reset pin is connected to the reset button on the board. This pin will reset the microcontroller if a logic low voltage is applied for a short time. The program will start executing from the beginning after the microcontroller resets.
TXO & RXI Pins:
TXO & RXI pins are used by the internal USART module on the atmega328p chip and these pins can be used to interface Arduino pro mini with other devices using the UART protocol.
FTDI Header:
This header is used for programming the atmega328p using the USART module. These pins include TXO, RXI, DTR, Vcc, Gnd, and Gnd. The TXO and RXI are the same USART pins as discussed above. The Vcc and Ground Pins of the FTDI Header are used to power the Arduino pro mini using the FTDI programmer while uploading the code.
DTR Pin:
The Data-Terminal-Ready pin is used by the FTDI programmer to auto-reset the Arduino Pro Mini for uploading a new program on the board.
More discussion about the DTR pin will be discussed in Arduino Schematic post.
SPI Pins:
The SPI (Serial Peripheral Interface) Pins allows the microcontroller to communicate with sensors and other devices using the SPI protocol. They include Pin 10 (SS), Pin 11 (MOSI), Pin 12 (MISO), and Pin 13 (SCK) as shown in the pin diagram above
I2C Pins:
The analog Pins A4 and A5 are also connected to the I2C communication module. A4 is the serial data line (SDA) whereas A5 is the serial clock line (SCL). Using this protocol the data is sent on the SDA whereas SCL is used for clock synchronization.
More information about the I2C protocol will be discussed in the upcoming tutorials.
Schematic of Arduino Pro Mini:
The schematic of the Arduino Pro Mini is shown in the Figure given below. It is a fairly simple board with simple schematics. On the top right corner, you can see the schematics for the voltage regulator. This voltage regulator takes unregulated input voltage Vraw at the input and generates Vcc at the output.

The DTR pin is connected to the reset pin of the microcontroller through the auto-reset circuit which we will discuss in the upcoming tutorial. You can also see the crystal oscillator interfaced with the microcontroller.
Furthermore, an led is connected to pin 13 of the microcontroller. The schematic of Arduino pro mini will be fully explained in our upcoming tutorials.
Comparison of Arduino Pro Mini with Other Arduino boards:
Most of the Arduino boards come with a USB interface and onboard programmer making it easy to flash code onto the microcontroller program memory. But in case of Arduino Pro Mini, you will have to flash the Atmel atmega328p microcontroller chip using an external programmer.
The compact size of this board makes this device unique and more practical for using it in embedded systems and this also makes it incompatible with Arduino shields. Inorder to interface such shield you will have to hardwire them with the board.
What are the Applications in which we can use this board?
You can use this board in a wide variety of applications. The small form factor and ease of use make it stand out when compared to the other boards. You can use this board in the following applications.
- Embedded Systems
- IoT applications
- Home Automation
- Display Systems
- Robotics