Introduction: Program Arduino Nano Via Uno With ICSP
Hello Friends,
In this instructable, i have shown that how can you program Nano via Uno.
As you can see in above image, my Arduino Nano's USB female pin is broken.
So i have to find way to upload sketch to it some way.
One day i was Google-ing, i have read somewhere that a Arduino board can be programmed via another Arduino board.
So by searching on it, i found a solution for this.
So lets get started to solve this.
Tools you will Need :
Arduino Uno ( which will act as a programmer )
Arduino Nano ( to be programmed )
Jumper Cables ( Some male-male, male to female.)
Step 1: Preparing Programmer
Attach your Arduino to PC.
Now, go to..
File > Examples > ArduinoISP > ArduinoISP
A sketch will open, upload it on Uno.
When uploading is done. unplug it from PC.
Now, take some jumper cables & attach Uno & the board you want to program just like the image above.
A ICSP pi out diagram is in another image. A (.) near 1 is first pin. on Arduino same . or 1 written near ICSP header.
Uno Nano
D13 > SCK
D12 > MISO
D11 > MOSI
D10 > RST (reset)
5V > VIN
GND > GND
Note : If your board's operating voltage is 3.3V then use 3.3V.
Step 2: Preparing Arduino IDE
When wiring is done.
Now we have to do some settings in IDE.
- Go to Tools > Board & select Arduino Nano.
- In Processor, select ATmega328.
- & In Programmer, select Arduino as ISP. ("Arduino as ISP" not "ArduinoISP")
The settings is done.
- Now, open up the sketch you want to upload on your Nano,
- In Menu, go to Sketch & click on "Upload using Programmer"
IDE will compile the sketch & upload it to your Nano.
The RX TX leds will blink rapidly on both board, & you will see done uploading.
If not, then recheck all the wiring & settings.
If you get any problem or you want to give me suggestion, you can write in comment section below.
Happy Programming ^_^
39 Comments
6 months ago
On step 2 "IDE will compile the sketch & upload it to your Nano." IT WILL NOT. On step 1 you unplugged it. Then we configured IDE. On what step and which device we connect?? Inconsistent instruction.
2 years ago
IMPORTANT: You should update the power input.VIN (on the Nano) is NOT meant for 5v power supply, it is a regulated pin used for 6-12v power. 5v from the UNO should be attached to the 5v pin on the Nano. There is an effective voltage drop when providing only 5v to that pin, so you are liable to have issues. It will work temporarily, but it is not recommend as the internal voltage regulator circuit is not meant for that input voltage - especially with cheaper clones a lot of people are using, there's no telling which components the knockoff actually uses vs. a genuine Arduino product.
2 years ago on Step 2
Thank you for your goodness.
I think it solve my problem
2 years ago
Thanks for this tip. I could not communicate with the nano directly through the usb port (probably 4 wrong cable) I was able to upload my sketch via the uno to the nano.
4 years ago
Hi all...anyone tried Nano via another Nano?
Reply 4 years ago
Yes
4 years ago
getting error
Arduino: 1.8.5 (Windows 10), Board: "Arduino Nano, ATmega328P"
Sketch uses 926 bytes (3%) of program storage space. Maximum is 30720 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x1c
An error occurred while uploading the sketch
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Question 5 years ago
por favor necesito ayuda!!!! lo hice y el programa que tenia guardado en el nano se borro. el problema es que ahora no puedo usar ni el arduino uno ni el nano.. cuando los conecto como la foto 1. la pc lo detecta y parpadea el led L en los dos arduinos. porfavor ayuda quiero mis dos arduinos de vuelta :c
5 years ago
serial monitor not shows in this way......
5 years ago
Live long and Prosper! you saved me hours and hours of headaches. I was trying to speed up the boot process of this nano project I have. All I needed to do is upload my code via the UNO. Following your instructions war marvelous! Thank you, thank you, thank you!
6 years ago
I have this problem when i upload as programmer. how should i do?
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.
Reply 5 years ago
I used the connection as follows and it worked for me:
UNO > NANO
D13 > D13
D12 > D12
D11 > D11
D10 > RST (reset)
5V > VIN
GND > GND
5 years ago
I am having the same problem as IqbalR9 and I don't know why. Anyone has found a solution for this yet? I am using a Elegoo Nano with a CH340G mini USB adapter on it and it came with a bootloader. Please let me know if you have a solution.
6 years ago
not working
6 years ago
Thank you very much for your advice
6 years ago
Can i still use the Serial.print() function in the nano?
Reply 6 years ago
no, you can't.. you can use bluetooth with it...
6 years ago
Great instruction and happy that my nano is now programmed!
Can you do the same to Arduino Pro Micro or is it different?
Reply 6 years ago
i havent tried it, may be this can work on pro or micro...
6 years ago
shouldn't i remove the UNO chip away from it's socket?