Professor Mark Csele

Lighted Costumes

Have you ever seen the Spectromagic night parade at Disneyworld in Florida? One of the types of characters in the parade are butterflies and faeries: actors with large wings lit with many lights. That, I suppose, was inspiration for a lineage of costumes: lighted wings.

This year (2011), Jennifer was certainly not going out for Halloween, however she still wanted a costume since she was working at the Howell Family Pumpkin Farm. Here, she is working at the main gate in her costume which includes twinkling wings and lit “antennae” 

The wings feature many channels of lighting including six channels around the perimeter (allowing “chase” effects), four channels in the center (allowing “random twinkle” effects), and two channels for the antennae. The actual chase sequence is quite complex beginning with a “chase” sequence where the perimeter light chase in a clockwise direction, then counter-clockwise, then up from the center towards the bottom, then from the bottom upwards, followed by a random twinkle of all lights on the wings (including the perimeter). The GIF does not do this justice at all!

It was found in previous years that LEDs did not give a nice “twinkle” effect like incandescent lamps do (just look at the brake lights of vehicles using LEDs versus those using incandescent lamps), however the energy savings (translated into battery life and battery weight) are enormous and so LEDs were used however each lighting channel was PWMed allowing the lights to be “ramped-up” and “ramped-down” in intensity. The PWM algorithm is accomplished is software (since no chip features a twelve-channel PWM) using a high-speed interrupt (the PIC 18F252 microcontroller was running at 2MIPS giving plenty of clock cycles to accomplish the task). 

The wings , normally covered with black nylon stretched over the frames, are seen here during construction. The outer frame was constructed of thin-walled (yet strong) steel tubing bent into the required shape and MIG welded to form the wing shape. The frames were bolted to a wood base which also holds the battery pack and the required circuitry.

A close-up of the circuit (to the left) shows the basic construction on a piece of perfboard. Aside from the 18F252 microcontroller (seen here with an RJ12 plug permanently wired allowing easy upgrades), the circuitry includes two ULN2003A darlington driver chips which drive the actual LEDs (since the total current drawen by the combined channels exceeds the drive capabilities of the PIC device). Also visible are resistors used to limit current through the LEDs. LEDs are wired as strings of four in series and powered directly from the 12V battery supply (the use of the ULN2003 driver allows LEDs to be driven from a higher voltage than the 5V supply used to power the microcontroller).

The Technical Details

The basic controller is based on a PIC18F252 microcontroller running at 8MHz. Twelve general-purpose I/O lines are used as digital I/O to drive LEDs via two ULN2003A drivers. These drivers allow direct TTL-level drive and so no extra components are required (the I/O line connects directly to the chip input). Darlington drivers, these devices saturate easily and so are perfect for PWM usage. Each chip features seven channels and so two chips are used.

Since no chip offers twelve independent PWM channels (although a dsPIC33FJ128MC802 was considered which offers six channels), these are implemented in software. Twelve variables “PWMChx” set the duty cycle of each channel and hence the the intensity of the LEDs. An ISR is triggered by Timer0 at 16.7KHz and a counter run continually. When the counter equals zero, each channel is turned ON and when the counter equals a “PWMChx” variable, the counter is turned OFF so a value of 1 represents a very low intensity (duty cycle of 1/255) and a value of 0xFF represents DC. The rest of the code is a very simple loop which ramps-up LED intensity when an LED it turned ON (via a loop which increments the “PWMChx” values) and ramps-down the value when an LED is turned OFF. These variables are simply set in the main code, and read in the ISR (and translated to a duty cycle).

Previous Versions


For 2007’s ‘Tinkerbell’ costume a set of small wings was created which were made to twinkle by employing a PIC 16F876 microcontroller to generate random patterns on four sets of lamps, arranged so that the entire set runs off a 14.4 volt cordless drill battery. The photo does not do justice to the wings as it does not show the ‘twinkling’ effect – the effect is best with incandescent lamps as well, LEDs failed to show the gentle twinkling effect caused by the thermal inertia of the filament (solved in 2011 by using PWM to “ramp-up” and “ramp-down” light levels). 

The wings themselves were made from thick steel wire bent in the form of a wing and fastened to a piece of wood attached to straps from an old school backpack. Lamps were strung in sets of four across the frames and the outside of the wing covered with fabric sewn as a slip-cover: the slip-cover is pulled back on the lower right corner of a wing here to show the lamps underneath. 64 lamps were used in all. In 2008, the wings remained the same however a lithium-ion laptop battery was used to reduce weight: lithium batteries at 4.7Ah provide considerably more output than NiCads at about 2.2Ah and weight much less.


An once again Jennifer had a lit costume – this time an angel’s wings with a lit halo. In 2006 we went energy efficient though – blue LED lights were used to surround wings made of thick steel wire with power supplied by a 12V rechargeable cordless drill battery. To supply the required 120 VDC for the light string, the 12V battery fed to a tiny inverter circuit previously used to power Nixie tube displays (this is a tiny inverter which runs off 12V and produces 150VDC at 10mA). Overall the wings weighed about half of the previous years’ wings which featured a large lead-acid battery. 


Our first set of wings from 2005. In the style of Disney’s Spectromagic Parade, these wings are about 4 feet across and feature 140 bright, sequenced, lamps. Powering 140 lamps requires a large battery, in this case a 7Ah, 12V sealed lead-acid battery which runs a small inverter providing 120 volts for the light string.

The battery and inverter are mounted between the wings (which are made of a steel tubing frame) on a piece of plywood. Shoulder straps from an old knapsack serve as a mount.

These wings were incredibly bright, so much so that in the fog she could be seen on the other side of the block as a lighed haze over rooftops, but unfortunately the battery (which only lasts a few hours) was quite heavy, especially for a nine year old! Later versions employed more energy-conscious lighting (i.e. LEDs) and lighter lithium batteries.

Click here for a video of the wings in action.