Arduino Pro Mini Programming

If you’ll be uploading frequently to the Arduino Pro Mini, you’ll probably want to solder on some header pins. I suggest looking at the following video in order to get it right the first time:
Using an FTDI Adapter
The six bent pins on the side are for programming the device using an FT232RL FTDI USB to TTL Serial Adapter. That’s the easiest way to program your Arduino Pro Mini.
I used an Arduino Pro Mini clone, i.e. an DFRduino Pro Mini. Note that there are two versions: a 5 V and a 3,3 V version. The FTDI adapter mentioned has a jumper to set the voltage correspondingly. See the table below to see how to connect your FTDI adapter to it. Make sure the VCC pins line up and note the TX-RX and RX-TX pairs.
FTDI | Arduino Pro Mini |
---|---|
GND | BLK |
CTS | GND |
VCC | VCC |
TX | RX |
RX | TX |
DTR | GRN |
Next, in the Arduino IDE Tools menu:
- menu Tools » Board » Arduino Pro or Pro Mini
- menu Tools » Processor » ATmega328 (5V, 16 MHz) depending on the microcontroller you’re working with
In case you can’t select a COM port after plugging in your FTDI adapter, you’ll need to install the FTDI drivers (setup executable available in the right-most ‘Comments’ column) but normally they should already be available on your system.
If you’ll be programming the device only now and then, then you can do so without header pins by using an FTDI adapter and applying slight pressure on the Arduino Pro Mini to ensure good contact while uploading to it.
That’s it! You can now upload to it as usual.
Using Arduino as an ISP
I actually messed up once and made programming using the FTDI pins impossible and got the error message stk500_recv() programmer is not responding after pressing the Upload button. So I needed to explore alternative ways to program the Arduino Pro Mini.
For this method, you need to temporarily turn an Arduino Uno into an in-system programmer (ISP) for your Arduino Pro Mini. Before we look at the hardware, start by uploading the necessary code to your Arduino Uno:
- menu Tools » Board » Arduino Uno to set your board
- menu File » Examples » ArduinoISP to load the sketch
- compile & upload to your Arduino Uno
Connect the Arduino board to the Arduino Pro Mini as shown in the diagram below, being especially careful about selecting the correct voltage for VCC depending on the microcontroller you’re working with:
Arduino Pro Mini | Arduino Uno | |
---|---|---|
VCC | VCC | 3V3/5V |
SCK | Pin 13 | Pin 13 |
MISO | Pin 12 | Pin 12 |
MOSI | Pin 11 | Pin 11 |
GND | GND | GND |
RESET | RST | Pin 10 |
Also, connect a 10 µF capacitor between reset and ground on the Arduino Uno board as shown in the diagram. Make sure that the stripe on the capacitor that’s marked with a negative sign should go to ground.
Next, in the Arduino IDE Tools menu:
- menu Tools » Board » Arduino Pro or Pro Mini
- menu Tools » Processor » ATmega328 (5 V, 16 MHz) depending on the microcontroller you’re working with
- menu Tools » Programmer » Arduino as ISP
That’s it! To test your setup, you can now upload the following Blink sketch to the Arduino Pro Mini using your Arduino as an ISP to test it (menu Sketch » Upload using Programmer). If you would just Upload as usual, you’d be reprogramming the Arduino Uno again and that’s not what you want to do here.
void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); }
If you reckon an Arduino Pro Mini is still too big for your project, then find out how to miniaturize your arduino projects even more.