If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.
You already know Dokkio is an AI-powered assistant to organize & manage your digital files & messages. Very soon, Dokkio will support Outlook as well as One Drive. Check it out today!
The initial idea for my MP3 project was to design an MP3 for joggers. I wanted something that was small, lightweight and portable. Here is a Verplank Diagram that illustrates the initial idea of my MP3:
The original idea of my jogger's MP3 was to have a headband that had earphones and a wristband with my control interface that would communicate information to the teensy in my headband and play music. At first the idea was that the headband could be used when jogging or sleeping
Here is a brainstorm diagram of my MP3:
After brainstorming the functions of my MP3, I began sketching preliminary designs of my MP3:
After I got an idea of what I was heading toward in my design, I began wiring all my components together and programming my Teensy to do what I intended. Here are photos of what my breadboard looked like:
For my MP3, I knew I would need an LCD screen, an MP3 decoder, a Teensy, a Headphone Jack and at least one push button to play and pause songs. I also bought a slide potentiometer that I intended to use as a volume controller.
After I wired and configured those components, I then proceeded to add on 3 more buttons: previous, next, select (for a menu display). I also added another potentiometer to use as a volume control because I thought that the slide potentiometer would be a cool device to use as a menu selector.
After I finished my programming and wiring on the breadboard, I went to talk to Marlo, the assistant at Room 36. I told her my MP3 idea and she helped sketch up a design for the box that I could use to house my user interface on my wristband:
I then used the laser printer in Room 36 to create my prototype housing for my MP3:
However, I realized that there wasn't really much use creating a housing for components and wires that I hadn't even soldered on a perfboard. So I decided to begin the soldering process which was the most tedious and painful process in creating my MP3. When I began soldering, I first soldered wires onto my SD card adapter, LCD, MP3 decoder and Audio Jack. When doing this I made every device have its own set of same colored wires. This decision really helped in the long run when all the devices were coming together. I chose to use a busboard perfboard as I thought this would be the simpler approach to connect my devices. Without much thought put into how I would make my wiring connections, I soldered my Teensy to the busboard. Not long after doing that did I realize that a busboard was not going to work as there were not enough pinholes to connect to my Teensy pins and other devices. Then I began my painstaking 2 hour journey of desoldering my Teensy from the perfboard. When I finally detached my Teensy, I felt like the man in 127 hours who managed to free himself from the rock. One would think that the experience of desoldering my Teensy would have taught me to appreciate the use of female headers, but I evidently did not learn my lesson and decided to solder my Teensy onto a perfboard without the bus lines. This time I clearly thought out my plan to solder and how many pinholes I would need for each Teensy pin. I also created a bus line of ground and power on the small perfboard. My whole MP3 player was connected by 1 10x12 (roughish) perfboard.
These were only with the LCD, SD card and molex connectors for my MP3 decoder. Although I did create molex connectors, I realized that they would be too thick for my compact MP3. However, learning to create molex connectors was a good experience in itself. After, I finally added on the final push buttons, potentiometers, battery and toggle switch (thanks Daniel) and and added some electrical tape to prevent shorts. Now my MP3 was finally functioning by itself without a USB port. This was truly a highlight point in my project.
I then decided that it was time to laser print my acrylic MP3 cover. Miraculously enough, all the devices naturally just fell into place to take their respective positions in my MP3 player with the help of hot glue to keep them in place.
However, in the rushed process of trying to get my acrylic printed in the last room 36 session, I somehow managed to lose one of the side cover of my MP3 player. From that point, I improvised and use the elastic wristband and some velcro to cover the backside of my MP3 and create a somewhat presentable final product.
As you can see from the photo above, there is a toggle switch sticking out. I fitted the toggle switch through the hole by using a drill to create the right sized hole. And just to demonstrate compactness of my device, here is a photo of the brain power that is going on behind this cased MP3:
This was how I created my MP3 portable player.
The Code
//mp3.pde:
/*
* example sketch to play audio file(s) in a directory, using the mp3 library
* for playback and the arduino sd library to read files from a microsd card.
* pins are setup to work well for teensy 2.0. double-check if using arduino.
// break if we reach the end of the file name, or if we have a directory.
// keep track of the file name length (fnln), so we can put the '.' back.
if (fn[i] == '\0') {
fnln = i;
i = max_name_len;
break;
}
else
if (fn[i] == '/') {
fn[0] = '\0';
fnln = 0;
i = max_name_len;
break;
}
}
// now restore the '.' that sd_file->name didn't store in its array for us.
if (fnln > 4) {
fn[fnln + 1] = '\0';
fn[fnln] = fn[fnln - 1];
fn[fnln - 1] = fn[fnln - 2];
fn[fnln - 2] = fn[fnln - 3];
fn[fnln - 3] = '.';
}
}
Youtube Video of my portable MP3!
Advice for Future EE47 Students
Creating a small MP3 can be very challenging if every aspect isn't thought through. Here are some challenges I came across when creating my MP3 and how I solved them:
Packaging:
If you're trying to keep your device small, when hooking up devices, your best bet will be to use the perfboards that have their own individual holes (not the bus board). These perfboards will allow for more freedom when hooking components up to the pins in your Teensy.
Give yourself enough wirelength when connecting components. Even though you're creating a small device you never know how far you're going to have to stretch that wire around you're MP3.
Never underestimate the power of heat shrink tubing. When you're crunching you're wires into small spaces, connections can easily be shorted so it's always better to use heat shrink (it was also kind of fun making them as well).
Female headers aren't always necessary. Although it is always safer to use female headers so you don't have to go through the painful process of desoldering, if you're going for something small, try to stay away from the female headers but make sure you know what you're doing ahead of time.
Keep the wiring on yourbreadboard there when transferring to perfboard. It's always good to have a reference to where connections are made in your MP3.
Give yourself enough time to move things over to your perfboard and also to make your package.
Coding:
ALWAYS save functional code!
Having a working Serial Port.
Thanks David, Akil and Ben for all your help this Summer! I've learnt so much and I am definetely going to keep doing these kinds of stuff in the future!
We're reluctant to ask how you learned that you could drop your player from a particular height and still have it hold together and work, so we're just not going to ask. ;-)
We really like your documentation of the design process: the design sketches, mind map, breadboard photos, and even narrative of your process. Great job at that. It was also a clever idea to incorporate your original headband once you realized that you had lost your side pieces and it was too late to recover them from Room 36. We also really like your advice for future students.
The sliding potentiometer is a nice interface touch, although by having it control the display (rather than say, adjust the volume), it's only useful if the user is actually looking at the device. We wonder if you could have made that sensor serve several different roles, depending on what mode the player was in. For example, could it select from the menu when no song is playing, but adjust the volume when a song is playing?
We wish that you had included a state diagram, and a bit more detail on your circuit. For example, you didn't provide a link to the manufacturer or part number of the sliding potentiometer. We also would like to have seen a bit more detail on your case design: so, how did you measure cuts so that the parts would snap together, what materials did you try/use, that kind of thing.
Nice job on your player overall.
David, Akil and Ben
You don't have permission to comment on this page.
Comments (1)
David S said
at 10:41 am on Aug 16, 2011
We're reluctant to ask how you learned that you could drop your player from a particular height and still have it hold together and work, so we're just not going to ask. ;-)
We really like your documentation of the design process: the design sketches, mind map, breadboard photos, and even narrative of your process. Great job at that. It was also a clever idea to incorporate your original headband once you realized that you had lost your side pieces and it was too late to recover them from Room 36. We also really like your advice for future students.
The sliding potentiometer is a nice interface touch, although by having it control the display (rather than say, adjust the volume), it's only useful if the user is actually looking at the device. We wonder if you could have made that sensor serve several different roles, depending on what mode the player was in. For example, could it select from the menu when no song is playing, but adjust the volume when a song is playing?
We wish that you had included a state diagram, and a bit more detail on your circuit. For example, you didn't provide a link to the manufacturer or part number of the sliding potentiometer. We also would like to have seen a bit more detail on your case design: so, how did you measure cuts so that the parts would snap together, what materials did you try/use, that kind of thing.
Nice job on your player overall.
David, Akil and Ben
You don't have permission to comment on this page.