Burning a bootloader onto a Nano?

I bought a Nano several months ago; I was able to program it successfully. Great. I bought a pair just before Christmas, and gave one to my dad. Got the software loaded onto his computer, but it got the "getsync out of sync" error. Great, nothing like buying a defective gift for the old man. Took it home, and checked the second one: both won't communicate on my laptop. I plugged in the first Nano that I bought, and it programs with no issue. So it's not a software installation on my computer. I am thinking the defective Nano's might be lacking the bootloader.

I found this link: http://arduino.cc/en/Hacking/MiniBootloader which shows how to move the bootloader on the Mini's. I am guessing that the Nano's can be programmed the same way? Same pin connections etc.

Thanks.

I would think using your Arduino and the Arduino IDE you can flash the bootloader on the target/defective boards.. no problem..

Do you have an Arduino Duemilanove 2009 board or anything? or just the 1 working NANO?

You can use one working nano board to load the bootloader onto another nano board lacking or needing a new bootloader. It's just a matter of loading the ardudinoISP sketch onto the 'programmer' nano and then making the proper wire jumpers from one nano to the other nano, then selecting the nano board in the IDE and then selecting burn bootloader option.

Lefty

I have just the one good Nano, and two bad Nano's--no other boards. What bootloader option do I use for that? The AVR ISP, or the AVR ISP mkII? This link http://arduino.cc/en/Hacking/MiniBootloader has the info on the wiring, but just indicates (quickly) how to use the software.

??

Wouldnt you use the NANO bootloader? as that IS the device you are trying to 'bootload'.....yes?

You will be uploading a SKETCH to your working NANO.. that more or less turns it into a device that you can use to flash bootloader/firmware to other devices/boards...

BOARD = NANO
BOOTLOADER OPTION: (well you dont have, are not using an AVR ISP? or mkII are you? You are using the Arduino as an ISP...what option do you think you need to pick?) :slight_smile:

Try this:

Approach A: (Arduino IDE/Arduino as ISP)

  • Open IDE
  • Tools >> Board >> Arduino Duemilanove 2009/Nano w/328
  • Tools >> Serial Port >> (choose correct one)
  • Upload the ArduinoISP sketch (Files >> Examples >> Arduino ISP) to your working NANO

(unplug your main/working Arduino Nano)

  • Wire up your 'target' board that is outlined in the tutorials (D11, D12, D13, +5v, GND & RESET) pins...

MAIN BOARD: >>> TARGET BOARD:
D10: >>> RESET
D11: >>> MOSI
D12: >>> MISO
D13: >>> SCK
GND: >>> GND
+5v: >>> +5v

  • Go to: Tools >> Board >> and choose ""Arduino Duemilanove 2009/Nano w/328"..

  • Tools > Burn Bootloader > w/ Arduino as ISP

That's the info I needed, thanks--hadn't found a sequence to go by for this.

Im saying 'try it'...

I havent done it yet myself... (so take it for what its worth) :slight_smile:

I will be trying similar tonight though... (so it peaked my interest)

Did you have luck? I finally got around to do this, and I did not.

I left my Board setting at Nano, otherwise I followed your instructions. After plugging in the USB cable, the LED (on D13, which is used for SCK) flashes seven times; it appears I need to hit reset on the "bad" Nano and then do the "Burn Bootloader" option.

However, I get this error message:

Error while burning bootloader.

avrdude: stk500_program_enable(): protocol error, expect=0x14,
resp0x50
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override this check.

avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51


I'm wondering if I need to flip MISO/MOSI. I wouldn't think so. I tried that, and get this error (much quicker than the above error, I will add):

avrdude: stk500_getsync(): not in sync: resp=0x15


So no go on that.


When I plug in the USB cable, both boards will flash the LED (that is on D13, and is being used on SCK) seven times. Not sure what that means. The power LED on the "bad" Nano does light. I tried both of my "bad" Nano's with the same results. I double checked my wiring, and so far not seeing a mistake.

I have my "good" Nano plugged into a protoboard, and I have wires from D10, D11, D12, D13, +5V and GND (as supplied by the Nano, no external supply used) going to the 6 pin ICSP connector on the "bad" Nano.

Thanks for the help.

yes.

I got mine to work..

(but mine was a bit differnt.. remember?)

I was doing a 'minimal' breadboard (+3.3v @ 8MHz internal clock) as my target board...

I just trying to disable the auto-reset on your MAIN board.. (the good nano)

I think its a 100-120 Ohm resistor from rest to +5v rail.. this will disable the GOOD nano from resetting on boot-up or opening up the serial monitor/comm...etc

follow same directions above.. and add that new step to the good nano.. see if it works.

No go, with 120ohm from Reset to +5V. Got a "not in sync resp=0x00" error. Tried reset both Nano's, no help. Might just buy some new ones and tinker with these later.

if you live in the states.. you an send them on over to me.. and I can take a peek.. see if I can get them running for ya..

(you pay postage is all) :