Pages: [1] 2   Go Down
Author Topic: Rugged Audio Shield for Arduino  (Read 14632 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Faraday Member
**
Karma: 16
Posts: 2857
ruggedcircuits.com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Rugged Circuits is pleased to announce the new Rugged Audio Shield for Arduino



Features include:
  • 3.5mm stereo jacks for Line In, Mic In, Headphone Out
  • socket for microSD cards
  • shield has BUILT-IN FAT filesystem drivers! No drivers needed in your Arduino code!
  • supports WAV file playback from microSD card, WAV file recording to microSD card, real-time streaming from Arduino, pass through from Line In/Mic In to Headphone Out, or "Karaoke Mode": mix Line In+Mic In to Headphone Out
  • Open source Arduino Library with example sketches
  • Built-in Mic In microphone amplifier with 25X gain and software selectable additional 1X, 2X, 4X, or 8X gain
  • Software selectable 1X, 2X, 4X, or 8X gain on Line In
  • Software controlled volume control on Headphone Out
  • Undedicated analog potentiometer on pin A3
  • Uses only SPI pins and D8 for slave select -- cuttable-jumpers make it easy to rewire to other pins
  • Compatible with Arduino Uno/Duemilanove, Ruggeduino, Mega/Mega2560 and all compatible boards, including 5V/3.3V boards
  • 12-bit audio input/output resolution, with dedicated Atmel ATxmega32A4 processor to handle all audio and microSD card functions
  • ATxmega32A4 is reprogrammable: just put a PROGRAM.BIN file on the microSD card, reset the shield, and the shield reprograms itself using a built-in bootloader
  • Fully assembled -- not a kit!

Check out the product page for more information, or purchase from our on-line store.
Logged

Global Moderator
Netherlands
Offline Offline
Shannon Member
*****
Karma: 212
Posts: 13531
In theory there is no difference between theory and practice, however in practice there are many...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Rugged indeed smiley-wink

Quote
12-bit audio input/output resolution,

Can I use that as a 12 bit ADC? e.g. and do some FFT or a more accurate read of some thermistor / sensor ...

Idem output as DAC?

Logged

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

0
Offline Offline
Faraday Member
**
Karma: 16
Posts: 2857
ruggedcircuits.com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Not really, it was designed for audio inputs so there are DC blocking capacitors that filter out DC offsets.

Same for the DAC: DC blocking capacitors prevent steady state values from persisting.

--
The Rugged Circuits Yellowjacket: 802.11 WiFi module with ATmega328P microcontroller, only 1.6" x 1.2", bootloader
Logged

Topsham, Vermont USA
Offline Offline
Edison Member
*
Karma: 32
Posts: 1867
... in The Woods In Vermont
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

If there was a way to do a little text-to-speech, even just for numbers and etc. this could be very attractive for home automation, automated machinery etc.. Weather station?

Logged

Regards, Terry King terry@yourduino.com  - Check great prices, devices and Arduino-related boards at http://YourDuino.com
HOW-TO: http://ArduinoInfo.Info

0
Offline Offline
Faraday Member
**
Karma: 16
Posts: 2857
ruggedcircuits.com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

For a limited vocabulary it's certainly easy enough to store pre-recorded words on the microSD card and just play them back in sequence as necessary:

Code:
...
RAS.PlayWAV("EIGHT.WAV"); RAS.WaitForIdle();
RAS.PlayWAV("SIX.WAV"); RAS.WaitForIdle();
RAS.PlayWAV("SEVEN.WAV"); RAS.WaitForIdle();
// etc.

--
The Gadget Shield: accelerometer, RGB LED, IR transmit/receive, speaker, microphone, light sensor, potentiometer, pushbuttons
Logged

Global Moderator
Netherlands
Offline Offline
Shannon Member
*****
Karma: 212
Posts: 13531
In theory there is no difference between theory and practice, however in practice there are many...
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


and of course just generate the filename from the digit in question e.g.   sprintf(fname,"%d.wav", number);
Logged

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

Offline Offline
Edison Member
*
Karma: 8
Posts: 1341
If you're not living on the Edge, you're taking up too much space!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I've been able to sample a Mic on an analog pin at 20khz.  Would your results be much different?
My problem is where to store the data.  The SD card and XBee are plenty fast serially, but...
SD card loses data when it has to allocate a cluster.
XBee causes hum on Mic while it is transmitting.

How does your board overcome the SD lost data?
A much larger than 2k buffer?

Logged

If you fall... I'll be there for you!
-Floor

Skype Brighteyes3333
(262) 696-9619

0
Offline Offline
Faraday Member
**
Karma: 16
Posts: 2857
ruggedcircuits.com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
I've been able to sample a Mic on an analog pin at 20khz.  Would your results be much different?

You had some kind of amplification on the mic, right? The A/D on the analog pins is a 10-bit A/D, and the Rugged Audio Shield has 12-bit A/D's so you get (theoretically) 12dB improvement in SNR. Plus you can sample at higher frequencies on our shield.

Quote
How does your board overcome the SD lost data?

Several things help:
  • Don't record too fast for your SD card (and different cards from different manufacturers vary in write speeds) -- use an appropriate sampling rate
  • Record mono instead of stereo if that's acceptable
  • Format the card using the EraseFilesystem method which properly aligns sectors
  • Pre-size the recording file using the PresizeFile method which pre-allocates all the clusters if you know about how much time you'll be recording

--
The Flexible MIDI Shield: MIDI IN/OUT, stacking headers, your choice of I/O pins

Logged

Offline Offline
Edison Member
*
Karma: 8
Posts: 1341
If you're not living on the Edge, you're taking up too much space!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thank you for your accurate answers.  Pre sizing is a great solution for me.  I average every 2 samples giving me 10k sample rate.  I assume my processor would be completely free to run in loop while it's recording with your hardware?
Logged

If you fall... I'll be there for you!
-Floor

Skype Brighteyes3333
(262) 696-9619

0
Offline Offline
Faraday Member
**
Karma: 16
Posts: 2857
ruggedcircuits.com
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Correct, the Arduino is completely free to do whatever it wants while recording is in process since it all happens on the shield. To stop recording you just call the Stop method.

--
The Basic Motor Driver: simple, inexpensive motor driver for 1 stepper motor or 2 DC motors
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

wow just found this,   looks very nice

Is it possible to edit, manage, save, read the files on the SD Card with a Linux computer?

How fast is the shield? How long does it take in-between the command   RAS.PlayWAV("SOMEFILE.WAV");   until it's starting to play?  is there a lag appreciable? Is there a gap in-between two sounds played?
Is there a possibility for a auto-rec function? To start the recording when a specified threshold is reached? Would the shield be fast enough for this?  

To avoid clicks, is it possible and necessary to fade-in and fade-out sounds? I was reading about the   void OutputVolumeSet(uint8_t volume);  function.
Would this be possible to do very fast?
Is the your shield always faster than the Arduino because it runs with 32 MHz?

Can you play only one or several files at the same time? I imagine only one, but what if they are very short and small?  
And is it possible to run 2 or 3 Audio Shields with only one Arduino (Mega)?
Yes it should be possible as I can call different shields via SPI Slave Select. How long does it take to  do      void begin(uint8_t SSpin = smiley-cool;    ? Can you switch fast in between multiple shields???

How does the Rugged Audio Shield sound? 12-bit? 16-bit? Something in-between?  Hi-fi lo-fi?
Thank you!
« Last Edit: September 28, 2012, 07:54:56 am by goldenfool » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello Guys, I am trying to use this board as a room sound recording activated by the change in the sound level. I have read the instruction but I haven't found something to allow to control the information entered through the mic input.

i appreciate your help...
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 2
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

I'm also looking at being able to monitor the input for a certain threshold. The library doesn't include support for this I don't think so I'm looking into the firmware of the shield and writing my own code for the arduino.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hai.
I brought this shield last month ago and  found that, the maximum file name that can be input is 12345678.WAV (8.3format).. How to modify the program to allow user enter large file name 1234567890.WAV (10.3 format).. I try to change RAS.ccp library but it gives nothing..

void RAS::_send_filename(uint8_t cmd, const char *str)
{
  uint8_t buf[13]; ---------------->15

  memset(buf, 0, sizeof(buf));
  strncpy((char *)buf, str, 12);------------------>14
  _send_cmd(cmd);
  _spi_send_buf(buf, sizeof(buf));
  _end_spi();
}

any idea?



 
Logged

Seattle, WA USA
Offline Offline
Brattain Member
*****
Karma: 601
Posts: 48543
Seattle, WA USA
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

What are you sending the longer names to? Just sending a longer name to the function is not sufficient. If the code that you are sending the name to expects a 8.3 format name, you will not be able to change that easily.
Logged

Pages: [1] 2   Go Up
Jump to: