My girlfriend, a music buff, asked me to come up with a better way for her to look at the track information of the current song playing on her iPod touch while she was using it in the car. Those of you that have or have had an iPod touch know that it's not the easiest thing to read while driving. To see the song information you have to double tap the home button and then still the text is extremely small. Also, controlling playback is distracting as the iPod touch has no tactile buttons so it requires the user to look at the screen to find the location of the soft buttons.

My solution was to construct a device that would interface with the iPod and take the song information and then display it on a screen somewhere in the easy view of the driver. After quite a bit of work and research I finally arrived at the product you see here. My iPod information screen displays the song title, artist, album, song time, and play/pause symbol. It provides skip back, skip forward, and play/pause playback control as well as charges the iPod.

Edit: A lot of people have mentioned that some sort of volume control would be good to add. As it turns out when the iPod is controlled through the method used in this instructable, volume control is disabled. I suspect this is because this mode is meant to be used with some other device controlling all playback functionality remotely and so volume would be controlled with the device. In this case, volume is controlled with the car stereo's volume control.

Step 1: The Research

The first step in making this device was to find out if it was even possible. I had never even really given interfacing with an iPod much thought before this and I had no idea if protocols publicly existed to do so.

One of the first websites I came across when researching was a Cornell senior design website that detailed the development of an iPod dock that took and sent commands to an iPod. The site, https://courses.cit.cornell.edu/ee476/FinalProjects/s2007/awr8_asl45/awr8_asl45/index.html, was very helpful in detailing the necessary connections, but most importantly it showed that this was in deed possible to do.

I came across several more resources, and then stumbled upon my primary resource. I found David Findlay's blog, http://davidfindlay.org/weblog/files/2009_09_07_ipod_remote.php, and on it he talked about his development of an iPod remote and an Arduino library that handled all the iPod interfacing in a very simple way. This is the library I used in my project.

I also found this website useful outlining the Apple Accessory Protocol, https://nuxx.net/wiki/Apple_Accessory_Protocol. It's not really necessary to understand as David's library handles this behind the scenes, but I thought it was good to know and it may be useful for other applications.

Step 2: The Parts

These are the major components I used to make the device:
  • Arduino (I prototyped with an UNO, but used a Pro Mini for the final product)
  • PodBreakout
  • Push Buttons (4x)
  • Graphical LCD (I used the MONOCHRON from Adafruit)
  • 10k Potentiometer (for contrast)
  • USB Mini Connector
  • 3.5mm Audio Jack
  • 100 Ohm Resistor
  • 1k Ohm Resistor (3x)
  • 1M Ohm Resistor (2x)
  • 33k Ohm Resistor (2x)
  • 22k Ohm Resistor
  • 47k Ohm Resistor
For actually putting it all together, you'll need:
  • Male and Female Headers
  • Wire
  • Standoffs
  • Enclosures
  • Copper Clad Board (If you choose to etch your own boards)

Step 3: The Hardware

Since I'm using an Arduino the circuit is simplified as all the components to make the microcontroller run are on the Arduino board. The remaining connections are just attaching wires and resistors. The pinouts of the iPod connector is, of course, very important to know and can be found here: http://pinouts.ru/PortableDevices/ipod.shtml.

The connections that need to be made are detailed next to each pin on the website above. Also, the websites I've listed earlier in this Instructable talk about them too. I'm also going to touch on it. The Fritzing drawing should help clarify any confusion with the EagleCAD schematics shown.

The LCD display uses the KS0108 chip popular to a lot of LCD displays. There is a library for the Arduino called GLCD. This takes most of the pins from the Arduino. For proper connections I'll refer you to the documentation that comes with the library. A link to the library will be provided in the next step.

The serial transmit TX and receive RX, pins 1 and 0 respectively, go to the serial lines of the iPod. Be sure TX of the Arduino goes to RX of the iPod and vice-versa. That is, Arduino pin 1 to iPod connector pin 18 and Arduino pin 0 to iPod connector pin 19. Since the iPod operates at about 3V and the Arduino operates at 5V we need to use a voltage divider on the Arduino's transmit line. That's what the 1k Ohm resistors are for. Technically, I should be using a level shifter, but I found that it worked fine without it and the Arduino has no problem with receiving the incoming 3V data.

