The overview, with examples running, is on the board page.

The Arduino Pro Mini

The Uno's chip on the smallest Arduino there is, with no USB on it, in the two builds it was always sold in: 5 V at 16 MHz, and 3.3 V at 8 MHz.

What it is

An ATmega328P on a board 33 by 18 mm, with two rows of twelve holes 0.6 inch apart and a six-pin FTDI header on the short end. There is no USB socket and no USB-to-serial chip: on the bench you plug a USB-serial adapter into that header to load a sketch and to see Serial. Here the serial monitor reaches the chip's USART directly, as it does on the Nano, and pins 0 and 1 stay plain GPIO.

It is the same chip as the Nano, in the same TQFP package, so everything the Nano page says about the core, the timers, the USART, the ADC and EEPROM is true here too.

The two builds

There are two parts in the bin, and the difference between them is the whole reason to pick one.

Pro Mini 5 V Pro Mini 3.3 V
Supply on VCC 5 V 3.3 V
Clock 16 MHz crystal 8 MHz resonator
A pin driven HIGH 5 V 3.3 V
analogRead full scale 5 V 3.3 V
Programs it runs the Nano's its own, built for 8 MHz

The 3.3 V board runs at 8 MHz because the ATmega328P is not rated for 16 MHz at 3.3 V (the data sheet's speed grades, section 28.3). Every timer, the USART and the ADC count clock cycles, so all of them slow down with it. A sketch built for 16 MHz and loaded onto the 3.3 V board runs at half speed: delay(1000) takes two seconds and 9600 baud comes out at 4800. That is what happens on a real board when the IDE's board menu is set wrong, and it happens here the same way. Sketches you write for the 3.3 V board are compiled with F_CPU at 8 MHz, so they keep time.

At 8 MHz millis() moves two at a time, because a timer 0 overflow is 2048 microseconds, and 115200 baud is 3.5 percent fast. Use 57600, which is what 8 MHz boards have always used.

Pins

Down the left, with the FTDI header at the top: TXO (pin 1), RXI (pin 0), RST, GND, then pins 2 to 9. Down the right: RAW, GND, RST, VCC, A3 to A0, then 13, 12, 11 and 10. Pin 13 has the green LED.

A4 to A7 are four more holes inside the board. Here they sit on the board's center line, which is over a breadboard's channel when the board straddles it, so they never short to a strip; reach them with a jumper. A4 and A5 are also I2C's SDA and SCL. A6 and A7 are analog inputs and nothing else, as on the Nano.

VCC is the regulator's output, at the board's own voltage, and it is a supply for the rest of the breadboard. RAW is the regulator's input and is ignored: the board is always powered. There is no 3V3 pin and no AREF pin.

What is modeled

  • The whole ATmega328P, as on the Nano: every instruction with its data sheet cycle count, three timers in every mode, USART0, the ADC, interrupts, sleep and EEPROM.
  • The clock and the supply of each build: 16 MHz and 5 V, or 8 MHz and 3.3 V, for the pins, the pull-ups, RESET and AVCC.
  • The LED on pin 13, and RESET at both ends of the board on one trace.

What is not modeled

  • The FTDI header and the adapter that goes on it. Serial reaches the monitor directly; the DTR pin that resets the board on upload is not there.
  • The regulator. VCC is an ideal rail that cannot sag, and RAW is not looked at, so a battery on RAW does not power anything.
  • The power LED's current, and the resonator's one percent tolerance: the 8 MHz here is exact.
  • The ATmega168 builds of the board.

Starter project

Pro Mini at 3.3 V is the 3.3 V board across a breadboard with a potentiometer across its supply on A7 fading an LED on pin 9, and the reading printed in millivolts: it shows why a count of 1023 means 3.3 V on this board and 5 V on the other. Pro Mini blink is the 5 V board running the Nano's Blink on an LED on pin 13.