Fork me on GitHub

Project Notes

#682 Electret Sound Detection Module

Reverse-engineering a commercial electret sound detection module intended for use with an Arduino/microcontroller as a sound level trigger (not audio pre-amp).



I bought a Sound Detection Sensor Module some time back. Similar modules are available from many sellers on the usual marketplaces (aliexpress, ebay, taobao).

I don’t think I’d be the first to think I was buying an electret audio pre-amp module, only to discover they are actually configured as binary sound level triggers.

Basically, this means that when the sound level goes above a configurable threshold, the input will go from LOW to HIGH.

The input would usually be connected to a microcontroller GPIO and be used for sound-activated trigger event.

NB: see LEAP#681 for coverage of a legit Electret Audio Pre-amplifier.

Module Specs

As given by one of the sellers:


  • 100% Brand new and high quality
  • Signal output indication
  • Single channel signal output
  • The output effective signal is low level
  • When there is sound, output low level and the signal lights
  • Can be used for Acoustic control light; give sound and light alarm working with Photosensitive sensor


  • Size: approx.32mm17mm15mm(lengthwidthheight)
  • Main Chip: LM393, Electret condenser microphone
  • Working Voltage: DC 4-6V
  • Color: Blue
  • Net Weight: 3g
  • Note: The Maximum induction distance is 0.5M


Circuit Design

Here’s my redrawing of the circuit. It basically comprises:

  • electret input ac-coupled to S9014 common emitter amplifier
  • amplified output (normally HIGH) is fed to inverting input of the LM393 comparator
  • 10kΩ pot is used to set the comparator threshold (non-inverting input)
  • the signal output is pulled HIGH by default R6, but is normally LOW when insufficient sound to trigger
  • when the output is LOW, the green LED indicator will light
  • a red LED is power indicator




The output is a rail-rail digital signal, suitable for connection toe a GPIO pin of a microcontroller.

The threshold level would be set so that any sound over a certain volume would cause the output to toggle. It is possible to adjust for both output orientations:

  • adjust so normally output is high. Loud sound will cause the output to toggle high
  • adjust so normally output is low. Loud sound will cause the output to toggle high

The trace below captures the module output when exposed to a pure 1kHz sine wave input sound. With the threshold set at just the right level, and given the input is a pure sine wave, the output is a square wave oscillating at the same frequency for each phase of the sound wave that exceeds the threshold


Credits and References

Project Source on GitHub Project Gallery Return to the LEAP Catalog

This page is a web-friendly rendering of my project notes shared in the LEAP GitHub repository.

LEAP is just my personal collection of projects. Two main themes have emerged in recent years, sometimes combined:

  • electronics - usually involving an Arduino or other microprocessor in one way or another. Some are full-blown projects, while many are trivial breadboard experiments, intended to learn and explore something interesting
  • scale modelling - I caught the bug after deciding to build a Harrier during covid to demonstrate an electronic jet engine simulation. Let the fun begin..
To be honest, I haven't quite figured out if these two interests belong in the same GitHub repo or not. But for now - they are all here!

Projects are often inspired by things found wild on the net, or ideas from the many great electronics and scale modelling podcasts and YouTube channels. Feel free to borrow liberally, and if you spot any issues do let me know (or send a PR!). See the individual projects for credits where due.