I'm using a 850nm IR LED (spec sheet), and in order to extend my battery life, I'd like to make the LED blink (UF 1.9 V, IF 100 mA).

I found a couple of links 1, 2, 3 but they either a) require two LEDs that blink in alternation, or a bunch of resistors that will most probably just drain my battery even quicker (will they?).

Therefore my question:

What's the

  • most simple
  • energy efficient
  • smallest possible (ideally not bigger than the battery & LED)
  • ideally operated with 3V or less.

circuit to make an IR LED blink?


  • I'd like to blink the LED 10 to 30 times per second. But We can start with 2 to 5 times.
  • the LED should be on for 10ms (at least) or 100ms (at most). Depending on blinking frequency.
  • I'm trying to make the circuit as small as possible (size and complexity) cause I wanna use it for a tracking device.
  • I'm powering the LED with a 3V CR2032 battery and I was hoping I could extend the battery life by making the LED blink instead of having it on all the time.
  • I can currently run the IR LED with the CR2032 battery for 4 hours. Extending that time to 8 or maybe even 12 hours would be great.
  • 3
    \$\begingroup\$ The 555 timer one, with large value resistors in the voltage divider, is probably the best. It might need an extra transistor to handle the 100ma. \$\endgroup\$
    – pjc50
    Dec 17, 2012 at 15:04
  • 1
    \$\begingroup\$ It might be useful to know how often do you need your led to blink, and how long should it stay on. And you might wand to add further details about your specific project. \$\endgroup\$ Dec 17, 2012 at 16:15
  • 3
    \$\begingroup\$ 555's operating current is too large to be powered by a CR2023. If you really want to use a 555, instead use 7555, a CMOS variant of 555 timer. \$\endgroup\$ Jan 6, 2013 at 23:42
  • 3
    \$\begingroup\$ The comment above is right. "555" and "energy efficient" are like a fist and a face. When they meet, nothing good happens. \$\endgroup\$ Jan 7, 2013 at 11:09
  • 2
    \$\begingroup\$ You guys should probably take this to chat or form it into an answer... long comment chains are usually discouraged because it makes it hard for future readers to glean the actual answer. \$\endgroup\$ Jan 8, 2013 at 16:53

5 Answers 5


As several of the answers so far have dispensed with the 100 mA LED drive current requirement, limiting it instead to the 20 to perhaps 50 mA that typical microcontrollers will safely sink or source, here are some minimal, high efficiency solutions within the same current constraints.

Bowin M34-2H is a 3-pin part that will flash an LED at 2 Hz with 25 mA current. It contains an internal RC oscillator, with +/- 20% tolerance, hence not terribly precise. The pin-out and application circuit from the datasheet:

This part offers 2 Hz at 1/8 duty cycle. Other parts in the series:

  • M34-1L or M34-1H or M2581 : 1 Hz , 1/8 duty cycle
  • M34-2L or M34-2H : 2 Hz , 1/8 duty cycle
  • M34-4L or M34-4H : 4 Hz , 1/8 duty cycle
  • M34-8L or M2585 : 8 Hz , 1/2 duty cycle

The H parts drive 25 mA, while the L parts are for 16 mA.

Alternatively, for programming of the flashing pattern, and even higher efficiency, the NXP PCA9901 is an option: Quiescent current < 0.75 μA!

This 8-pin TSSOP part can be "trained" with a sequence of up to 3 blinking elements, and will then continue to blink as trained. The programming connection can be removed after training, and this programming is achieved via a single signal line from any standard microcontroller, using the 1-Wire protocol.


The single resistor in the schematic sets the LED drive current, between 1 mA and 20 mA. It itself does not carry significant current (less than 1 μA), so will not drain the battery noticeably.

Given the choice, the NXP part would be a recommendation, both because it is from a major manufacturer, and because the blink pattern can be optimized down to 1/1024 duty cycle if needed, and cycle time varied across a wide range, covering the OP's entire blink-rate range of interest. Lower the duty cycle, longer the battery will last.


Adding another simple, highly efficient flasher IC to the mix:
NTE876 LED flasher / oscillator operates from 1.15 to 6 Volts, delivers up to 2 Volts to the connected LED at up to 45 mA, and needs an operating current of merely 0.75 mA maximum.

