Go Down

Topic: connecting sound card to arduino to detect very low amplitude sound (Read 4453 times) previous topic - next topic


Hi .. I have  to  detect  some  low  amplitude  sound  wave and  take action  based  on  the  amplitude  recorded  . So I thought  of  using  a  sound card  with 24-bit adc  with  built in preamp to  detect  the  sound  from  a  microphone  and  connect  the  sound  card  to  arduino  for  processing  and  output  . I am using a sound card because  the  sound  i record  has  to   be  as  close to original as possible .Also will debugging become very difficult later?


Leave out the sound card and just use a simple transistor or opamp microphone circuit.  The ADC in the Arduino is quite capable of the resolution you need, and can also do the FFT in realtime.  The sound card route-- building an ISA bus controller-- is far beyond in terms of complexity and cost than what you are trying to accomplish...


@KE7GKP sir,

I need to be concerned with sound level  and give my output based on that  .... not recording it

please also see this link for details : http://arduino.cc/forum/index.php/topic,64880.0.html


This statement:-
I am using a sound card because  the  sound  i record  has  to   be  as  close to original as possible

is at odds with this one:-

I need to be concerned with sound level  and give my output based on that

If it is only the level you need it doesn't have to be 24 bits.

Connecting a sound card is very tricky because most of them are USB and you have to make a USB master. The arduino can't do this. There are some shields to add a USB master (host) but these will not work with the high speed transfer mode needed by the sound card.


will this work ?
actually my prof insists on using a sound card and arduino and asked me to find ways out

this was given at http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1241065918/15


I used to be a prof at a University, and sadly your Prof has asked you to do something impossible. No that will not work because the USB protocol has several transfer modes and the modes supported by that interface are simply not fast enough to support the data transfer rate of a sound card.

Go back to him and tell him I said it was impossible and ask him how something with only 2K of RAM is supposed to do anything with high speed data sample transfer.


i need  a 24 bit adc to increase resolution (on board 10 bit is not suffice) .. so my prof suggested a sound card i think

so can you please suggest some higher resolution (>10) adc to connect to arduino


How about an approach like this


But record to SRAM for higher speed capture if you need that.
Designing & building electrical circuits for over 25 years.  Screw Shield for Mega/Due/Uno,  Bobuino with ATMega1284P, & other '328P & '1284P creations & offerings at  my website.


I wonder, what is the source of the sound, that would require 24 bits?
And what is the microphone  you gonna to use, to drive sound card?


@magician , please see:  http://arduino.cc/forum/index.php/topic,64880.0.html

i think of using a contact / piezo microphone


My guess, is why your Prof. asks to design a project bases on 24-bit cards, it's just "exploit"  likely
better SNR of the cards preamplifier and ADC, rather than their wider dynamic range.  Even it would make sense for submarine sonar design, complexity and cost of the project became too high for simple "train warning" system. I'm not sure, if it possible with arduino at all.


i need  a 24 bit adc to increase resolution (on board 10 bit is not suffice)

Is this a result of some tests, some theory or just a guess?

Do you really mean sensitivity not resolution? 
Having 24 bits in a sound sample is not going to make it easier to distinguish your chosen noise from anything else.

Show your prof these postings and if he still insists on a sound card then I would advise you to change institutions because you are not getting a proper education at the one you are at.


If I may, you shall keep in mind the "KISS" concept (Keep it Simple and Stupid, don't complicate things)

Why would you need a soundcard? Use an analog amplifier to get your wanted signals.

The amplitude range will fluctuate? Use automatic gain control. Chips like compressors (I have the SSM2165 in mind) will help you to handle multiple input levels within time.

The issue to the accuracy relies in the analog electronic world.

When you'll need processing horsepower for let's say high precision time/frequency transformation, you'll think about adding a powerfull soudcard.

But first, dig into the analog world.

Blog, DIY Electronics & Stuff - http://www.banson.fr

Go Up