I need to get an LED blinking at in the 1-5Khz range. I will use a photo detector to sense the blink rate to identify a drone.

The drone will be passing though a hoop about 1 foot from the sensor.

Think of it as being similar to a short distance, Li-Fi, visible light communications, PHY layer design.

Ideally the LED needs to remain as bright as possible and remain at a constant blink speed even as the battery discharges.

Weight is an important criteria for this design, so every gram possible needs to be shaven from the circuit.

On-board voltage is 3.7volts.


closed as unclear what you're asking by old_timer, ThreePhaseEel, Voltage Spike, pipe, Anindo Ghosh Mar 12 '17 at 16:04

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 2
    \$\begingroup\$ Please tell us what you are trying to do. This seems likely to be an xy question, where you may have settled on an inappropriate approach to an underlying problem. Why, for instance, do you need MHz speeds? Why not KHz? With that said, MHz modulation of LEDs is getting into "hard" country, and detecting such an LED even harder. Or have you given that any thought? \$\endgroup\$ – WhatRoughBeast Mar 10 '17 at 18:15
  • \$\begingroup\$ I'd use an ATTiny85 (8 pin SOIC) using the internal clock and running directly off your Li-Ion battery. A few lines of assembler could do the job. \$\endgroup\$ – Jack Creasey Mar 10 '17 at 18:16
  • 1
    \$\begingroup\$ So, you want someone to design you a circuit \$\endgroup\$ – pipe Mar 10 '17 at 18:19
  • 3
    \$\begingroup\$ Gram wants to be shaved I'm quite sure Gram wants to keep his beard, he's very proud of it. \$\endgroup\$ – Bimpelrekkie Mar 10 '17 at 18:35
  • \$\begingroup\$ Umm Let me update that and correct my Mhz to Khz \$\endgroup\$ – DevilWAH Mar 10 '17 at 18:39

Especially considering size and weight, I'd use a PIC 10F200 microcontroller. It has a oscillator built in, and needs no other components other than a bypass cap to drive a LED. It can also run from a reasonably wide voltage range, including 3.7 V.

The internal oscillator is good to a few percent. The instruction cycle rate is 1 MHz driven by that oscillator. At 1-5 kHz, you have a minimum of 200 cycles per blink period, or 100 cycles per blink phase. That's plenty to do a little counting to decide when to toggle the LED state.

The output pins can source or sink a few mA, and you can gang three of them together to get more current capability to drive the LED directly with a resistor in series to set the current.

  • \$\begingroup\$ Cheers that great idea, i was thinking of using timers or oscillating circuits. Never thought of a micro controller and this will give plenty accurate enough rates for what i am planning. Thank you \$\endgroup\$ – DevilWAH Mar 10 '17 at 19:18

Here is a quick and dirty design using a ZSCT1555 CMOS timer IC as a VCO and PWM to change not only the duty cycle of color from Yellow to Red with battery voltage but also the frequency up to a 2:1 range for an input voltage range of 3.6 to 3.3V .

I chose ~2kHz high to 4kHz when low Vbat and simulated it here with Falstad, but you may want a slower rate. The output driver toggles between 2 of the 4 existing LEDs changed to Red/Yellow and duty cycle of Red increases as Vbat drops.

There are an infinite number of variations of this including Red Only when below a certain threshold. The 2V zener is actually another LED.

I used a 10Hz triangle wave to simulate Vbat from 3.6 to 3V but it works beyond this range.

enter image description here


Once you started actually talking about your problem, it became clear that you were indeed asking an xy question. The question you really want answered, is "How can I identify a drone by blinking its orientation lights?" or even better, "I'd like to identify a drone by blinking its orientation lights. What should I be thinking about?". Although the latter is a bit vague, I agree.

With that in mind, it's clear that blinking the orientation lights at 1 to 5 kHz will not do you any good. If you're looking at it with your eyes, kHz is way beyond visual fusion rate, so there's no way your eye can distinguish between drones with different flash rates. If you're looking at it with a camera, 1 to 5 kHz is far beyond the frame rate you'll get with any reasonable camera. To identify a 5 kHz flash rate from camera footage requires a minimum of 10,000 frames per second, and that is hardly standard kit.

All things considered, it would seem your best bet is to point a telescope at it with a very high-sensitivity detector and a frequency detection circuit. Such a detector would require a very narrow bandpass filter at the LED wavelength.

So, rather than insisting that what you want to know is how to flash an LED, you need to start thinking about just exactly what you want to do from a system viewpoint, and determine if you CAN identify a drone by flashing its LEDs. Only after you've done your system calculations should you start worrying about how to do it.

  • \$\begingroup\$ No because the drone will be passing though a hoop about 1 foot from the sensor and I already know that there are IR transponders on drones out there that work on this exact method. With a science degree (Zoology) I am well aware of the capabilits on the human eye, and having worked with Fiber optics for the last 15 years (flashing lights) and more recent developments in Li-Fi i know there are ways of sensing flashing lights well in to the Mhz range over many meters. \$\endgroup\$ – DevilWAH Mar 10 '17 at 23:41
  • \$\begingroup\$ @DevilWAH You might have thought to put that in your original post. I was wondering how far away the LEDs would be from the detector. Now it all makes sense. Very simple, I like that. \$\endgroup\$ – Misunderstood Mar 11 '17 at 4:54

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