How to optimize an Arduino Nano for low power consumption

I like the Arduino Nano because it is tiny and easy to program (USB).

Is it possibly to optimize the Nano for low power consumption? From what I understood (after reading Gammon) all this extra circuitry, like voltage regulators, USB, etc. consumes power.

After the programming, I don't need this extra circuitry any more. Is there an easy way to disable it? Must it be desoldered?

Instead of going to all that trouble of hacking power hungry bits from a Nano, simply use a DIP version of the ATmega328p chip with 4 discrete components ( a crystal, 2 capacitors and a 10K pullup resistor) for equivalent functionality.

6v6gt:
simply use a DIP version of the ATmega328p chip with 4 discrete components ( a crystal, 2 capacitors and a 10K pullup resistor) for equivalent functionality.

Or leave the crystal on the shelf and use its internal 8MHz oscillator.

...R

It's just: I love programming via USB. Probably it's because there are so many programmers out there (AVR ISP, USBTiny and whatnot) + the tons of "Use an Arduino Micro as ISP" tutorials.

The "use an ATmega328p + internal 8MHz oscillator" idea sound good. Perfect would be some kind of programming board, with a USB interface and a ZIF socket, where I can plug the chip in, program it, and then remove it and put it on the final circuit.

It's just that I haven't seen such a device so far.

You haven't looked too hard then. We were just discussing that yesterday.
Good evil mad scientist programmer. Plugs onto a Uno to program a blank part.
Or put an ICSP header on your board, or make an adapter cable, and program the chip on the board.

I program my Veroboard 328s with a USB-TTL cable (aka an FTDI cable). My cable has a 6 pin connector and it is just as easy to use as plugging a regular USB cable into an Uno.

...R

Or if you have a dip style uno you can plug the chip in, program it, pull it out and stick it on your custom low power board.

Delta_G:
Or if you have a dip style uno you can plug the chip in, program it, pull it out and stick it on your custom low power board.

OK but how does that work? When in the UNO board, it runs with 16MHz and external clock. When in the custom low power board, it must run without internal 8MHz clock. Do I not have to change fuses, etc.?

OK, in that case it might not work.

Geez y'all are a bunch of theorists! What program, what circuit and what desired outcome?

If you work on it enough, any system can be minimised as far as the required input goes, and maximised with regard to the output. But in my experience, to truly maximize/minimize anything, you need to be very device and environment specific. All this talk going on is far to general to result in anything bu a lot of blah, blah, blah.

What specifically, are you doing and what software components are you using? Otherwise I agree with Delta_G's last comment.

Even though the OP did not come with absolutely concrete requirements, I think he got some valuable pointers in the area of the dilemma between low power consumption and convenience features, all relevant to his post, which will help focus his further consideration of the issues involved.
Anyway, a bit of theory did not hurt anyone. :slight_smile:

My application is an alarm device. A reed switch wakes up the Arduino. Also a watchdog is running for periodic wake ups.

It runs on batteries. The longer, the better. Hopefully years.

Simply put: The least power it consumes the better.

I got inspired by this article: Hardware mods.

You are right 6v6gt. Theory does not hurt at all. In sciencey circles we say "theory guides, experiment decides".

You might get away with supplying 5.0 volts (don't go over 5.2 ever) directly to the 5V pin, if you don't like the loss of supplying >=7-ish volts through the regulator. No desoldering is required; the regulator need not be removed. Chances are that the 16MHz standard nano 328 is what you want to use, and enlarge your power supply as necessary towards 1/100th of that needed for most Intel devices. If you really need to go to lower power consumption then what is the high level description of the project requirements and could it run on a smaller ATMega chip at for example 100 kHz ?

You might get away with supplying 5.0 volts (don't go over 5.2 ever) directly to the 5V pin,

Well, 6V technically as the never exceed, much of the datasheet shows characteristics at 5.5V.
5-5.25V is a safe range.

The clock source can be divided down internally to run the chip at slower speeds without changing the hardware.
Divide by 8 is pretty typical.

Can go really slow:
9.7 128kHz Internal Oscillator
The 128kHz internal Oscillator is a low power Oscillator providing a clock of 128kHz. The frequency is nominal
at 3V and 25C. This clock may be select as the system clock by programming the CKSEL Fuses to “11” as
shown in Table 9-13.

May need some code tweaking to run that slow depending on what you're doing/are connected to.

I like Promini or equivalent for standalone stuff. Connect a programmer to ICSP pins for bootloading/setting fuses, connect an FTDI Basic to the Serial pins for downloading/debugging. Unplug both when not needed.

CrossRoads:
May need some code tweaking to run that slow depending on what you're doing/are connected to.

The devices communicate with each other via a custom 315MHz protocol. I wrote it so I know how to tweak it.

What I don't know is if PWM still works when running at such a slow speed.

I have n senders and one receiver unit. The receiver unit communicates with a SBC (Raspberry, Odroid, etc.) via 2 wires. One wire to indicate that an alarm condition occured, the other wire encodes the unit that triggered the alarm in PWM format.

CrossRoads:
I like Promini or equivalent for standalone stuff. Connect a programmer to ICSP pins for bootloading/setting fuses, connect an FTDI Basic to the Serial pins for downloading/debugging. Unplug both when not needed.

Some thing like a "programming board" would be nice. I imagine two rows of (slightly cone shaped) pins where the Pro Mini fits perfetcly on and has electrical contact. On this programming board there are the 6 lines for ICSP already wired to an ICSP connector (for bootloading/programming).

After bootloading/programming is done, I remove the Pro Mini from this socket and solder it to the final circuit.

For sure millions of people before must have had this problem/idea. Do you know if there's already such a device?