Skip to main content
SearchLoginLogin or Signup

Li-fi Comm Suit

A suit that translates speech into light and a glove that interprets the light back into sound.

Published onDec 09, 2019
Li-fi Comm Suit


On the Transet moon Iphos, the native Abime species communicate mainly through bioluminescence. In order for humans to communicate with these creatures, they created clothing that translates their verbal speech into a light display that matches the bioluminescence of the Abime. In addition, the humans created receivers into their clothing to help them understand the Abime speech.

Inspirational images for the Abime Comm Suit. Stem from cyberpunk and Burning Man LED suits.

For this project, I looked for inspiration from Cyberpunk and LED lighting projects. The image on the left was my main inspiration for my Comm Suit project since the lighting looks very natural and fluid. The EL wire pattern on my jacket hood is directly taken from this image. I also wanted to keep a more grungy cyberpunk themed suit since the world that this jacket is based off of has this type of atmosphere. The upcoming game called “Cyberpunk” also had some material that I based my suit off of. I liked the collar LEDS in the image below and used that in my Comm Suit.

The Abime Comm Suit drew inspiration from the LED collar

A properly working Comm Suit would take changes in color and intensity and interpret those into spoken english. This would require a new language based on light coloration and intensity which seemed beyond the scope of this project so instead I simply touched on the concept of communication through light. I saw many projects online where people sent radio signals using a technique called “Li-Fi” where sound is interpreted as changes in light intensity which can be detected and projected using a speaker. I wanted to expand this idea, but instead of radio, use my own voice and translate that into light.

My vision for the Abime Comm Suit was to use some kind of piezo/vibration sensor to pick up my voice and send this signal through LEDs. The LED brightness would be detected by a solar panel which would send the signal to a speaker. The following describes my attempts to make such a device.

Parts List

Transmitter (Abime Comm Suit)

  • Purple El wire

  • Throat microphone

  • AA battery pack (2)

  • APA102 LED RGB strip

  • Arduino UNO

  • Pleather jacket

  • Adjustable voltage regulator (3A)

  • 72AEF6M Op-amp

Receiver (Comm Glove)

  • Speaker

  • OPT101 Monolithic Photodiode and Single-Supply Transimpedance Amplifier

  • AA battery pack

  • Leather glove

  • 72AEF6M Op-amp

Version I - Testing the idea

I was able to get a small version of my project to work using a single green LED, a piezo film, and a photodiode (picture shown below). By flexing and creating strain on the piezo film, I could send a signal that would alter the brightness of the LED. This change in brightness would be detected by the photodiode and, in essence, copy the original signal from the piezo. Thus I had successfully sent a signal using light!

First small working version of the project using a piezo film, a single green LED, and a photodetector.

The circuit for the small setup is shown below. The signal from the piezo was sent through a voltage divider. R1 and R2 decide the output voltage and also the sensitivity of the signal from the piezo film. I noticed that higher resistances gave a better response to the piezo film signal. I also chose a combination that gave a high output voltage to provide more power to the green LED so that it was always on. This signal was then sent through a buffer to prevent the high resistance from interfering with the LED resistor. The signal was detected by the photodiode which sent the signal through another voltage divider to provide sufficient power to the speaker.

Circuit for the small working version.

Version II - Scaling up the components

Throat mic

For the next version, I switched out the piezo film for a throat microphone, the single LED for an LED strip, and the photodiodefor a solar panel. The throat mic works under the same principle as the piezo film where signals are generated from vibration. The throat mic was difficult to get working since it has a TRRS jack instead of the more common TRS jack (image below).

Different versions of jacks

I only had audio jacks for the TRS configuration and I was hesitant to directly solder to the throat mic wires in the fear of permanently damaging the device. Luckily I was able to find a TRRS plug extension that I could directly solder to without tinkering with the throat mic wires.

Soldering directly to the TRRS extension jack

I had to change the circuit to work for the throat mic since it had different resistive characteristics than the piezo film (circuit shown below). I decreased R1 and increased R2 to increase the output voltage from the voltage divider. I was not entirely sure why, but using a 6.8K resistor for R1 gave the best sensitivity to the throat mic. Lowering or increasing this resistance lowered the output intensity from the device.

LED strip