This is an 8-pin DIP IC, though SMD equivalents are available too. It just needs one external capacitor for timing adjustment, the R of the RC oscillator is internal. The 45 mA LED drive current brings this closer to the current goal stated in the question.

  • \$\begingroup\$ +1 great answer! Wow, long comment trail to try to follow, glad I missed the discussion :) \$\endgroup\$ Jan 9, 2013 at 1:02
  • \$\begingroup\$ M34 is a good idea but unfortunately not available in US. I tried to find at Mouser and Digikey, but no luck. \$\endgroup\$ Jan 10, 2013 at 22:42
  • \$\begingroup\$ @ChetanBhargava RapidOnline ships to the US. \$\endgroup\$ Jan 11, 2013 at 20:07
  • \$\begingroup\$ Added the NTE876, another really simple and high efficiency LED flasher option, which can drive LEDs at a higher voltage than its supply. \$\endgroup\$ Jan 11, 2013 at 20:19

This might not meet your application's needs directly, but if you want some ideas for really low-power LED flashing, take a look at the datasheet (the internal circuit, in particular) for the now-obsolete LM3909 LED flasher IC from National Semiconductor. This chip was capable of flashing a red LED for years on a single alkaline D cell.

Keep in mind that your ultimate battery life will depend primarily on the current you put through the LED, and what the duty cycle (on time vs. off time) is. In your question, you've specified some rather high duty cycles, so you shouldn't expect much lifespan, especially from coin cells.

The LM3909 succeeded because it used a very low duty cycle, and very little of its overall operating current was wasted on things other than lighting the LED. Even most of the charge that went into the timing capacitor on each cycle got dumped through the LED to help light it (it also helped to boost the voltage, so that a 1.5V battery could light a 2V LED).

  • 1
    \$\begingroup\$ That is a really good idea, but please note that as I stated in my answer, IR LEDs use way more current than red LEDs. \$\endgroup\$
    – user17592
    Jan 7, 2013 at 12:32
  • \$\begingroup\$ @DaveTweed As you stated, LM3909 is obsolete. OP cannot implement it in current project unless it is available. \$\endgroup\$ Jan 10, 2013 at 22:34
  • \$\begingroup\$ @ChetanBhargava: I think you missed my point. The internal circuit diagram of the LM3909 has interesting ideas that could be implemented with discrete parts. \$\endgroup\$
    – Dave Tweed
    Jan 10, 2013 at 22:39
  • \$\begingroup\$ @DaveTweed got it :-) \$\endgroup\$ Jan 10, 2013 at 22:51

LED Flasher circuit

These schematics run on 3V, I tested it myself with BC547 and BC557 as NPN, PNP, respectively.

This does not require programming microcontrollers, ICs, it's just two transistor + some RC components. I bet you can get this in one cm^3!

By changing the RC values (play a bit with that, with a normal LED connected) you can adapt the frequency and duty cycle.

However, I have to warn you: CR2032 isn't the best battery you can get and IR is warm, so it uses some current. Let's say you blink the LED 20 times a sec and 20ms long. That makes it on for 40% of the time, giving you a resulting current of 40mA, quite a lot.

You can also use the LM3909, as Dave Tweed already mentioned.

  • 4
    \$\begingroup\$ -1 for low-efficiency design. What's that 22 \$\Omega\$ resistor doing but making heat? At 100 mA you are burning almost 1/4 W there whenever the LED is on. That's more power than the LED! The blinking circuitry certainly draws some current, too. \$\endgroup\$
    – Phil Frost
    Jan 7, 2013 at 12:33
  • 1
    \$\begingroup\$ True, trying removing the resistor is a good idea! Didn't make the circuit myself so I cannot change it. \$\endgroup\$
    – user17592
    Jan 7, 2013 at 12:35
  • \$\begingroup\$ If you remove the resistor, there won't be any current limiting. With ideal components, this means the universe explodes. With real components, this probably means you use the internal resistance of the battery instead. That, and the LED won't blink anymore. \$\endgroup\$
    – Phil Frost
    Jan 7, 2013 at 12:47
  • \$\begingroup\$ Okay, but that means the resistor has to be there, so what's your problem? \$\endgroup\$
    – user17592
    Jan 7, 2013 at 12:48
  • 1
    \$\begingroup\$ @memyself Not very efficient, battery will not last long with this design. \$\endgroup\$ Jan 8, 2013 at 12:59

This is probably the simplest circuit:

Only 4 parts, and that includes the LED and the battery. (By the way, the only reason the battery looks so strange with 5 connections is because that's how the CR2032 battery holder I happen to have in my library works. The three negative connections are actually just solder bumps on the board.)

This is not a circuit I recommend for a industrial application where robustness is important. It plays fast and loose with some specs, but you asked for "simple". This sort of shortcut can be quite appropriate for a disposable consumer item, at toy, etc.

Note that there is no resistor in series with the LED. This is generally a bad idea, but as I said, this is a shortcut in favor of simplicity. A CR2032 battery has such high internal resistance that the current will be limited to what the micro and LED can handle in reality. The fact that the LED is a diode and its current goes down quickly at some voltage will help keep the voltage from collapsing to the point where the micro won't work, especially if the pulses are kept short.

For a better circuit, put a resistor in series with the LED. You can keep going and even put a small inductor in series followed by capacitor to ground to provide a short term local energy reservoir to run the LED off of during the pulses. This is then recharged more slowly during the off time. Going further, you can add a transistor that allows for more current than the PIC output can sink. There are lots of tradeoffs possible here to favor robustness and less battery abuse at the expense of more parts and less simplicity.

The PIC 10F200 is about as simply as you can get to make a digital oscillator. It's small, cheap, takes little power, you can have any kind of blink pattern you want, and timing will be accurate to a few percent. This is certainly better than a 666 timer.

If the point of this is to be a IR beacon, then you only need very short pulses with a low duty cycle. It's better to spend the energy on a short and bright pulse than a longer and dimmer one. The brighter pulse will have better range. For beaconing, you need to modulate the signal anyway due to the potentially high ambient level.

  • \$\begingroup\$ is there an alternative PIC that I could use? I don't seem to be able to find the 10F200. Would any 12FXXX or 16FXXX or 18FXXX do, or do I need a special one? \$\endgroup\$
    – memyself
    Jan 7, 2013 at 15:40
  • \$\begingroup\$ I assume it's easy to use a 8pin F200? ww1.microchip.com/downloads/en/DeviceDoc/41239D.pdf I guess it's a matter of connecting the GP0 to GO3 PINs accordingly? \$\endgroup\$
    – memyself
    Jan 7, 2013 at 15:53
  • \$\begingroup\$ @memyself: There at lots of PICs that can do this, but the 10F200 is the smallest and cheapest of them all. They are definitely readily available out there. I would start at microchipdirect, but surely many others carry it too. This is not a obscure part. \$\endgroup\$ Jan 7, 2013 at 17:34
  • 1
    \$\begingroup\$ @memyself This circuit will not be able to supply (sink) the 100 mA that you have specified for your LED. It will run the LED at 25 mA or thereabouts. If that is sufficient, there are simpler solutions available which do not even need a capacitor. Would you like a couple of such options? \$\endgroup\$ Jan 8, 2013 at 12:21
  • 2
    \$\begingroup\$ As I said, the circuit as shown plays fast and loose with some specs in favor of simplicity, as the OP asked for. 100 mA is absurd from a coin cell anyway, so it's pointless to worry about that. You can tie the three output pins of the PIC in parallel. I would have shown that if I had thought about it at the time. That would definitely make the CR2032 coin cell the limiting factor for LED current. \$\endgroup\$ Jan 8, 2013 at 13:27

For this kind of battery powered application, you can use TI's MSP430 micro-controllers. They come in very small packages and consume very low power because of its various sleep modes. In software you can determine the blink rate / duty cycle to conserve energy. Because it will be software controlled, you are not stuck to one IC device.

To drive the LED use a MOSFET with low internal resistance. You can use a commonly available 2N7000 or BS170 for higher current rating. These transistors are available in SOT23 package therefore reducing the size of the physical design.

Edit: Here is all you need to blink an LED using an MSP430. You can start your rapid prototyping using the launchpad and once your design is perfect, implement a standalone MSP430 based design. With launchpad acquaintance, you may gain other helpful micro-controller / programming skills.

  • 1
    \$\begingroup\$ He wants simple, small.. that means no micro. \$\endgroup\$
    – user17592
    Jan 7, 2013 at 7:51
  • 1
    \$\begingroup\$ What Camil said, using a micro has always been overkill, and this question is about small/simple/minimal. \$\endgroup\$
    – John U
    Jan 7, 2013 at 9:35
  • 1
    \$\begingroup\$ I did not know that simple means no micro. \$\endgroup\$ Jan 7, 2013 at 21:29
  • \$\begingroup\$ Also that, you would have to use an external transistor as well. \$\endgroup\$
    – user17592
    Jan 8, 2013 at 8:15
  • \$\begingroup\$ MSP430 I/Os cannot source or sink much current as PIC or AVR I/Os. \$\endgroup\$ Jan 8, 2013 at 16:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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