Although vibration motors are common in Mobile phones, procuring button sized vibration motors were the ultimate challenge. (There were a couple of good ones on ebay, but couldn’t find one at this point of time)
But once that was resolved, one of the leads of the vibration motor was connected to the headphone jack and the ground of the headphone jack to the other lead.
Now square wave signals are played through the headphone jack using Audacity. Although one can feel the motors vibrating, using an operational amplifier such as LM324 helps to intensify the vibrations. ( Power source to LM324 – Battery/Arduino )
One of the weirdest but yet satisfying experience with the vibration motor is when you connect the vibration motor through the audio jack without any amplifier. You can hear the music being played through the vibration motor. The motors seems to be dancing to the music being played. We tried so hard to capture the phenomenon but the sound was too feeble to be picked up. That shouldn’t stop you from giving it a shot.
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)
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
Updated: May 15,2019
Now it comes as a surprise to many people when I tell them that generating an audio waveform is extremely simple.
One needs to have basic understanding on how audio signals work and basic python programming to generate any audio wave form. This post will show you exactly how.
Python packages needed: Numpy, Scipy
How to play the audio the generated audio file on computer ?
1. Command line using SoX
play -t raw -r 44.1k -e signed -b 8 -c 1 test.wav
where -r = sampling rate -b = sampling precision (bits) -c = number of channels
2. Use Audacity (check video)
Link to code : GitHub
You can find a list of other waveforms that can be generated using SciPy here
 This does add any headers to the audio file and therefore you cannot play it on any media player as is . Check this reddit post if you really want to have one.
 Adding headers to the above code seems to be making it slower. And this is a problem if you want to make larger audio files.
 The code generates only 8-bit audio signal. Feel free to play around with the code to change it to other formats.
 A lot of technical details were conveniently not included in code in order to appeal to the theme of this post. And therefore this code is not “efficient”.
We were inspired by the buzzer that you find in mobile and laptop showrooms – the ones that produce this annoying high frequency tone if you fiddle a ‘little too much’ with the displayed product.
We use a 555 timer in its Astable mode to produce the frequency tone and couple it with a digital IR sensor module. We do this by connecting the output pin and the ground parallel to R2 in the figure.
And as a result when there are no objects in the vicinity, the system produces a high frequency tone, but when an object is introduced the sound dies out. This is attributed to the change in resistance value.
Here is another variation of the same: