Instructables
Picture of Simple Ipod Controller
This instructable will help you understand the iPod serial protocol, and how to send commands to an iPod using an Arduino.  This instructable is only meant to show the basics of the protocol and is by no means complete.  I only had enough hardware space for 4 buttons, and the software reflects that.

Hardware Needed :
1x Arduino
4x Push Buttons 
4x 10k ohm resistor
3x 1k ohm resistor
1x 500k equivalent ohm resistor
1x ipod breakout

References for this 'Ible
pinouts.ru
arduino forums    big thanks to user EASTY, who's code I built off.
cornell students
adrian game
 
Remove these adsRemove these ads by Signing Up

Step 1: Hardware

The most important part of this setup is the voltage divider .  The iPod Rx only expects 3.3v, so anything more than that (like the Arduino's 5v TX) could hurt your iPod.  The voltage divider is a safe way to ensure that when the Arduino sends a 5v HIGH, your iPod only gets hit with a 3.3v HIGH.

The divider is accomplished in two steps.  First tie the Arduino TX (pin1) to a 1k ohm resistor.  Second, on the other end of the resistor attach iPod pin 13 (RX) AND two 1k ohm resistors (in series).

The 500k Ohm resistor attached to pin 21 tells the ipod that you will be using a serial communication (see reference ).

Both iPod pins 1 and 11 should be grounded to the arduino.  (To the nit pickers, I know the references state different things about pin 11, but grounding it seems to have no effect on this project.)

The rest of the hardware should be pretty straight forward, if you'd like more information on push buttons there is a tutorial on the arduino website .
pwalker153 months ago

I know it's been a while since this was discussed, but I'm really having trouble getting this to work (or the version I've created). I must be missing something

I am trying to get my arduino to send vol + and vol - signals to my iphone. I can run the code in debug and it shows in the serial monitor. I can then run it is non-debug and the TX light shows transmission, but nothing happens on the iphone. I've double checked the wiring and am using the ipod breakout mini v3.

How do I move past this problem?

Montiduino9 months ago
This thing works, Excellent results. The code is fantastic. There are some glitches though and while I am not able to fix this just want your inputs on this.
The code does not work for Skip back or any other serial command where the value is two digit. e.g. 10 for skip back
0x00 0x10 Skip<
0x00 0x20 Next Album
0x00 0x40 Previous Album
0x00 0x80 Stop

Need help on this. Have a project planned around this. Everything else works like a dream.
Also would like to emphasize that the value of the 500K resistor is super critical. Did not realize this until I read somewhere
09288850862 years ago
After I saw your project and I use itouch to test, I have something problem. When itouch connect to podbreak, itouch no sound. But after taking off , itouch have sound normally. Do you know how to use podbreakout charging iPad? not charging all the time. I want use button to turn on/off charging iPad. can you teach me?
astroboy9072 years ago
My plan for this (still have not gotten around to building it)
Compact, arduino controlled, ipod awesome SKI GLOVES! :)
We live near mountains so every year we ski a few days and sometimes go on trip. When skiing with friends its fun to listen to music but I have to change the volume a lot (like low for talking to friends and really high to get the adrenaline going) so I plan to make this. Ill use probably just plain wire to get to gloves with a connecter, and somehow work out the switched, but it would be awesome. If or when I build it, Ill post an ible. Still love the simplicity of this. Needs to be featured :)
dan952 years ago
Hey men, nice project, i tried it and voila, i have my own ipod player.
One question, whats the program you used to draw the schematic with the arduino and the protoboard?
allmondjoy87 (author)  dan952 years ago
http://fritzing.org/
iang13 years ago
Thanks for the project! Is it possible to control 2 ipods with this? I tried adding a NewSoftSerial port but it didn't seem to work.
allmondjoy87 (author)  iang13 years ago
Never tried it with the NewSoftSerial... I know the old one had a baud rate limit of 9600... Could it be a baud rate issue with the new one? Some research online shows NewSoftSerial should be able to handle bauds up to 115.2k reliably.
Awesome project! Code is way above my level, but it sure is neat to try and follow. Great work ! Thanks for the share!
Build_it_Bob
astroboy9073 years ago
Dang it I knew I shoulda got a podbreakout when I placed my order. Ah well, I have an iHome connector that should have all the pins I need. This is actually just what I was looking for!
allmondjoy87 (author)  astroboy9073 years ago
just uploaded much cleaner, more understandable code (imo). Instead of using buttons for input, it uses your serial port on the computer. Keep the circuit the same, just send chars a->u at baud rate 19200 to your arduino from your comp and you can now use every single command.