Arduino Nano switch on time

How long (typically) does an Arduino Nano board take to power on to start executing (User) code?

I've made a simple remote control unit. Basically; there's two switches, pressing each one sends a message over the air. It's powered by a 9V PP3 battery, regulated down to 5V. I need the remote control to last for several hours and even turning the radio module off when it's not needed. I'm not getting the battery life I want/need.

So my next thought is to replace the switches with Dual Pole Switches. When one of the switches it depressed, that’ll close the circuit from the battery to the Voltage Regulator (thus powering up the Nano), at the same time the other pole of the switch will take one of the switch logics lines low. While the switch is being depressed, I want the Nano to power up, execute my code to read which input line is low and then send commands to the radio module to transmit an appropriate message. When the switch is released, the Nano will turn off. The switch will only be depressed for (roughly) 500 ms

If you put the Nano into deep sleep, you can use the buttons to create an Interrupt to wake it up, read the button, send the info out, and go back to sleep.
A 3.3V/8MHz ProMini will do it also, and you can run it from a 3.7V to 4.2V LiPo battery.
I made a 16-button remote to do that, lasted about a month between recharges. Probably would go longer of I took the power LED off.


The empty 8-pin socket was for the charge chip, and the spots in the other chip were for the 5 components around it. I was testing with the battery charged from a wallwart when I took the picture.
Before the battery, I was testing with a 3xAA battery pack.

After the sketch sent the button info, I wrote the Column pins low, then went to Sleep. The interrupt pullup was enabled all the time. A button press would then put a low on one of the diode cathodes to create a Low interrupt, wake up, set the column pins back high, used keypad.h library to scan the buttons, send out the number pressed, then repeat from the top of this paragraph.

Yeah, I did an IR remote using the same system. The processor is put into deep sleep, and any keypad press triggers an interrupt which wakes up the processor. And of course that keypress is also an input. If properly put to sleep, and if the Pro Mini's power LED and regulator have been removed, the sleep current will be less than a microamp.

But to address your question, the bootup time can be very short or very long. It's long when the Arduino is plugged into an active USB port on a computer. That can lead to a series of exchanges and negotiations - even if there's nothing to transfer - that can take several seconds. I've never actually measured it, but I'd suspect if there's no such connection it would boot really fast. But you could actually test that with a sketch that just lights up the onboard LED on pin D13. Switch on the power, and see how long it takes for the LED to light up. There is some setup stuff that runs on boot that wouldn't have to run on a wakeup interrupt, but my guess is that either is effectively instantaneous to us humans. But try it and see.

When one of the switches it depressed, that'll close the circuit from the battery to the Voltage Regulator (thus powering up the Nano), at the same time the other pole of the switch will take one of the switch logics lines low.

What is the point of connecting a switch that is always on whenever the processor is on, to a GPIO? Or do I misunderstand your proposal? It seems to me that it would always read the same value.