The ultimate guide to using LEDs with headphone jack


Lighting up an LED using the headphone jack is probably one of most easiest tasks. Take the mic of the TRRS pin ( or left in a TRS ) and connect it to the shorter end of the LED. Take the ground and connect it to the longer end of the led and you are good to go !

A potential difference of ~3V exists between the two pins that is sufficient to light up a LED. Why is there a potential difference in the first place ? Well, this will answered in great detail in one of our post on the Anatomy of a headphone jack.

Now no one wants to stop with just lightning up a LED, so let’s improvise..


Controlling LED brightness

Like we said: A potential difference of ~3V exists between the two pins that is sufficient to light up a LED.  By controlling the volume, we can reduce this potential difference and thereby dim the LED.


You can control 2 LEDs (min.) with a single headphone jack

With a simple headphone jack, one is capable of controlling 2 LEDs at the very minimum. Take 2 LEDs and connect them both to the Left/Right in the configuration shown below:


If one plays a square wave through the Left/Right then the first LED would light during the positive half of the cycle and the second one during the negative half. This is because LEDs are conductive only in one direction.

You can watch a demonstration of this in the following video.

And as a bonus, we did a frequency sweep  from 1 – 30 Hz (Square Wave) and here is how that looks:

Hang on a second!

If you can do that, then you play songs and also visually witness Beats phenomenon right? Absolutely!

Visualizing songs using LED

Beats phenomenon

Headphone jack as a switch

In all our above setups, we connected the jack directly to the LED. But one might need the LED to be brighter. So, to do that we had to bring in a operational amplifier ( LM324 ). This can be powered using a OTG (On-the-go) cable or using an Arduino.


Now using this we can use the headphone to perform switching operations. And this is what we demonstrate in the following series of videos:

Schematics/Circuit diagrams will be uploaded soon! Thank you.




The headphone jack meets an actual spark gap!

So, we had the opportunity to test out the headphone jack with an actual spark gap and it was absolutely wonderful. Check it out:

With the data we can actualy find out the frequency of the spark occurrence. In our case it turned out to be ~ 34 – 36 Hz. And since this is in the Audible range we can actually hear this (somehow we missed this when making the video)

Screenshot from 2017-06-10 20:01:07

Audio file : GoogleDrive


Part – I – Lightning detector with a simple headphone jack

Part – II – Detecting switching ON/OFF of Tube Light using headphone jack

Part – III – Cigarette lighter spark detection using headphone jack


Testing basic headphone jack functions (Android)

In this post we will be trying to emulate basic functions as prescribed in the Android Documentation.  In order to understand the functions we first need to understand the circuit layout of the headphone jack which is as follows:

Screenshot from 2017-05-22 11:11:21

Now with this circuit in hand you can perform a series of tasks. This has been summarized in the table below.

Screenshot from 2017-05-22 11:03:00

This post will primarily focus on the Function A since that is the one that is commonplace in all mobile phones with a headphone jack. In the following video, we demonstrate how to emulate the following functions using a headphone jack

  • Play/Pause
  • Open Google Voice
  • Next song
  • Radio
  • Emulating Google voice

Every speaker is also a microphone!

Sometimes it comes as a surprise as a people to people when I tell them that every speaker is also a microphone. This is true because in a speaker you send in electrical signals to change the way a speaker cone moves. This in turn produces various sounds.


With the same setup, if one provides a mechanical vibration to the diaphragm, this will generate audio signals corresponding to that mechanical vibration.



We have made a video demonstrating this using a headphone jack and a phone. In order to loop the sound from the mic to the speaker in the video, we use the following command on Linux:

pactl load-module module-loopback latency_msec=1