Here's an email thread between Eric and myself regarding the sensitivity of the Ambient sound detector.
Will Reiske Oct 21 13:51
How sensitive is the Sound\Light meter. I see that it can detect ambient light and sound levels, but at what range? 0-130db?
I want to be able to accurately read the current sound pressure\level in an environment at any time, and I need it to be very fast.
If something makes a noise and the sound pressure level is greater than 115 DB, but only for less than half a second, I want to be able to trigger an alert or log this event.
Would the Sound\Light meter be able to do this? Or should I get the Audio device and somehow get the sound level from the input audio stream.
Eric Kolker (Technical Machine) Oct 21 15:20
Long story short, none of our hardware will do everything you need "out of the box", but it's not outside the realm of possibility if you're willing to get your hands a little dirty.
The audio module falls short because it's designed for more traditional playback and recording. The time required to set up a recording, send it to the Tessel, and then process it would exceed your half second and leave you with a lot of "down time" where the device would not be measuring the sound level. We also heavily discourage using Tessel for lots of math (i.e. RMS loudness calculations), which is really slow in the interpreted environment.
The Ambient module gives you two options.
In its default state, it can be made to be quite sensitive (adjustable gain paired with a user-settable threshold detect), but does not measure in dB. Getting that kind of measurement out would require calibrating the modules themselves. You'd need a multimeter and a sound meter to compare known noise levels to the reads from the module. Additionally, the hardware design (schematic here: http://design-files.tessel.io.s3.amazonaws.com/2014.06.06/Modules/Ambient/TM-08-03.pdf) makes it hard to determine the exact duration of a "loud" event; 0.2 seconds is about as granular as you'll be able to get.
If you're willing to write C code, the story changes. Custom firmware on the ambient module would let you do the dB calculation on the module's ATTiny microcontroller using the ADC connected to the signal labeled "MIC".
I'd love to walk you through what each of these options means. Can you tell me more about your application?
Eric Kolker (Technical Machine) Oct 21 15:37
One small request: can you post this question to our forums (forums.tessel.io)? I suspect that the answer is useful to our community at large.
Will Reiske Oct 21 15:45
Thanks for the fast reply Eric!
I’m actually a C developer (kinda) and I work for a company that writes C, so there are plenty of C guys around here that could potentially pull off the custom firmware. I however would be more in charge of the Mobile Application/NODE part of it. I want to develop a Phone Application that can read out as accurately as possible the current sound level in an environment and log all of the information inside the app. I would be using the Tessel as a Bluetooth interface to the phone, only to gather data in real time. The Tessell wouldn’t need to process that information other than to put it in a form for me to read with the mobile app.
0.2 seconds should be just fine, as long as I'm able to log that data to the phone in near realtime.
I do have a sound meter and could do comparisons for calibration, but before I get a Tessel it’d be nice to know if the ambient module is up to the task.
As for the forums, would you like me to just copy our entire conversation into a new forum thread?
Eric Kolker (Technical Machine) Oct 22 17:06
Of course. ...and apologies for the delay between rounds 1 and 2.
Very cool! This sounds like something you could certainly develop/prototype on Tessel.
Copy/paste should be fine.