I'm currently working on a small circuit, which I intend on running off a CR2032. The intent is to have the circuit last at least 2 weeks (the longer the better), pulsing a green LED every 3 seconds, with a DIP switch to toggle power. I'm planning to use a 555 timer with a generic green diffused LED, but I feel like there's an IC that may accomplish this more efficiently. What's the most energy efficient, small (the PCB is going to have a surface area no larger than 1"), simplest way to pull off this circuit with a CR2032 or comparable? Thanks guys!
The most efficient LED flasher by far was the National Semiconductor LM3909. This chip is no longer manufactured, but you can still buy it online.
It can flash an LED for years based on a 1.5-V "D" cell. One key to its high efficiency is that it uses the charge accumulated in the timing capacitor to help light the LED, rather than just dumping it to ground and wasting it.
A CR2032 has a capcity of ~ 200mAH. For 2 weeks, this gives you an average current budget of ~ 500 uA. A plain 555 has a supply current of a few mA, so you'll need to use a cmos 555, which has a supply current of (max, @ 5V) 250uA. Use the highest value you can use for the timing resistor.
Assuming your LED current is 2mA, and the LED is on for 3/10 of a second, the LED will add an average of 200 uA. That brings the total to 450 uA, which makes your idea just about feasible. But forget the 'generic' 555, and a high-efficiency LED would be a better idea than your generic 20mA LED. Also don't go for a bargain-quality battery.
Reducing the LED on-time will make a big difference, as would using a well-programmed microcontroller. Or a fatter battery.
The battery life target is feasible. Size too. I did a similar PCB some 20 years ago, but with a red LED as an XMAS toy. Estimated battery life was around 1 month and I know the battery indeed survived about that long, but spread over a number of years.
I'll try to recover some design highlights from memory:
I used a low power 555, probably the CMOS 7555 mentioned in a comment. It was impressingly low power!
Use resistors in Mega-ohm class and small capacitors, use as few electrons as possible. Using a CPU chip is total waste, just the CPU oscillator itself will use more energy than this simple RC timer.
Use a very short blink, like 10-100 us. The human eye is very fast and once detected, it's overkill to add more fotons. Test how short blink you can use...
Short blink means you can skip the series resistor for the LED. You want all battery energy to go into the LED and a short pulse will not build enough current to destroy it due to wire inductance.
I think is was possible to discharge the RC timer capacitor of that 7555 through the LED! That means recycling the electrons just used to measure the time, for producing the light too, effectively doubling battery life. A bonus advantage is that the slow charging of the capacitor makes negligible loss from the batterys inner resistance, while the capacitor has very low reistance and can feed most of its charge into the LED.