Should i need extera memory to store a sound file?


I have a plan to make a small project that is with Arduino duemilanove, handle 8~10 LEDs and at the same time, play a camera shutter sound effect without PC. And i have only 1.5 weeks for developing everything. so, i guess there are not enough time to order external module for interfacing extra memory.

The size of shutter sound file is just around 6KB. In this case, Should i buy an extera memory and the module to interface with the memory?

Can i use a flash memory instead of external memory using Mikal Hart's Flash library? (I think, flash memory is just for code, is this possible to store file also?)

Somebody please suggest good way..

One way would be to convert the sound file into ASCII hex, and make a PROGMEM table out of it.

Another possibility would be to buy one of those greeting cards with a recordable sound chip, and wire it so the Arduino can trigger it. You might need something like a reed relay, but those are available at Radio Shack.


The size of shutter sound file is just around 6KB

That is 6 times more than the total memory (RAM) on the chip and probably close to 10 times more than you have available.

You could try storing it in flash as an array:-

Look on for a set of videos by Kip Kay called Weekend Project. There is one video there where he modifies an "Easy Button" to record his own greeting. He talks about hooking it up to the computer or a mic to record different audio tracks. This can give you some ideas how to go about doing this sort of thing with items readily available.

While browsing around I came across this a while ago

Seems like a cool idea, its for the PIC though.

I haven't actually tried it out yet, but maybe you could adapt this to the Arduino (ask the author for permission) , or you could ask the author if he is willing to port this to AVR/Arduino himself

Lot's of good suggestions,, Thanx you guys.

In my situation, sound file converting/encoding is seems suitable. I'll try to figure out more detailed information for my project case.


I think converting will be the best option for you. The more I look at that site again, it seems very likely to work for you. You could experiment with encoding it using the BTc encoder for example and then extracting the encoded data from the generated files to adapt it to the AVR

@zageek Thanks for that link to BTc. It's pretty fascinating work. I'm starting to fool around with it too.