Solid-state Wigwag Controller – First light

A few weeks ago, while doing a random Google search, the search engine took me to the universe of aircraft electronics and I came across a funny device advertised as “Wig-Wag Flasher For Experimental Aircraft”!

According to the seller’s description, one of the important functions of aircraft landing lights is to improve a plane’s visibility to other aircraft. Flashing the aircraft’s lights by using the wigwag controller contributes significantly to “be-seen” visibility, especially when approaching and operating near an airport. Quite naturally it is new information that made me curious, so I extended my search and finally found details good enough to awaken me.

Yes, landing lights are the largest and brightest lights on an aircraft. They typically have a very narrow beam pointed slightly down to light up the runway during night landings. These powerful lights with parabolic reflectors are unremarkably located midway in the leading edge of each wing or streamlined into the surface of a smaller aircraft. Landing lights for bigger transport category aircraft, however, are usually located in the leading edge of the wing close to the fuselage. Each landing light may be controlled by a relay, or it may be wired directly into the aircraft electrical system. In addition to assisting the pilots to see ahead of them when on the ground in darkness, flashing landing lights surely help to make planes more noticeable!

Landing lights use several types of bulbs. For example, the General Electric (GE) Q4559X bulb is used as a landing light on several Boeing, Airbus, and regional jet aircraft. The Q4559X (Halogen, PAR 64, 28V/600W) bulb generates 765,000 candlepower and is classified as a Very Narrow Spot (VNSP) with 11° horizontal beam spread ( ProductDetail.aspx?sid=0002383&pid=GEQ4559X).

I do not want to bore you more with my limited knowledge on aircraft lights and light controllers. Let me move to the real theme of this article – that is nothing but some design thoughts about the primitive build of a simple solid-state wigwag controller. Let us get started!

Although I did not have any plan to steal an experimental aircraft (ha ha), I had a temptation to build a simple model of a wigwag controller for aircraft landing lights. To realize that dream I created an Arduino based little electronics because the default control and flash pattern can be easily altered anytime via software. In my prototype, there is a devoted driver channel for each landing light, and the landing lights are controlled entirely by the Arduino microcontroller driving a couple of power MOSFETs. My first idea was to use regular (incandescent) motor vehicle headlamps, but later I decided to use powerful white LED automotive lamps instead. Nowadays, LED lighting have benefits over the traditional incandescent light, first, it is more economical and contributes to do it yourself electronics!

As mentioned above, the design is centered around an Arduino microcontroller and hence the code (a crude one so far) is in the form of the usual Arduino Sketch. A Digispark Attiny85 microcontroller board is employed because the Digispark is probably the most basic and compact Arduino-like platform I have played with. It is about the size of a standard USB A plug and offers 1-5 GPIOs (2-3 typical). This is the schematic of the core section ie the microcontroller part.

The intention of the microcontroller is to react to the mode button (S1) ‘commands. At minimum, it needs to set the status of each lamp driver channels (L1-L2) under control. Since the intended application requires two high-power landing lights to be driven independently, a dual-channel lamp driver circuitry is also a crucial necessity which I will present in another note coming after. Look at the Arduino sketch created basically for Digispark.



 * Solid-State Wigwag Controller (v1)

 * Multi-Mode Switch for Aircraft Landing Lights

 * Digispark Hobby Electronics Project

 * T.K.Hareendran/7.2020



int modeButton = 2; //P2            

int chl1Out = 0; //P0

int chl2Out = 1; //P1

int val;                       

int val2;                      

int buttonState;               

int Mode = 0;             

void setup() {

  pinMode(modeButton, INPUT_PULLUP);  

  pinMode(chl1Out, OUTPUT);

  pinMode(chl2Out, OUTPUT);

    buttonState = digitalRead(modeButton);  


  void loop() {

  val = digitalRead(modeButton);     


  val2 = digitalRead(modeButton);    

  if (val == val2) {                

    if (val != buttonState) {         

      if (val == LOW) {               

        if (Mode == 0) {

          Mode = 1;

        } else {

          if (Mode == 1) {

            Mode = 2;

          } else {

            if (Mode == 2) {

              Mode = 0;







    buttonState = val;               


  if (Mode == 0) { //OFF

    digitalWrite(chl1Out, LOW);

    digitalWrite(chl2Out, LOW);


  if (Mode == 1) { //WigWag

    digitalWrite(chl1Out, HIGH);

    digitalWrite(chl2Out, LOW);

    delay (500);

    digitalWrite(chl1Out, LOW);

    digitalWrite(chl2Out, HIGH);

     delay (500);



 if (Mode == 2) { //ON

    digitalWrite(chl1Out, HIGH);

    digitalWrite(chl2Out, HIGH);




The first build step is to mount the programmed Digispark board onto perfboard using male and female header strips so you can plug it in and out without worrying about re-soldering, solder splashes and short circuits. And then fit the button switch and wire connectors (for power input and signal output). Another neat solution is to fix the Digispark board into a small breakout board tailored especially for this project. I would like to use such a little breakout board later that might make it comfortable to play with the core part if and when needed. Representative layout of the proposed PCB is given below (better, do your own art).

Right away, moving towards the remaining portion of the hardware. Below you can see the lamp driver circuitry primarily composed of a dual-channel solid-state light switch which is nothing but a little circuit wired around a pair of standard power MOSFETs. The circuitry can drive LED, Halogen, and HID landing lights but it does not have an automatic HID ‘warm-up’ feature (minimum 30 seconds of preheat before switching to flash). Note that the HID warm-up feature can be added easily by modifying the code a little, I must admit that I did not test it though!

Only one channel driver schematic is shown here. travel, the second channel is identical.

The design of the solid-state switch (per channel – see shaded area) includes one opto-coupler on the input so the power MOSFET input is biased from the landing light voltage (12V) and is independent of logic levels used for the drive signal . Although not a perfect galvanic-isolation, this setup guarantees that if something goes wrong and you burn down the power MOSFET, it should not damage the microcontroller I/O being used to control it. A logic-high level on the opto-isolator input turns on the low-side switch power MOSFET, and when it conducts the landing light is connected to ground to complete the electric circuit and hence it is alighted. The circuitry uses the IRFZ44 power MOSFET which supports power dissipation levels to approximately 50W. Another good pick is the D4184 N-channel power MOSFET that has a low Rds(on) of 8.5mΩ typical.

On the other hand, you may go for a pair of prewired power MOSFET modules like the one shown below. This particular 5V (3.3V as well) logic compatible D2184 power MOSFET module has 10A maximum continuous current handling capacity (at 12VDC) and tailored as a 6 to 36VDC low-side switch.

And last, but not least, is the power supply. My prototype uses a 12VDC power supply because of the 12V/20W warm white LED automotive lamps. In real world (28V aircraft landing lights) you will need to use a separate linear or switching dc-dc buck converter for 28V to 12V conversion in your final setup so that the core electronics can still use 12V while landing lights are on the 28V bus . Remember, there is no need for an external voltage regulator in a 14V bus!

Here are some pictures of the aforesaid automotive lamps used in my breadboarded test setup:

I embarked on this project without any experience in aircraft’s electrical system, and with relatively little knowledge of aircraft electronics, so it is a steep but fantastic learning experience. I simply desired to register key details of this project for others who may find them useful, as I did with some of the resources I have linked to at the end. That is all for now!

Credits & References

Leave a Comment