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,
RESETandAVCC. - The LED on pin 13, and
RESETat both ends of the board on one trace.
What is not modeled
- The FTDI header and the adapter that goes on it.
Serialreaches the monitor directly; theDTRpin that resets the board on upload is not there. - The regulator.
VCCis an ideal rail that cannot sag, andRAWis not looked at, so a battery onRAWdoes 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.