Revive dead Arduino Nano

Hello all,

I managed to somehow disconnect one of my Nanos during flashing. After that, the status LED just kept blinking wild.
A reflash with ArduinoISP didn't work. Since yesterday I have a USBasp which did the job: New optibootloader, and the blinking stops. When trying to flash a program through Arduino IDE, I get the error "programmer is not responding".

Today I tried to flash the program to a second Nano, read it out as .hex (flash+eeprom) with USBasp and flash that into the dead Nano. This works! It's my "dimmer blink" sample. The LED dims like the thing works again. As soon as I disconnect USBasp and plug in the USB plug like usual, the Nano doesn't do anything anymore again. Again "programmer not responding" error.

I searched the forum and the net but couldn't find anything like this, dead Arduino revival is obviously no real issue.

Any suggestions and/or ideas are welcome.

Thanks a lot!

The Arduino Nano doesn't normally use Optiboot. If you select the board "Arduino Nano w/ ATmega328" it will be expect the bootloader "ATmegaBOOT_168_atmega328.hex" at 57600 baud (see boards.txt). Optiboot runs at 115200 baud so it is not a drop-in replacement for the expected bootloader.

To burn a fresh bootloader on your Nano you should:

  1. Select Tools->Board->Arduino Nano w/ ATmega328
  2. Select Tools->Programmer->USBasp
  3. Tools->Burn Bootloader

If you want an Optiboot bootloader on your Nano you can put the following in a Arduino/hardware/boards.txt:

##############################################################
nano328O.name=Arduino Nano w/ ATmega328 & Optiboot

nano328O.upload.protocol=arduino
nano328O.upload.maximum_size=32256
nano328O.upload.speed=115200

nano328O.bootloader.low_fuses=0xFF
nano328O.bootloader.high_fuses=0xDE
nano328O.bootloader.extended_fuses=0x05
nano328O.bootloader.path=optiboot
nano328O.bootloader.file=optiboot_atmega328.hex
nano328O.bootloader.unlock_bits=0x3F
nano328O.bootloader.lock_bits=0x0F

nano328O.build.mcu=atmega328p
nano328O.build.f_cpu=16000000L
nano328O.build.core=arduino
nano328O.build.variant=eightanaloginputs
##############################################################

After that (and restarting the IDE) you can use the "Arduino Nano w/ ATmega328 & Optiboot" board type to burn a fresh bootloader and do your uploads.

Thank you John, that explains quite a bit, couldn't properly work that way. Reverting to the "simple" bootloader now resulted even in a usual, slow blinking LED. I also fiddled with the fuses, setting hfuse to 0xDE instead 0xDA; writing the lockbits 0x0F to make sure they're correct.

It's really weird: Giving the Nano a kickstart via AVRdude makes the sketch work one time. Using USB to connect the Nano standalone again makes it play dead. I think I have electrically broken something. I do have some equipment, but that is not good enough for debugging the µC itself (DSO Nano, VC97 - can show a lot for own PCBs/designs at lower frequencies). I'm waiting for a EZ-USB based logic analyzer now but there I wouldn't even know which protocol to dissect :wink: I guess I could at least see up to 24MHz the toggling of the lines.

It's no drama, only a bit sad - that was my first Arduino PCB, a very solid made one, nice LEDs, proper soldering, not like some of those cheap clones.

I don't understand what you mean by:

Koepi:
Giving the Nano a kickstart via AVRdude makes the sketch work one time.
[/quote

I don't understand what you mean by:

Koepi:
Using USB to connect the Nano standalone again makes it play dead.

By that I mean that I connect the Nano to the computer as usual, with a miniUSB cable. Without anything else. Just like a Mega2560 or Uno, USB to USB-B or USB mini. Where the compiled code is uploaded via Arduino GUI directly.

Well I have a cheap E-bay Asian nano board and using either my USBtiny or USBasp programmer was able to select the board type as standard Uno, select programmer, and finally then burn bootloader. It takes the bootloader with no problems and after that I simply use it by simply selecting the board type as Uno to perform normal serial uploading. I had no need, nor see a need to add a new board type in the boards.txt file.

The new board description was for Nano with Optiboot. There is an Optiboot loader for the Nano in the Arduino.app archive which I used in one of my attempts. But to use this variant I'd need to add a different board type as this is obviously nothing official.

It doesn't matter which ATmega328 bootloader I choose. Flashing with USBasp makes the board work (while being attached to USBasp). If I remove USBasp and plug in the Nano the usual way, it plays dead. You can see that very easy when using a blink sample: Freshly flashed, it blinks; plugged in the usual way only power LED is on.

Koepi:
The new board description was for Nano with Optiboot. There is an Optiboot loader for the Nano in the Arduino.app archive which I used in one of my attempts. But to use this variant I'd need to add a different board type as this is obviously nothing official.

It doesn't matter which ATmega328 bootloader I choose. Flashing with USBasp makes the board work (while being attached to USBasp). If I remove USBasp and plug in the Nano the usual way, it plays dead. You can see that very easy when using a blink sample: Freshly flashed, it blinks; plugged in the usual way only power LED is on.

But the standard Uno optiboot loader works fine in the nano, no need to install from any other version, that was my point.

Sounds like a defective USB FTDI serial interface chip. Does the PC see and 'ding' when plugged into the PC? If not it's defective, if it does then perform the serial loop back test (there is a sticky around here somewhere) to see if serial data is possible.

Ah, an ECHO test is a great idea. The USB part so far still works, as the virtual COM port shows up. Thanks for the hint!

Took some time, but since I finally managed to update my USBasp I tested around with the broken Nano again. It is quite obviously the FTDI chip which is broken. Sometimes I manage to get a connection with it, but it is instable.
Will try whether powering the Nano directly makes it work as "Pro Mini with some chip salad" at least :wink: