Saturday, October 17, 2009

Advanced iPod Remote Code

This is the code that puts the iPod into Advanced Remote mode so far that is all it does. We need to figure out how to send Play/Pause etc after it is in Advanced Remote Mode.

// array strings to tell the iPod what to do
const char AIR[] = {
0xFF, 0x55, 0x03, 0x00, 0x01, 0x04, 0xF8};
const char AIR_PLAY[] = {
0xFF, 0x55, 0x03, 0x00, 0x29, 0x01, 0xD3};
void setup()
{
Serial.begin(19200); // Setup the serial port
delay(5000); // 5 second delay so we can plug in the ipod
AIRR(); // calls the AIRR function
AIRR_PLAY();

}

void loop()
{
// nothing in the loop but it is still needed
}

void AIRR(){
for (int i = 0; i < 9; i++) { // puts ipod in AIR mode
Serial.print(AIR[i], BYTE);
}
}

void AIRR_PLAY(){
for (int s = 0; s < 9; s++) { // Send Play/Pause command in AIR
Serial.print(AIR_PLAY[s], BYTE);
}
}

Just to get everyone up to speed....

First post! Just to catch everyone up we're building an LED table kind of like this: http://www.youtube.com/watch?v=zCA79Du-WqY

So far we have the table completely built (minus the LEDs)0. We've been programming the Arduino and got some basic animations figured out last week. This week we've been working on the iPod side of things. We have the basic remote figured out Play/Pause Next/Previous and Volume working. The volume shows the speaker going up and down however we implemented an equalizer that is directly connected to the line out of the iPod and it levels out the sound so the actual sound never gets louder or softer. To solve this we are going to be using speakers that have volume control built into them. Pictures of the table can be seen on my Flikr account here: http://www.flickr.com/photos/26028708@N04/sets/72157622372526921/ There are no videos of this table yet but you can see old project videos on my Youtube account here: http://www.youtube.com/evansdustin

If anyone has any expieriance using the Advanced iPod Remote (AIR) please send me an email at evansdustin08 at Gmail.com thanks!

Again this is the first post so I don't have any code to share. It is really starting to get to be a big project and I just wanted to start documenting what works and what doesn't. As we get the code figured out I'll post it for you all to enjoy and use.