1

I bought some cheap Arduino Nanos from ebay, but the watchdog does not work in them.

So I removed their old bootloader and burnt a new Nano bootloader from the Arduino IDE. Same problem, the watchdog didn't work.

Then, I burned a Uno bootloader to the Arduino Nano and now the watchdog works properly. The only issue here is that in Arduino IDE I now have to tell it that I am programming an Arduino Uno instead of a Nano. So far everything seems to work just fine.

Are there other problems that may arise from using a Uno bootloader in a Nano? I notice that there are some extra analog pins in Arduino Nano, but I will still be able to use them with the Arduino Uno bootloader right?

3

Assuming they're based on the more recent Arduino Nano 3.x series or later, the microcontroller in your Nanos is probably an ATmega328 running at 16 MHz. That's the same as the Uno, so there should be no major problems hopefully.

It might be worth checking that you've got the latest version of the Arduino IDE though. I seem to remember there was a problem in some older bootloaders which prevented the watchdog from working properly.

  • Yes I've got the latest version and I can confirm that the latest NANO bootloader still has issues with the watchdog. Yes the uC are the same, NANO is SMD and UNO is not. The other thing that makes me brain scratch is the fact that UNO's analog pins go from 0 to 5 and NANO from 0 to 7. Which, being the same uC, makes no sense... Are UNO boards "ignoring" the two remaining analog pins? – nemewsys Mar 9 '15 at 14:13
  • The Nano is based on a 32-pin package version of the ATmega328, whereas the Uno is only based on a 28-pin version. One of the differences is that the 28-pin version has 2 fewer ADC channels. There's certainly a chance that compiling for Uno will mean you can't read the extra two analog channels via analogRead(), but I'm not sure. You could certainly access them directly though via low-level programming. – Peter Bloomfield Mar 9 '15 at 14:22
  • Incidentally, there is an SMD version of the Arduino Uno which uses the 32-pin package. However, it's designed to be directly equivalent to the functionality of the non-SMD Uno board, so the extra ADC pins on the uC are left unconnected. – Peter Bloomfield Mar 9 '15 at 14:25
  • 1
    A6 and A7 should work just fine when you select the Uno as target board. However A6 and A7 can only be used as analog inputs, not as digital-in or digital-outputs. To keeps things more consistent, and prevent noobs from miswiring things, I think it was a good idea to leave out those pins. – Gerben Mar 9 '15 at 15:04
-1

In boards.txt in the Uno section, you change one line for the pinout type from uno.standard to all_pins or something like that to make the analog inputs A6 & A7 available. Compare the standard Nano line against the Uno line and you can see the difference. I can't access the Arduino files from here to say what they are specifically, sorry.

Ok, here we go:

Uno uno.build.variant=standard

Nano nano.build.variant=eightanaloginputs

So change the Uno line to uno.build.variant=eightanaloginputs

Then you can bootlood the Nano board with Uno bootloader and should have A6, A7 available without issue.

  • This is not actually needed - while the "eightanaloginputs" option exists, the standard pins_arduino.h still defines constants for A6 and A7 even without it. – Chris Stratton Apr 17 '18 at 14:46
  • Really! I'll have to try them sometime. Thanks. – CrossRoads Apr 17 '18 at 15:00

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.