The remaining connections are for buttons.

Pin 21 of the iPod connector will be connected to ground through a 500k Ohm resistor, or in my case I used two 1M Ohm resistors in parallel. Connector pins 25 and 27 control how the iPod charges. If we put 2.8V on pin 25 and 2.0v on pin 27 we can get the iPod to draw about 1A and charge the battery. The is accomplished by simple voltage division as can be seen in the second schematic.

All other connections are just straight connections. See the schematic and pinouts.

Step 4: The Software

You will need the following libraries to successfully compile the attached code: For how these are used I'll refer you to the documentation that comes with each.

The code that actually runs the iPod Information Screen is attached below. I'm using the Advanced Remote as defined by the iPodSerial library. It handles translating user input from the buttons and putting information up on the screen, while the iPodSerial library handles talking to the iPod. I'm not going to go through the code here, but you can download it and take a look for yourself. I is well commented and should be easy to understand if you're familiar with C and the Arduino.

Step 5: Designing the Boards

The circuit boards I made for this project are designed primarily for the to work with the enclosure system I designed. I made three separate boards. A main board that houses the Arduino and the LCD display, a button board that holds just the buttons, and and interface board that contains the resistors for charging and device recognition, etc. 

The eagle files are attached. I had the main board milled at the GVU at Georgia Tech and etched the other two boards myself.

Step 6: Assembling the Device

Assembling is just a matter of soldering everything together and screwing together the enclosure. The interface enclosure, which is just an enclosure from Radio Shack, needs some small modifications. The enclosure was made out of a potting box that I cut holes in the screen and buttons. 

Step 7: Use

When all was said and done, the iPod Information Screen came out better than expected and my girlfriend loves it (which is really all that matters). Thanks for reading!
<p>You are a life saver...<br>i just want to know that will this work for iPhone 4 and does it matter which iOS is being used?</p>
<p>provided that the phone is jailbroken</p>
has anyone tested it with the ipod touch 2g
It's great to see that you can still connect something to an iPod without Apple license crap. I know this works for older iPods, but has anybody had success with an iPhone or an iPod touch? Which generation?
Well I finally finished recreating a variation of your project. I used a pod breakout mini because it has a backshell and all of the pins necessary. For the cable I used an old 24 AWG DVI cable which works great because it is shielded and has twisted pairs for audio out and serial. For an enclosure I used a 6x4x2 enclosure from Radioshack. It was the perfect size for everything. Rather than milling or etching a board I just used countersunk screws and risers for my Uno. For the discreet components I just used a prototype board with power rails I found at work and cut it to size. I also installed an On/Off switch because the AUX cable was putting ignition noise on the speakers &nbsp;which got annoying and it was easier than unplugging the cigarette lighter every time I wasn't using it. Thanks for posting this, it was a lot of fun to make!<br> <br> Pod Breakout Mini:&nbsp;<a href="https://www.sparkfun.com/products/10645" rel="nofollow">https://www.sparkfun.com/products/10645</a><br> <br> Enclosure:&nbsp;<a href="http://www.radioshack.com/product/index.jsp?productId=2062283" rel="nofollow">http://www.radioshack.com/product/index.jsp?productId=2062283</a>
Can you please describe how all of this goes together? Your schematics aren't very intuitive. I'm trying to build this and I have no idea where everything is supposed to go. Thanks, and I'm really excited for this project!
Hi. Sorry about the confusion. I've added some annotations to the schematics that hopefully clear things up. If not, let me know. I think I'll throw together a Fritzing drawing if I get a chance.
Thanks a lot, and if you could do a fritzing drawing then I would be eternally in your debt.
Did you mean pine 12 and 13?
Where are you referring to?
I'm sorry, I meant pins 12 and 13 when you mention 18 and 19.
Wow this is just awesome, i will consider make one. Does it is difficult to build? considering i'm very new to electronics?
Thanks! Sorry for such a late response, but I would say it's a moderate level of difficulty especially if you're new to electronics. But if you want to give it a try I'd be more than than happy to point you towards some resources and help you get the project underway.
Awesome instructable, the final project looks almost store bought, you did a convincing build! Do you think you'll ever incorporate Bluetooth into the screen? I'd pay good money for something like that.
Thank you! I'm not sure if I will, but it would be a great way to reduce the amount of wires.
very nice now if you could put the controls in the wheel and install a hud projector for the screen. might try this in my next car not much point in my current car seeing as how im not taking it with me when i move
I was considering both of those but I couldn't think of an elegant way to incorporate controls into the steering wheel without more wires nor could I think of a way to have a HUD type display that worked in all lighting conditions. If you end up trying something like that please let me know!
This is great - Do you know if it will work with the Podcasting App?
Not had chance to read it yet but how easy would it be to add two extra buttons? Vol Up and Vol Down? <br> <br>If you could do that and make it a bit smaller I'm sure you could make $$ / &Acirc;&pound;&Acirc;&pound; making this for bikers. <br> <br>As a biker this looks way better than other solutions I've tried, the wireless ones are flaky and the wired ones don't take thick gloved fingers in to consideration. <br> <br>Well done mate,
Hello and thanks! I don't see any issues with physically adding the buttons, however, from a software point of view I don't believe it's possible. If you take a look at the Apple Accessory Protocol Mode 4 (the mode required to get data from the iPod) there is not a command for adjusting the volume. My original plan was to have volume control buttons, but as I got further along in development i found that there wasn't a way to do this. I suspect the reason for this is that Apple designed this mode to be used with dock-type devices that had their own source of volume control. Volume seems to set at a certain level and for a car that's not a problem since the volume can be controlled by the radio's volume. It may be possible to build an external circuit to control the volume for the purpose you're suggesting.
Thank you very much for the replies, and sorry for the late response. <br> <br>I will see if I can bribe a friends dad to knock one of these up for me <br> <br>: )
Or, instead of trying to use the accessory port, you could use the headset port to control the volume, similar to how 3-button headphones do it.
Instead of having push buttons for volume control, you could use a rotary switch like what was used on old radios. All it is is a POT. That would eliminate the need for a complex circuit. Just leave the iPod on max and let the POT do the work.
Any idea if this would work with an iPhone 4S running iOS5?
I only have an iPhone 3G with iOS5 and it works with it, so I wouldn't see why not. I'm not making any promises though.
I've just tested the simple remote mode with buttons on my bread board. Worked great. Next test will be to see if it works running the ATMega at 8Mhz on the internal clock.
Fantastic! It will work &quot;as is&quot; with iPhones too (3GS, 4 , 4S)?
I built something similar using David Findlay's Arduino library. I didn't use the screen as you did, but instead I went with the Wii Nunchuk controller so that I could just change songs and artists on the fly. It worked out great until I got a new car and didn't have any easily accessible space to install the control box.<br> <br> <a href="http://www.ryanpourcillie.com/projects/car-stereo-ipod-control-system/" rel="nofollow">http://www.ryanpourcillie.com/projects/car-stereo-ipod-control-system/</a>
Very nice. What did this cost to build?
Thanks! I must apologize, but I don't have an exact number. The only substantial purchases I really made, however, were the LCD Screen (~$30), the Arduino Pro Mini (~$20), and the PodBreakout (~$15). The rest is just some cheap electronic components like resistors and buttons.
Awesome instructible, but its location in some states would get you a ticket. Beware of where you mount it.
Thanks. I appreciate the concern. I'm in Georgia and as far as I can tell there aren't any laws restricting the placement of windshield mounted devices. Safety, of course, is a priority and that's actually why I placed in that corner. It may not be evident from the picture, but I've found that in this particular vehicle placing this in that location provides the least amount of visual obstruction.
What a great idea, my daughter would love one of these, so I am not sure I like it or not, as I am the one who has to build it for her. <br>But you have done a great job with clear instructions and when I am finished I will post a pic to show you. <br>Keep up the good work
Gonna build something like this.... need it for mah car as well! :)
Excellent! If you do please post some pictures of how it comes out!
It looks cool , first time i wanted to chenge my andoid for an ipod, Good Job
Thank you. I'm glad you like it!

About This Instructable




Bio: A materials scientist gone electrical engineer my hobbies include experimenting with electronics and making fun and interesting things. I rarely know what I'm doing ... More »
More by cmonaco3:Pom-pom Flowers Sugru Iron Man Armor for you LEGO Minifigure Wooden Tray from Wood Scraps 
Add instructable to: