Recently I have bought a cheap clone of Arduino Nano from the Chinese site Deal Extreme. Unfortunately, that product (SKU 81877) comes without a bootloader. The main sign that indicates you that the Arduino doesn’t have a bootloader is that the “L” LED, next to the Power LED, doesn’t blink when the Arduino is connected to the power source or when the Reset button is pressed.
It is possible to use your Arduino without a bootloader, but it won’t work with the Arduino IDE and you will need an external AVR Programmer like this one in order to upload sketches.
So I needed to follow two main steps in order to get my Arduino Nano working without buying an AVR programmer:
- Solder the six ICSP pins. These pins are provided in the same package, but you need to solder them to the Arduino board.
- Use another Arduino (a working one) as an ISP programmer in order to burn a bootloader onto the non-working one. I borrowed another Arduino Nano from my friend Nahuel (let me say thank you to him and Dani, who helped me with all of this), but other models shoud work too.
The Arduino board I bought looked like this. Notice that the ICSP header slot, highlighted in red, doesn’t have any pins soldered to it:
And this is my board after soldering the pins:
So it was time for the second step: to burn the bootloader using another Arduino as an ISP programmer.
First of all, connect the working Arduino (the one you will be using as the programmer) to your computer with the USB cable and launch the Arduino IDE. From the Tools menu select the right Serial Port and Board ( the one that corresponds to the Arduino that you are using as the programmer; in this case, Arduino Nano w/Atmega 328) and then load the “ArduinoISP” sketch from the File->Examples menu. Compile it and upload it to the working Arduino.
Then you need to connect the two Arduinos. The ICSP pin header of the Arduino without bootloader must be connected to the regular pins of the Arduino that will be used as the programmer.
I found here a way to do the connection. Basically, you have to connect them this way:
Arduino without | Arduino as ISP bootloader | programmer __________________|________________ ICSP pin#1 (MISO) | D12 ICSP pin#2 (+5V) | 5V ICSP pin#3 (SCK) | D13 ICSP pin#4 (MOSI) | D11 ICSP pin#5 (RST) | D10 ICSP pin#6 (GND) | GND __________________|________________
In case you need it, this is the ICSP pinout (use the number “1” printed on the Arduino board next to the ICSP header slot as a reference):
Here you have a couple of pictures of the two Arduinos connected (yes, cables got a bit messy 🙂 ). The Arduino connected to the white USB cable is the one used as the programmer, while the other one is the Arduino that came without its bootloader.
After wiring the Arduinos, connect the one that is used as the programmer to your computer again. This time, In the Tools -> Board menu select the item that corresponds to the Arduino in which you are going to burn the bootloader (in this case, Arduino Nano w/Atmega 328 again). Then go to the Tools->Programmer menu, and select “Arduino as ISP” instead of the default “AVRISP mkII”:
Finally, click in the Tools -> Burn Bootloader menu item. After some seconds of flashy LED blinking, the brand new Arduino is ready to use! Have fun! 🙂