Aircraft LED Strobe –

Recently I was able to build a version of a tiny microcontroller-based LED strobe light for RC airplanes. The build is not very advanced, but it is almost a complete kit. Let’s start with the easy stuff: wiring, programming and using the core part – Digispark Attiny85 development board.

This is the complete schematic (v1) of the RC aircraft LED strobe. As you can see, the setup is ridiculously simple. Only one I/O of the Digispark board (U1) is used here, and it is tailored to control the LED strobe light (LMP1) through a bipolar junction transistor (T1). The left part of the schematic is the power supply input section ready to work with 3S-4S LiPo battery packs. There is a simple LC filter to clear up any noise coming from the RC aircraft’s composite electronics. The value of the power inductor (L1) is not very critical, possibly any (1A-rated) power inductor in 100uH-10mH range would fit the need.

So, the parts you will need are:

  • U1: Digispark Attiny85 Development Board
  • T1: S8050C Transistor
  • D1: 1N4007 Diode
  • C1-C2: 100nF Capacitor
  • R1: 1K ¼ w Resistor
  • L1: 100uH/1A Power Inductor
  • LMP1: White LED strip or plate (5V, <250mA type recommended)

All that is required now is a little piece of code to make the Digispark happy. Here is the Arduino-style sketch:



 * RC Aircraft LED Strobe

 * Standalone LED Strobe v1

 * Hardware: Digispark Attiny85 Dev. Board

 * Author: T.K.Hareendran / 09.2020

 * Publisher:


int strobeLED = 1; // Strobe LED @ P1

//int strobeLED = 0; // Strobe LED @ P0

void setup() {

pinMode(strobeLED, OUTPUT);


void loop() {

// Two short flashes & Halt for 800ms!

digitalWrite(strobeLED, HIGH);


digitalWrite(strobeLED, LOW);


digitalWrite(strobeLED, HIGH);


digitalWrite(strobeLED, LOW);




This code is prepared for a two-strobe pattern like private airplanes. Since the code resides in the Attiny core, the strobe driver transistor can switch the LED in tune with the pulses coming from P1 output of Digispark. The I/O pin is picked as it’s internally wired to the user LED on Digispark board, which makes debugging very easy. Anyway, you can switch the output to P0 – see the first line of above code.

According to Digistump (, the VIN pin of Digispark can take 6 to 32V dc but I’m sure, 9 to 12V is a more pragmatic range (18V utmost). The onboard linear voltage regulator (78M05) can output a maximum 500mA at 5V. The same regulated 5V catered by Digispark is exploited here to power up the LED (since we only turn on the lamp for short amounts of time, we have a lot of leeway). However, as mentioned, the LED strip/plate must be a 5V (VF), <250mA (IF) type.

I used a cheap flexible USB LED light as the lamp (LMP1) in my breadboard prototype. The pliable light has a total of 6 paralleled white LED chips, and its total current consumption, as shown by my trusty usb doctor, is around 120mA at 5V. It is an exceptionally bright and adaptable little lamp.

The LED driver S8050C (T1) is a low voltage high current small signal NPN transistor. It has currents up to 700mA. According to UTC ( datasheet, its dc current gain, hFE2 range is 120-200 (VCE=1V, IC=150mA).

It is easy to use other lamps with the same circuitry. Simply adjust the base resistor (R1) value for the best results – the LED driver transistor will vary the drive current.

A logic-level power MOSFET can be employed as the lamp driver instead of the BJT especially for power-hungry lamps. Below you can find the revised (v1.1) schematic. I like to err on the side of caution and prefer a separate (and appropriate) dc power supply input (V_LMP1) for the lamp(s). Years ago, xenon flash tubes (with high voltage circuitry) were to accomplish strong flashes. Today we have compact high-power LEDs on the market for a very reasonable price. This revised scheme will help you to make a mighty single/dual channel LED strobe (1W-20W) running at voltages, say between 11-16VDC (3S-4S LiPo), in a compact and lightweight package. I am looking forward to seeing other people’s unique ideas (I will keep those in mind for future projects).

Now it is time for the final work. If you want to keep the build as compact as possible, and as a standalone single LED strobe light, prepare an enclosure similar to the one used as the lead image (borrowed from web) of this post to house your electronics. You can cut out a small window for the Digispark LED too if you want, but of course that is up to you. On the other hand, you can ‘copy’ the below model (again, borrowed) to build a standalone dual-channel LED strobe light. It needs no further explanation.

I recall the first model aircraft light project done by me. The relic that I found here is older… may be the 90’s

Back into the skyway, yes, I built my aircraft strobe (v1) on a breadboard and it works. Here is the setup (without the noise filter circuit) powered in a dump way by one 6F22 9V/500mA Li-ion battery. Also watch the quick test movie clip!

You are free to alter the code yourself but keep an eye on the duty-cycle of the strobe pulse. In my crude code, there is a total of 1000mS for one full cycle, in which the lamp is turned on only 100mS. This results in 100ms/1000ms *3W = 300mW average power consumption if you are using a 3W LED, even when the power LED is stroping at its full 3W power in pulses. You can extract the heatsink of the power LED to save a little space/weight. What about this external noise filter + bottlecap enclosure idea?

Okay, if you do not like any enclosure, you can bundle the entire build in a transparent heat-shrink tube to protect the electronics from moisture when installed on the aircraft.

The LED Firefly!

Sometimes, you simply need a ‘secret’ lamp to see or locate your RC aircraft quickly in dull conditions. Here is the code snippet for a single-channel LED winker designed to be used in RC model planes. This code allows Digispark to read PPM signals (1000 to 2000 us) from the RC. So, you can plug it on the RC receiver’s available channel for RC mode to switch the firefly LED over servo channel. If the pulse width is larger than 1520ms, the firefly LED will be switched on!


const int winkLED =  1; // Wink O/P P1

const int servoIN = 0; // Servo I/P P0

int winkState = LOW;

int brightness = 0;

int ch1;

int wink0 = 0;

void setup() {

  pinMode(winkLED, OUTPUT);

  pinMode(servoIN, INPUT_PULLUP);


void loop() {

  ch1 = pulseIn(servoIN, HIGH, 25000);

  if (ch1 > 1520) wink0 = 1;

  else wink0 = 0 ;

  if (wink0 == 1) analogWrite(winkLED, random(120)+135);

  else  analogWrite(winkLED, LOW);

  delay (5);



The hardware setup is similar to the first one but added a servo connector to Digispark.

A servo tester can be used to test your prototype. See how I set up the test:

… I hope this little post has nurtured your creativity. Since the stamp sized Digispark still has a few more I/Os, you can add some extra plates to the dinner table! Half full…Half empty? Never mind. It is what in it that really counts!

Leave a Comment