I suspect that if I could replace my ATMEGA168 with an ATMEGA 368 (as suggested by Robert, thanks!) life might be better for my Arduino and its attempt to use the waveshield. The problem is ATMEGA328s seem to be scarcer than hen's teeth, especially in the PDIP package. I found a place in Canada that had some, but the shipping is prohibitive. Adafruit, Digikey, Arrow, NuElectronics, Sparkfun, all out of stock. Groan.
At the Maker Faire this weekend, I picked up a Waveshield kit for the Arduino. It's a cute little board with an SD card interface, an I2C DAC, and a little op amp circuit to provide an audio interface. It took me about an hour and a half to solder together (I'm slow, but careful) but it doesn't appear to work. I'm suspecting a software, rather than a hardware issue. I downloaded the "playall" example, which simply plays all the audio files on your SD card, but it appears that it runs the setup() code properly, but resets the CPU somehow before ever running loop(). Lady Ada's documentation suggests that I could be running out of RAM (my Arduino is one of the older NG ones, and has only 1K of ram, but still....) Probing with an oscilloscope reveals relatively few active signals on the top of the board when the program is running, which suggests that it's not even trying to clock the audio data out. I was thinking of writing a simple program that just exercises the DAC first, to make sure that the board works (generating a square or triangle wav is pretty easier) since I think it's the SD card that gobbles memory.
Anybody whose gotten one of these to work, I'd appreciate the help.
My idea is to use this to store prerecorded voice messages, and then use it to key a small FM transmitter and send voice telemetry for my balloon project.