The LED strip was one of the most difficult components of the project. These require a large amount of current to get a full, bright light. With my initial circuit, I was only able to light about 5 LEDs at full brightness. Adding additional LEDs in the strip would significantly diminish the brightness. I was attempting to use a cyan color, but the LEDs would automatically revert to a dim green when there wasn’t enough power. To fix the issue, I remade the circuit to allow a higher current to pass through directly to the LEDs using a LM317 adjustable voltage regulator. This allows a lot more power to travel to the LEDs and the throat mic slightly varies the output power.

Circuit for the transmitter

This provided better power, but I was still unable to get a large number of LEDs to turn on without the brightness being reduced. I had been using a battery pack so I switched to a wall plug to see if this would provide better results. The LEDs got slightly brighter, but not by much. After this I realized that the problem was not the power source, but the limit on current for the LM317 adjustable voltage regulator which only has a maximum current of 1.0A. I switched this out for a 3.0A adjustable voltage regulator which gave much better results.

Lighting more LEDs along the strand reduces their overall brightness. Not enough current being supplied

LEDs using the LM317 adjustable voltage regulator with 1A limit

LEDs using the new adjustable voltage regulator with 3.0A limit

Here is a video showing how the LED brightness changes when speaking into the throat mic. It also shows the signal on the oscilloscope:


I switched out the photodiode for a small solar panel since many of the online videos show people directly hooking up solar panels to their speakers with no additional circuitry. Unfortunately I was never able to get the solar panel to work with any configuration. I attempted to use a voltage converter, but anytime the solar panel signal was sent into the op-amp it disappeared. Eventually I reverted back to using the photodiode since I had already proven this to work.

To make the receiver more sensitive, I ran the photodiode signal through a non-inverting op-amp. The speaker volume was still very small so I connected the ground of the speaker directly to the power supply. I also removed the voltage regulator that I had previously been using to increase the overall power to the speaker.

I added a bandpass filter to the output signal from the photodiode. I blocked low frequencies to remove the DC constant signal so that only the fluctuations in the signal would be amplified. I blocked high frequencies because the detector was catching the signals from the fluorescent lights around the room and making a buzzing noise.

The photodiode’s sensitivity is very dependent on the brightness of the room so I added a 1kohm potentiometer to the non-inverting op-amp so I could control the gain of the signal. If I increased the gain too much, then the signal would flat-line so there is a sweet spot right before this where the signal provides the maximum volume for the speaker.

Circuit for the receiver

A video showing the transmitter and receiver working:

Version III - Bringing everything together

The entire LED transmitter was integrated into a pleather jacket that I bought off amazon. Purple EL wires were sewed into the hood to match the inspiration images I showed at the beginning. These are not connected to the circuit in any way…I just thought they looked cool. They are run on a separate power source which was stored in the front pocket of the jacket. The throat mic is run up through the coat and comes out near the neck of the jacket.

The LED strips were sewn into the arm of the jacket. Two separate strips were used, one for the back of the arm and one for the front. I needed two AA battery packs to run these LEDs to make sure they had sufficient brightness to be detected by the receiver. A diffusing thin material was sewn over top of them to make them look a little nicer. In order for 4 pin LEDs to work, they have to be run by an Arduino. The Arduino is used purely for the sake of turning on the LEDs, it is not used in anyway in the transmitter circuitry. A small case was 3D printed for the Arduino so it was nicer to handle. The Arduino is stored in the front jacket pocket. A case was also 3D printed for the transmitter circuit. It has two power jacks and the TRRS audio jack. All the output LED lines were taped down so they wouldn’t come loose. This whole setup (two battery packs and transmitter circuit) is stored in the front pocket.

LEDs sewn into jacket arm (left). Arduino stored in 3D printed case in front jacket pocket (middle). Transmitter circuit in 3D printed case stored in jacket pocket (right).

The receiver was sewn into the inside of a leather glove so the user can more easily aim the photodiode at the transmitter. I originally had the entire circuit wired into the glove with wires coming out that would go to the speaker, power source, and potentiometer. I had the photodiode on the backside so it could more easily stick out from the glove.

This setup ending up not working though because there ended up being crosstalk between the signals. The device ended up acting like a large capacitor that would drastically change its signal whenever someone got too close, like for example, when sticking your hand in the glove….

I ended up only wiring the photodiode to the circuit in the glove and everything else was external. This removed the crosstalk signal and made everything stable.

The glove and circuit (left). The photodiode integrated into the glove (right).

Final version of the glove and jacket are shown with them working in dark and lit settings. The photodiode is able to see the difference in light intensity in both room settings.

No comments here
Why not start the discussion?