How to use Arduino Nano v.3 as ISP with ATMega2560

Hi everyone!

I have a problem with Arduino ATMega2560 board that was bought at The problem is that this board arrived without bootloader. So I decided to buy another one Arduino: Arduino Nano ATMega328P v.3 to use it in other projects as arduino and to flash bootloader into my Arduino ATMega2560.

I’ve connected Arduino Nano with Arduino using following instructions:
ICSP pinout here:

So I’ve connected these boards this way:
Arduino Nano - Arduino ATMega2560
D11 - ICSP pin#4 (MOSI)
D12 - ICSP pin#1 (MISO)
D13 - ICSP pin#3 (SCK)
5V - ICSP pin#2 (+5V)
D10 - ICSP pin#5 (RST)
GND - ICSP pin#6 (GND)

And after I plug Arduino Nano into USB - windows shows message like “USB device unknown”. But if I try to disconnect +5V wire between boards - it’s ok, no errors during initialization, but there is and error afre I try to flash bootloader via Arduino software v.18.

So, can you help me with this situation? What I’m doing wrong? Any advice will be very appreciated!


Maybe the same as another topic

No, that topic about FTDI locking, but I have another problem. I just can’t burn bootloader into my ATMega2560 using another Arduino Nano as ISP.

Does anybody have ideas? It will be very nice to hear what I’m doing wrong.


Hi, I saw you make a reference to this topic in

I see your topic is quite old, the first thing I would definitely do is upgrade to Arduino 021, I think only after 020 there is official support for the Mega2560. I think the ISP software (are you using the one from examples?) is updated too.

Regarding the USB connect error, I can imagine that the nano is not able to power the mega, but as I am a rookie too, that's just a wild guess.

One other thing, I found out in the pins_arduino.h file that for the Mega not pins 11, 12 and 13 are to be used, but resp. 51, 50 and 52, you could try those, maybe your there is something wrong with your ICSP header on the Mega.


#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
const static uint8_t SS   = 53;
const static uint8_t MOSI = 51;
const static uint8_t MISO = 50;
const static uint8_t SCK  = 52;
const static uint8_t SS   = 10;
const static uint8_t MOSI = 11;
const static uint8_t MISO = 12;
const static uint8_t SCK  = 13;

Hope this helps in any way.