Introduction: Arduino Music Box With Lyrics Display

I recently bought a 2-line x 16-character LCD (Liquid Crystal Display) to play with. After getting acquainted with it, I began thinking about a project to use it in; something a little original. I decided to make a music box that would display lyrics (or a message) as the song played. For music I bought a tiny MP3-format player board. An Arduino Nano runs the LCD and MP3. The Nano and MP3 fit on a half-size breadboard with very little wiring required. The whole business is powered by a lithium-ion rechargeable battery. I also bought a good quality tiny speaker. They all fit in a nice box I bought locally at Jo-Ann's Crafts and Fabrics. I made covers to hide the electronics; only the LCD screen shows.

For the first music selection I chose Elvis Presley's “Love Me Tender.” To explain why, let me add a little background. I met my wife while I was in college (1955-59). At beer parties I would plunk a guitar and sing (sorta). I wound up making new lyrics to the music specifically for her. I intend to make those lyrics the next music selection; she swears she has them, but has yet to find them. Of course I've forgotten them. But the music box is a gift for my wife. She is a good painter and will dress up the box.

For clarification: I have only written one previous Instructable: Knock-Knock Treasure Box. I published that as dick55. Somehow another name was assigned to this one.

Step 1: Parts, Materials, and Tools Needed

Parts and Material

When I want to get parts quick with “free” shipping I use Amazon Prime. I can often find many in this one place, which is a real convenience. Otherwise I search ebay and other suppliers. Any item listed below that doesn't show a supplier means that I already had it.

Box (Jo-Ann's) Woodline Works ITEM#64860

Basswood (Jo-Ann's 1/8 x 4 x 24 inch)

Speaker grille cloth (Jo-Ann's) ¼ yard is the minimum allowed buy

Arduino Nano

LCD (Amazon/Sunfounder I2C LCD1602 )

MP3 player (Amazon/DFPlayer)

Memory card for MP3 player (Amazon/SanDisk 16GB micro SD)

Speaker (Parts-Express/DaytonAudio CE32A-8)

Half-size breadboard

9V-size lithium-ion rechargeable battery and charger

Battery snap-on connector with red (+) and black (-) leads

Lid switch (Spring-lever-activated SPDT)

#22 solid copper hook-up wire

40-wire ribbon jumpers, 8 inches long, female-male

1000 ohm resistors (2)

Scrap 2x4

Double-sided Dupont foam tape

#4 screws and nuts

Glue (I use Ailene's Tacky Glue for almost everything)

Permanent color markers

Tools I Used

Table saw (Does best job cutting basswood, or any wood, accurately and easily)

Coping saw (to cut hole in lid for LCD screen)

Drill press and 1 inch wood boring (spade) bit

Ruler with 1/32 inch or 1 mm markings

Soldering iron, stand, solder, and optional brass-mesh tip cleaner

Needle nose pliers

Wire stripper (I recommend Vise-Grip for easy reliable stripping; Amazon)

Step 2: Modify the Box


Drill a 1 inch diameter speaker hole in center of box front using the spade bit or hole saw.

This is best time to mount the speaker. Use four pieces of 2-sided foam tape on the frame, centering speaker on hole.

Cut out a square of grille-cloth to cover hole and glue it to box outside, centered on hole,

On basswood board lay out a square grille-cloth cover, drill centered 1 inch hole, cut out cover, and glue it to box.

Speaker/Lid-Switch Cover

Cut speaker/lid-switch cover parts from basswood board, aiming for a neat slip fit in the box.

Glue sides to back, and then glue top on. I also cut lengths of square dowel to add reinforced corners.

(Remember, side dimensions must be 1/8 inch less than box internal height to accommodate the cover and wide enough to clear speaker depth.

(Also, the back must be at least ¼ inch less height than box internal to allow for wire exit at bottom and for the top cover.)

Lid Switch

This is a good time to mount the lid switch and its activating button.

My button is a 7/16 inch length of 1/8 inch dowel. I wrapped 1/8 inch wide masking tape around the bottom to keep it in the cover when cover installs.

I taped the switch on box front at a horizontal position that assured that the cover side cleared it, at a vertical position that put the actuator point of the spring lever 1/4 inch below box top (top thickness plus button taped area), and spaced it two thicknesses of foam tape from box front to provide room for the button hole. I measured the installed distance of the spring lever center point from box front and drilled a 1/8 inch hole in the cover top for the button and enlarged it slightly to permit freedom of motion. The button rests on the actuator point of the spring lever with 3/16 protruding above the 1/8 inch thick cover top.

False Bottom

Cut the false bottom to create a snug fit at back of speaker/lid-switch cover, so that both parts are held in place without need for screws.

Make a notch for the LCD connector.

(Remember to glue a piece of ribbon to the false bottom, allowing ribbon to wrap around for easy removal of false bottom.)

Delay cutting the box side supports for the false bottom until installed height of breadboard and cabling can be determined. (I didn't do this and had to add two match sticks to each side to get enough clearance.)

Lid Cover

Cut the box lid cover for a comfortable fit in lid.

Lay out the rectangular hole for the LCD display. A centered hole should allow clearance with speaker/lid-switch cover when lid closes. ! used the coping saw to cut out the LCD hole, first drilling an access hole for the blade. (Note: I found it hard to get a pretty cutout.)

Make a notch for the LCD connector.

Mark 4 mounting holes and drill.

Mount LCD with #4 screws and nuts using spacers as necessary.

Cut four square mounting feet from a 2x4, with length to achieve flush mount of cover in lid, including one thickness of foam tape. (The photo shows foam tape on top of mounts. I decided this was not the way to go.)

Mark mounting points on cover, drill screw holes in cover, and pilot holes in mounts for #4 screws.

(Remember to install mounts back from the speaker/lid-switch cover so that there is no screw head interference when lid closes.)

Screw the mounts on and press cover into lid to secure it with the foam tape.

(Note: Screws allow cover to be removed if necessary. Foam tape makes it too hard to get cover off.)

Step 3: Make Breadboard

Plug Nano and MP3 Player into Breadboard

Plug in Nano with pin 1 (D13) in breadboard G-30.

Plug in MP3 Player with pin 8 (speaker connection) in H-1.

Breadboard Wiring Table


J-19 to +5V buss (Nano 5V output)

J-17 to Ground (-) buss

J-8 to +5V buss (MP3 5V input)

J-2 to Ground (-) buss

Software Serial Connection from Nano to MP3 Player:

A-10 to A-20.

B-13 to B-21

1K resistor into E-10 and F-10. (These resistors compensate for the 3.3V interface at the MP3 Player.)

1K resistor into E-13 and F-13.

I-7 to I-10.

J-6 to J-13.

Step 4: Install and Connect Breadboard

Breadboard Installation

Remove a small square of breadboard backing at each corner and apply foam tape.

(Don't remove all backing or you will never be able to remove breadboard.)

Stick the breadboard down at box center rear.

9V Battery Installation and Connection

Mount the battery in box right rear corner using a small square of centered, foam tape.

Solder the red wire of battery snap-on connector to lid switch input pole.

Separate a two-ribbon connector (one wire of which is red) and cut female end off.

Solder the red wire to the switch pole that outputs 9V when switch is not depressed.

Solder the other wire to black wire from snap-on connector.

Use marker to mark breadboard I-16 red (Nano 5V output). Mark I-15 black (ground).

Plug in the two-ribbon pins, red to red, black to black.

Speaker Connection

Separate a three-ribbon connector and cut female end off.

Solder the two outer wires to the speaker terminals. The middle wire is unused.

Plug the outer pins into breadboard I-1 and I-3. Polarity doesn't matter.

LCD Connection

Separate a four-ribbon connector, choosing a gray-red-orange-yellow color scheme.

On the LCD end, plug the female connector onto the LCD pins as defined below. SCL and SDA are the I2C interface.

On the breadboard, divide the 4-wire ribbon into two 2-wire ribbons: red-black power and orange-yellow I2C pins connected as defined below.

LCD (Female) End:

Gray -- Gnd

Red -- 5V

Orange -- SCL

Yellow -- SDA

Breadboard (Male) End (mark accordingly):

Gray -- Ground (-) buss

Red -- 5V (+) buss

Orange -- J-22

Yellow -- J-23

Step 5: Make and Install Box Side Supports for the False Bottom

With the breadboard and all wiring in place, measure the height of wiring above box floor.

Cut the two supports from the boxwood board to a height slightly more than this measurement and a width a little less than the false bottom. Glue them in place on box sides.

Step 6: Download the Arduino Sketch to Nano

Copy the following sketch into Arduino IDE and then load into Nano. The sketch is commented for ease of understanding.

Step 7: Download Music Into Micro SD Card

Using your PC, load the following MP3 music into the micro SD card and insert it in the MP3 Player.


Step 8: Play

Connect the battery and you should be set to play.

I tried to show a video at this step, but I've never done one before and I had nothing but trouble.

Here are some useful resources:

Step 9: