Audiable Memory Chest

For my good friend Elico's 40th birthday, I decided to build a memory chest containing recordings of many of his (absurdly large number of) friends, family and co-workers, who agreed to cooperate and to share memories from early childhood until recent times. I was quite happy with the result, and so was he!
Later, friends asked me to build another one for a friend who was leaving the country. This i'ble is the recording of the preparation of the second memory chest (with the exception of a few photos I've added in step 2 - "Installing Peripherals", which actually show the first chest).

User interface is fairly simple: As soon as the box is opened, the Arduino is powered on and shortly after, the LED blinks once signaling it is ready for use; pressing the button plays a randomly selected memory, which is then remembered in the Arduino's EEPROM memory. Pressing the button just as you open the box before initialization blink, clears this memory (feature I've used while testing and just prior to handing over the chest).

Here is the result:
(tested with some sample soundtracks I've uploaded from my awesome Pimsleur Japanese learning audiobook)

The project is built on top of an Arduino and a SOMO14D package for playing audio. Communication between the two was done based on the great SOMODuino code by Doyle Maleche, which I've slightly made more generic.

Audio requirements:

The micro SD card used by the SOMO14D should contain audio files in AD4 format - conversion software available at manufacturer site, link on the bottom-left. Files should reside on the sd-cards's root directory, and should be named 0000.ad4,0001.ad4... etc., possibly up to 512.

Since the SOMO14D chip cannot detect the number of files stored on the SD card, the track count should be "typed" in using the DIP switch package - time to practice your binary-to-decimal conversion skills! An alternative for that approach is to hard-code the number of tracks in software and use the extra pins for adding colorful light patterns with RGB LEDs (which is what I did in the first box).

Materials:

1 Wood box:

12cm x 18cm x 8cm

Got mine at a hobby supply shop

Should have a lid connected with hinges

Preferably, has room for a photo on top - this is a memory chest, after all

4 AA battery compartment

4 AA batteries

Piezo element

Speaker, 1/4-1/2 Watt

Male DC voltage connector, barrel-type

RBBB Arduino clone

Available here: http://shop.moderndevice.com/products/rbbb-kit

SOMO14D Audio playback module

Available here: http://www.sparkfun.com/products/9534

Perf/stripboard, the size of your box

I usually get a large piece and saw as much as I need for each project

Button, any size you like.

I really like arcade style buttons! They are just too funky to be left in the shop

Available on dealextreme, ebay, etc., for example: http://www.dealextreme.com/p/repair-parts-replacement-obsf-button-for-arcade-machine-color-assorted-37486

2GB MicroSD card

Manufacturer advice is to stick with Kingston, other brands might have compatibility issues

I can attest to that - despite my initial disbelief

Dealextreme has them for ~5US: http://www.dealextreme.com/p/kingston-microsd-transflash-2gb-memory-card-japan-2396

Status LED

Or more, if you plan on not using the DIP switches

Levered microswitch

For automatically powering up the box when it is opened

For example: http://parts.digikey.com/1/parts/977112-lever-switch-pcb-spdt-3a-80gf-d2f-l.html

DIP switch array containing 8 on-off switches

For example: http://www.taydaelectronics.com/servlet/the-1527/Dip-Switch-8-Positions/Detail

3.3V voltage adapter

Used for powering up the SOMO14D

I used http://www.sparkfun.com/products/526 (after trying diodes, without success)

4 x 100Ohm Resistors

3 x 10K resistors

Some electric wires

Scrap wood

In case you need to build the box's top panel

2 Nails & little turpentine-based glue

For attaching the microswitch to the side of the box

Tools:

Small Pliers

Electric wire cutter

Insulation remover

Solder Iron

Hot glue gun

Precision wood saw, any kind (in case needed for the box's top panel)

Electric drill, drill bits

Wood glue

Step 1: Circuitary

Build the circuit according to the diagram

General instructions / recommendations:

Go one step at a time - first construct the RBBB and test it, then connect it to the switches, DIP, LED, piezo etc. and write a short sketch to test them.

I usually use strip board, since it can save on the amount of wires. However, most people seem to prefer simple perf-boards.

When done, upload some sample tracks (see inside attached zip) to the SD-card - make sure its FAT16 formatted first

Upload the sketch onto the Arduino

Try to test after each step

When all seems to be working, continue to next stage - installing the peripherals into the box

Attachments

Step 2: Installing Peripherals

Preparing the top panel

Get a flat (2-3mm) wood scrap that is same length and width size as your box (interior dimensions)
At the time, I didn;t have such a piece so I glued together a few flat pieces, then sawed to size. That turned out just fine; However, I am usually happy with the "yes, I made it at home" finish.

Installing the main on-off switch

Start by soldering wires to the microswitch's terminals, if you haven't done so already. Note - you will need to connect to the 2 terminals that are ON by default, OFF when lever is pressed down - so that opening the box will power up the Arduino and closing it will cut it off, not the other way around!

Next comes attaching the switch to the box - my levered microswitch came with two holes in it, so I used these holes and attached it to the box using some glue and a pair of nails which I've trimmed to size.
While positioning the switch, aim at having the tip of the lever stick out from the box's rim.
Next, cut a small, flat wood triangle and glue it to the box lid at the adjacent corner, so that whenever the lid is closed, the micro switch got pressed and contact was disconnected. If the box doesn't fully close, make a small dent in the triangle piece of wood using a Dremel, sawing paper, tea spoon, whatever.

Installing push button and the LED

Position push button and LED on top panel and drill holes for them.
Attach them to the panel using provided washers (button) and glue (LED) and re-connect them to the circuit.
Don't put the panel in the box just yet. We will first need to install the stoppers (next step).

Installing the Speaker

Depending on the size of the box and the speakers, you can either position the speaker below the top panel (drill some holes in the top panel for the sound to come out), or in the box lid (preferably use a net of some sort to hide it).
Attach the speaker to the box using nuts, glue, hot glue, or whatever.

Test Again!

Make sure everything is still working.

Step 3: Putting It All Together

Installing panel stoppers

Cut two small pieces of wood and glue them to both sides of the box from the inside. these pieces should stop the top panel you've prepared in previous step from falling down, so make sure they do just that, before gluing, and that they do not interfere with the closing.

Now, carefully position all components under the top panel, close the panel and re-test:

Opening / closing the box turns the circuit on/off (LED should "breathe" once when opening)

Pressing the button plays a random clip

Pressing the button just when opening the box causes memory reset (3 short beeps and an ascending sound)

~ FIN ~

That's it!
Enjoy and leave a comment if you've made it or if you have any questions