Unable to program Pro Mini with UNO R3

I've recently purchased an Arduino Pro Mini (5, 16). I've read that the easiest way to program it if you already have a UNO is using it as ISP.

So I connect UNO's pins 10, 11, 12, 13, GND and 5V to Pro Mini's RST, 11, 12, 13, GND and Vcc, just like I read in many tutorials.

Then I upload the example 'Arduino ISP' from my IDE (v. 1.6.7.) to my UNO, using AVRISP mkll programmer, and change the IDE board option to Arduino Pro or Pro Mini (5, 16). I also change my programmer to Arduino as ISP, and load Using Programmer a timing-modified Blink project.

I am surprised when I get the following error:

 programmer not responding: not in sync

Does somebody know why is this happening? Thanks for your attention :smiley:

First, that's NOT the easiest option in my opinion. That's just using the Serial of the Uno. Just connect Vcc, GND, pin 0 and pin 1 to of the Uno and Pro Mini. And add a link between RST and GND on the Uno. Select the port of the Uno, select Pro Mini as board and go.

Bij ISP is possible. But you have to prevent the Uno from resetting. Add a link between RST and 5V on the Uno to do so after you uploaded the ArduinoISP sketch (reset is still needed for that).

So an option would be connecting each boards' 1 & 2 pins to the other one, 5V and GND?

And what do you mean with a link? Link pins with a normal jumper wire?

Yep and yep.

A Link/connection between RST and GND on the Uno will keep the Uno in reset so it will not interfere with the serial communication between PC and Pro Mini.

Right, I'll try it tomorrow. Do I use 'Arduino as ISP' and 'Upload using programmer'? I assume that ArduinoISP should be loaded in Uno, shouldn't

IF you want to do it the easy way (with pin 0 and pin 1 aka RX and TX), no. The Uno just acts as a USB to serial converter. What sketch is on the Uno doesn't matter, it's in reset the whole time. In the IDE you just have to select the Pro Mini as a board so it uses the right baudrate.

Only when you want to do it the ISP way you need the ArduinoISP sketch.

Oops... While in my Pro Mini pin 0 is TX, my Uno is RX, and vice versa. Should I connect RX-RX & TX-TX or RX-TX & TX-RX?

Also, I'm not clear about the programmer I should use, can I just choose AVRISP mkII?

First of all, you're not using a programmer so the programmer setting doesn't matter. You do a normal serial upload like you do the the Uno as well. Only the Pro Mini has no usb to serial on board so you need another serial source. You can use a separate usb to serial like the FTDI CH341 Prolif etc. ou can even use a PC with a real COM port as long as you cenvert it to TTL. But you can also use another Arduino which has a USB to serial on it. And you have a Uno and that does have one. And by keeping the reset on the Uno (with the link/jumper) the Uno is out of the equation. Now you can just use the Serial (no programmer involved) to talk to the Pro Mini (that's why you have to set the board to Pro Mini even though you talk through the serial of the Uno because you talk to the Pro Mini!)

And Rx must go to Rx and Tx to Tx. Normally it's the other way around but the Rx label referce to the Atmega Rx which is connected to the Tx of the USB to serial. And I must say, I never noticed they switched them on a Pro Mini :o

[Edit]
To make it even more clear a quote from DrAzzy from another topic.

DrAzzy:
The ide doesn't make it clear that you only use the programmer for advanced processes like bootloading or uploading to chips without a bootloader. The menu is ignored when uploading sketches normally.

Thanks for your explanation, it was really precise! Unfortunately, I still keep getting this error:

System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM3
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xc6
avrdude: stk500_recv(): programmer is not responding

My Uno seems to be working well: The On and the built-in LED are on and not blinking, as I think it should be; but my Pro blinks every second, executing its default code. What could be the problem? I'm attaching a couple of pictures of my setup.

FOOTAGE:

First image

Second image

I'm terribly sorry! Most have left my thinking hat in bed this morning. You also need to have a reset on the Pro Mini when you start programming. Now you post pictures (excellent!!) I just thought of that. I use my Pro Mini's with a separate usb to serial all the time (have a bucket full...).

Two options:

  1. Do it yourself. Press the reset of the Pro Mini (and keep pressed), hit upload in the IDE an release rest the moment it shows "Upload..." in the aqua bar.

  2. Use the auto reset. Now because you have a real Uno it's pretty easy. Just remove the IC from the Uno, yes, out of it socket. Now the connection between isn't necessary anymore. There is no Uno that can interfere. Instead connect RST of the Uno to the RST of the Pro Mini. The DTR pin of the serial header should also work.

I'm sorry to say that none of the solutions work :frowning: This is frustrating :frowning: Thanks for your dedication, I'm giving you karma for your service.

xvlaze:
So I connect UNO's pins 10, 11, 12, 13, GND and 5V to Pro Mini's RST, 11, 12, 13, GND and Vcc, just like I read in many tutorials.

Ok, here's the deal (I think): Because you started out doing some stuff with ISP programming, you may have uploaded the blink sketch and wiped out the bootloader before you got that error message "programmer not responding: not in sync". So your Pro Mini is in an unknown condition. I recommend burning the bootloader fresh on it using your Uno loaded with the ArduinoISP sketch.

Upload ArduinoISP sketch to Uno
Connect UNO's pins 10, 11, 12, 13, GND and 5V to Pro Mini's RST, 11, 12, 13, GND and Vcc
Connect a 10uF or bigger capacitor to the Uno with the striped or neg lead on GND and pos lead on Reset.
Select on the Tools menu:
Programmer: Arduino as ISP
Board: Pro Mini
Port: port of the Uno
Burn Bootloader

If you get the message Done Burning Bootloader, the Pro Mini is ready. Disconnect everything and connect your Pro Mini to a USB-to-serial adapter and upload a sketch (such as the blink sketch) to it. If you don't have a USB-to-serial adapter, I recommend getting one of these: FTDI Basic Breakout 5V/3.3V With USB cable

If you don't have a USB-to-serial adapter yet, I recommend ordering one, and while you are waiting for it to arrive you should be able to use your Uno. Connect:
Uno Pro Mini
RX RX
TX TX
5V VCC
GND GND
On the Uno connect Reset to GND, this will suspend the processor on the Uno to keep it from interfering with the upload to the Pro Mini. Instead of connecting Reset to GND you could remove the ATmega328P from the Uno, but if you do, be careful not to bend/break the pins.

In the IDE select the Uno port and select the Pro Mini board, compose a sketch and click the upload button. Press and hold the reset button on the Pro Mini. When the IDE changes from Compiling to say Uploading, release the reset button on the Pro Mini.

Yep, that can be the problem. But if you going to burn a bootloader I would sugest to burn the Uno bootloader and treat the Pro Mini after that as Uno in the IDE. Pro Mini and Uno have the same micro controller (ATmega328p) but the Uno bootloader is smaller and faster. (Actually the Pro Mini has the old bootloader the first Arduinos once had.)