How to use an Arduino UNO to program a Pro-Mini
The Arduino Pro-Mini is a tiny microcontroller board with capabilities similar to that of the UNO. It will work with a Vcc as little as 1.8v and with a little surgery it is possible to reduce the current drawn in power down sleep mode to just 5µA making it possible to run some devices for more than a year on a single 3v button cell. The best part about the Pro-Mini is the price. Boards can be purchased for less than 2 GBP or 2 USD making them useful for all kinds of things.
To keep the size down the USB socket has been omitted from the Pro-Mini board. The Pro-Mini can still be programmed through it's serial port using the onboard bootloader but you need a USB to serial adapter before you can connect it to your PC.
There is another annoying difference between the Pro-Mini and the UNO. The bootloaders are not the same and they behave slightly differently. As a result of this I got into trouble when I loaded my low power sleep program. It went to sleep ok but the bootloader forced it into a perpetual reset loop. While it was in that state I could not program it with the serial port. Time for a change of plan...
Programming with an Arduino ISP
The Pro-Mini can be programmed using an In System Programmer or ISP which bypasses the bootloader altogether. The ISP connects to a USB port on your PC and the ISP connector on the Pro-Mini. But hold on the Pro-Mini doesn't have an ISP connector so you have to connect the wires on a breadboard or something. Still not an ideal solution.
A purpose built Arduino ISP module isn't that easy to find and it costs about twice the price of a UNO. It turns out that you can use an Arduino UNO as an ISP so why not use one for programming the Pro-Mini.
Using an Arduino UNO as an ISP
There is a handy sketch in the examples section of the IDE that turns the UNO into a programmer. Once loaded and running on the UNO all you have to do is make the appropriate connections between the UNO and the Pro-Mini and you have the ability to program not only the application code but the bootloader and configuration fuses of the Pro-Mini too. It can also be used to program most other Arduinos that have ISP connectors.
Arduino UNO Pro-Mini ISP shield
I decided to build a shield rather than just lash up a few wires. That way I can easily use it over and over. I used Veroboard or copper stripboard to make the connections and mount terminal strips into which you can plug in a Pro-Mini. I've also included a 6 pin ISP connector on the shield so that I can program devices that have ISP connectors. You will find the layout for the shield later in this article.
Click to the circuit diagram page for the circuit diagram for the Arduino UNO ISP shield.